如何检测 SQL 注入漏洞
您可以使用一组针对应用程序中每个入口点的系统测试来手动检测 SQL 注入。为此,您通常需要提交:
- 单引号字符,并查找错误或其他异常。'
- 一些特定于 SQL 的语法,这些语法的计算结果为入口点的基本(原始)值和不同的值,并在应用程序响应中查找系统差异。
- 布尔条件,例如 和 ,并查找应用程序响应中的差异。OR 1=1OR 1=2
- 有效负载设计用于在 SQL 查询中执行时触发时间延迟,并查找响应所需时间的差异。
- OAST 有效负载设计用于在 SQL 查询中执行时触发带外网络交互,并监视任何生成的交互。
或者,您可以使用 Burp Scanner 快速可靠地找到大多数 SQL 注入漏洞。
1)查看gifts页面,发现get型参数
2)修改参数为gifts’+or+1=1—
颠覆应用逻辑
想象一下,一个允许用户使用用户名和密码登录的应用程序。如果用户提交用户名和密码,则应用程序将通过执行以下 SQL 查询来检查凭据:wienerbluecheese
SELECT * FROM users WHERE username = 'wiener' AND password = 'bluecheese'
如果查询返回用户的详细信息,则登录成功。否则,它将被拒绝。
在这种情况下,攻击者可以以任何用户身份登录,而无需密码。他们可以使用 SQL 注释序列从查询子句中删除密码检查来执行此操作。例如,提交用户名和空白密码会导致以下查询:--WHEREadministrator'--
SELECT * FROM users WHERE username = 'administrator'--' AND password = ''
此查询返回其用户,并以该用户身份成功将攻击者登录。usernameadministrator
这关直接看提示就知道了,没什么好说的
标签:sql,用户,应用程序,查询,密码,查找,SQL,注入 From: https://www.cnblogs.com/cll-wlaq/p/17998654