WEB应用程序数据库防守篇之预防SQL漏洞注入

简介: 主要介绍SQL注入的危害会引发的后果以及如何预防等

前言




SQL:

 SQL(Structured Query Language) 是结构化查询语言的意思,用来操作查询所有关系型数据库,非关系型数据库虽然也可以存储用户的信息,但查询检索效率远低于关系型数据库,所以关系型数据库就成为存储用户数据的首选。非关系型数据库通常用来存储大数据,结构化数据,指纹,面容特征等信息,也非常重要


image.png

SQL 又分为以下四种数据库操纵语言

DQL:数据库查询语言

DML:数据库操作语言,执行添加,删除,修改

DDL:数据库定义语言

DCL:数据库事务语言

进行SQL注入,SQL语句的语法要非常熟练

Mysql中有几张默认很重要的表,必须要认识:

image.png

 information schema :它存储了关于数据库、表、列、索引、用户权限等元数据信息。

 mysql  :该数据库存储了MySQL服务器的用户权限、密码、角色等信息。它包含了多个系统表,用于管理和控制用户权限和访问控制

performance_schema:该数据库用于存储MySQL服务器的性能监控数据。它包含了多个系统表,如events_waits_current、threads、memory_summary_global_by_event_name等,用于收集和展示MySQL服务器的性能指标和统计信息

sys:该数据库是MySQL 8.0版本引入的,用于提供一种更方便的方式来查询和分析数据库的性能和状态。它包含了多个系统视图和存储过程,如sys.user_summary sys.schema_table_statistics等,用于查询和分析数据库的性能和状态信息

认识SQL注入:

度娘解释

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

翻译过来一句话就是:

攻击者通过恶意拼接SQL语句串,进行提交从而达到绕过程序代码中定义的权限,非法获取到数据库、表等信息。


在sql注入方面,用Php写的网站贡献最大,由于他是弱类型数据的语言,在传递数据类型时可以进行自由转换,这就导致SQL注入的注入点会非常的多,而使用强类型数据语言 Java,C++,C#会规避绝大部分的SQL注入漏洞。

SQL注入:

SQL注入分为很多种,有联合注入、盲注、布尔注入、报错注入、时间注入、堆叠注入、二次注入、宽字节注入、cookie注入等等等。当然 这些注入的原理都一样


下面讲一个最常用的绕过登录进行SQL注入 :

常你的登录验证SQL是这样的,

Select*from[用户表]where username='[账号]'and password='[密码]';

正常传入应该是这样:

Select*from  users  where username='hyd'and password='root130';

但如果我在传入的值username中加点料  hyd'; --  ,密码随便输  就变成这样啦  

Select*from  users  where username='hyd';--' and password='111111' ; 

-- 和 # 在sql中是注释的意思,他在执行的时候会忽略掉后面的部分,这样密码就会不起作用

接着使用联合查询union传入  hyd' union select version(),database(); --

Select*from  users  where username='hyd'unionselect version(),database();--' and password='111111' ; 

version和database会查出你当前项目数据库的版本号和所用数据库名称。

接下来根据数据库名查出库中所有的数据表,这里select后的四条数据需要在查版本号之前进行测试得出字段的数量

unionselect1,group_concat(table_name),3,4from information_schema.tableswhere table_schema ='【数据库名】'

查出所有数据表后,观察表名,带user,admin 字样的表,都会成为查询的目标,

接着查询目标表的列名,

unionselect1,2,3,column_name from  information_schema.columnswhere  table_name='users'and table_schema=database()#

得到列名后,就可以根据列名得到想要的信息。比如 查询用户账户,密码以及所有字段内的信息。

1' union select id,username,password from users#

如果该表中有管理员的账号密码,那就等于拿到了通往系统后台大门的钥匙,攻击者通过正常登录,就可以为所欲为了。因为系统管理员通常拥有最高权限,做的所有操作一般都不会被限制


下一篇会讲靶场实战训练和预防SQL注入






相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
4月前
|
SQL 机器学习/深度学习 人工智能
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
本文系统性地阐述了自然语言转SQL(NL2SQL) 技术如何让非技术背景的业务分析师实现数据自助查询,从而提升数据驱动决策的效率与准确性。
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
|
3月前
|
安全 测试技术 程序员
web渗透-文件包含漏洞
文件包含漏洞源于程序动态包含文件时未严格校验用户输入,导致可加载恶意文件。分为本地和远程包含,常见于PHP,利用伪协议、日志或session文件可实现代码执行,需通过合理过滤和配置防范。
673 79
web渗透-文件包含漏洞
|
3月前
|
弹性计算 监控 网络安全
如何轻松使用AWS Web应用程序防火墙?
AWS WAF是Web应用防火墙,可防护常见网络攻击。通过创建Web ACL并设置规则,保护CloudFront、API网关、负载均衡器等资源。支持自定义规则与OWASP预定义规则集,结合CloudWatch实现监控日志,提升应用安全性和稳定性。
|
3月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
417 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
3月前
|
存储 安全 前端开发
Web渗透-文件上传漏洞-上篇
文件上传漏洞常见于Web应用,因类型限制不严可致恶意文件执行。本文介绍前端检测、MIME类型、黑名单、.htaccess、空格、双写等多种绕过方式,并结合upload-labs靶场演示利用方法,提升安全防护认知。
524 1
Web渗透-文件上传漏洞-上篇
|
3月前
|
安全 中间件 应用服务中间件
WEB渗透-文件上传漏洞-下篇
本文详解文件上传安全漏洞,涵盖白名单绕过(如00截断、条件竞争)、图片木马制作与利用、以及IIS、Apache、Nginx等常见解析漏洞原理与防御。结合实战案例,深入剖析攻击手法与修复方案。
268 1
|
3月前
|
存储 JavaScript 安全
Web渗透-XSS漏洞深入及xss-labs靶场实战
XSS(跨站脚本攻击)是常见的Web安全漏洞,通过在网页中注入恶意脚本,窃取用户信息或执行非法操作。本文介绍其原理、分类(反射型、存储型、DOM型)、测试方法及xss-labs靶场实战案例,帮助理解与防御XSS攻击。
1058 1
Web渗透-XSS漏洞深入及xss-labs靶场实战
|
3月前
|
安全 NoSQL Shell
web渗透-SSRF漏洞及discuz论坛网站测试
SSRF(服务器端请求伪造)是一种安全漏洞,攻击者可诱使服务端发起任意请求,进而探测或攻击内网系统。常用于端口扫描、访问内部服务、读取本地文件等。常见防御包括限制协议、域名和IP,但可通过302跳转、短地址等方式绕过。
248 1
web渗透-SSRF漏洞及discuz论坛网站测试
|
2月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
215 6
|
安全 JavaScript 前端开发
AppSpider 7.5.020 发布 - Web 应用程序安全测试
AppSpider 7.5.020 for Windows - Web 应用程序安全测试
101 0

热门文章

最新文章