news 2026/4/18 8:14:50

12、利用注入漏洞:SQL注入的识别与利用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
12、利用注入漏洞:SQL注入的识别与利用

利用注入漏洞:SQL注入的识别与利用

1. 手动识别SQL注入

现代大多数Web应用都会使用某种数据库,而SQL是用于查询数据库最流行的语言。在SQL注入(SQLi)攻击中,攻击者通过在表单输入或请求的其他参数中注入SQL命令,改变应用程序与数据库之间的通信,使应用程序发送修改后的查询语句。

下面我们来测试一个Web应用的输入是否易受基于错误的SQLi攻击:
1. 登录DVWA,进入SQL Injection页面,确保安全级别为低。
- 输入一个数字,如将User ID设为1,然后点击Submit。通过查看结果,我们可以知道应用程序查询了数据库,查看是否存在ID为1的用户,并返回了该用户的ID、姓名和姓氏。
2. 测试输入应用程序不期望的内容。
- 在文本框中输入1’,然后提交该ID。应用程序可能会返回一个错误,这个错误消息表明数据库接收到了一个格式错误的查询,但这并不一定意味着存在SQLi,但很有可能该应用程序是易受攻击的。
3. 返回DVWA的SQL Injection页面。
4. 为了确定是否存在基于错误的SQLi,尝试另一个输入:1’‘。
- 这次没有错误,这证实了该应用程序存在SQLi漏洞。
5. 执行一个非常基本的SQLi攻击。
- 在文本框中输入’ or ‘1’=‘1,然后提交。结果可能会显示数据库中所有注册用户的信息。

原理分析
SQLi发生的原因是输入在用于形成数据库查询之前没有经过验证和清理。假设应用程序的服务器端代码(PHP)组成的查询如下:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!