selenium 状态码521_sqlmap对状态码404处理的bug

本文详细讨论了sqlmap在遇到404状态码时的错误处理,尤其是在测试SQL注入点时的问题。当id参数为空且服务器返回404时,sqlmap会异常退出,导致无法检测到注入点。通过分析和修改sqlmap源代码,解决了这个问题,使其能够继续测试并成功识别出注入点。
摘要由CSDN通过智能技术生成

About

sqlmap对页面遇到404响应码后直接抛出一个异常并退出sqlmap不再进行后续的paylaod测试,在用sqlmap测试sql注入点的时候,一

般用到--batch参数来节省时间,这种情况下sqlmap有一处对http状态码404的处理不当导致无法测出注入点的bug

Detail

在爬虫时get请求的url可轻易爬到,但是post请求的url及post的数据的取得需要探测html中有没有表单相关的关键字,并通过表单

来构造post参数的值并提交来获取后续返回内容,如下例中详情:

安装dvwa设置level=low,测试SQL Injection(Blind)这一项时,参数是通过表单来提交的,点击submit提交后会将输入框User

ID中的内容以get请求发送到服务器,例如在文本框中输入1则浏览器将对应访问http://192.168.8.190/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#

尝试用sqlmap跑出这个注入点,语句如下:

sqlmap -u "http://192.168.8.190/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie='PHPSESSID=glgav33fgc0l1hoikg5f267j51;security=low'

这样是可以跑出来的,但是要提高效率用工具自动发现这个漏洞时,一般这样用sqlmap:

sqlmap -u "http://192.168.8.190/dvwa/vulnerabilities/sqli_blind/" --forms --batch -v 3 --cookie='...'

由于这里的id参数的值通过爬虫无法获得,因为这个id参数的值是通过表单提交的,爬虫最多可得到的url为:

http://192.168.8.190/dvwa/vulnerabilities/sqli_blind/?id=&Submit=Submit#

上图中的Submit按钮对应的应该是js处理的动作,js将表单通过get请求发送到服务器,这种情况下,需要用selenium+phantomjs

来获得上面的url(或者使用sqlmap中的--forms参数来捕获这样的表单),而就算得到了url,由于这个url中的id=,也即id值为空,

这种情况下,sqlmap的--batch参数的处理是随机赋值给id并测试各种payload(eg,id=1389),然而dvwa中的这个页面在服务器上的

处理并不一般,如果用户提交的id参数在服务器上没有查询到,服务器会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值