php mysql注入攻击_mysql – php中的sql查询注入攻击

这是一个盲目的SQL注入.当站点不容易受到正常的SQL注入攻击时使用它.您的站点验证输入数据,可能不正确但足以让信息通过SQL注入泄漏.

盲SQL注入不会尝试直接获取信息;如果发现泄漏,则首先不需要盲注.

工作原理:它会引入奇怪的嵌入式查询,如问题中提到的那样,并检查页面的行为.检查失败时,检查其查询结果的页面会生成不同的内容.它显示错误消息或重定向到某个页面,或者有时它不会产生任何输出(当查询失败的“处理”类似于“或die()”时).

盲SQL注入会产生假设,然后生成并注入一个运行正确或失败的查询.它检查页面内容以了解注入的部分是否使查询成功或失败.根据结果​​(成功或失败),注入脚本知道其假设是真还是假,然后它做出决定并再次尝试不同的假设.

我不知道测试这个注射片段是什么.它使得我正在使用的MySQL版本的查询失败,因为x分组.也许它在其他版本上成功(MySQL 4?);在这种情况下,它仅用于检测MySQL的版本.这不是确切的版本,而是主要版本.在主要的MySQL版本上,这里和那里有一些小的变化,攻击者脚本知道正在运行的版本是很重要的.这样它就知道它可以使用哪种语言功能.如果它没有使用正确的语法,那么它的所有查询都会失败,并且无法实现其目标. 🙂

我维护的一个遗留网站在几个月前以类似的方式遭到攻击.我们认为所有输入数据都已正确检查,并且无法向其注入任何内容.碰巧有一个小洞仍然存在,有人决定攻击该网站(可能提取电子邮件地址),他们使用的工具找到了漏洞并开始通过它注入查询.

注入查询类似于2 RLIKE(SELECT …),其中…代表一个复杂的查询,它从information_schema(使用LIMIT)中选择第N个对象(表或列)的名称,使用函数MID(name, K, 1)来提取Kth然后,所选名称中的字符将该字符与指定字符(使用IF()或CASE)进行比较,最终生成2或不是有效正则表达式的字符.

每个请求都是针对ASCII集中的某个字符检查单个表或字段名称的单个字符.如果检查的字符小于注入器提供的字符,则注入的部分评估为2 RLIKE 2并且查询正常运行.否则它会评估为2 RLIKE(并且查询失败.这样,注入器脚本将其正在测试的字符的潜在值范围分成一半.接下来的查询会一次又一次地缩小它,直到找到确切的字符为止.最多需要7个注入请求才能找到单个字段表的单个字符.

然后它从位置K 1处的角色开始,依此类推.使用相同的技术但使用不同的查询,脚本首先查找要查找的名称的长度.

这个过程很乏味,但这就是为什么计算机首先被发明的原因:为人类做繁琐的工作.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值