sql注入

如何检测 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

这关直接看提示就知道了,没什么好说的

posted @ 2024-01-31 10:14  CLLWA  阅读(10)  评论(0编辑  收藏  举报