--------------------------------------------------------------注意----------------------------------------------------------------------------
没有授权的渗透测试均属于违法行为,请勿在未授权的情况下使用本文中的攻击手段,建议本地搭建环境进行测试,本文主要用于学习分享,请勿用于商用及违法用途,如果用于非法用途与本文作者无关。
Sqlmap
中可以设置连接为持久连接。HTTP
报文中设置Connection:keep-alive
参数:--keep-alive
先尝试抓包,可以看到建立非持续连接
python sqlmap.py -u "http://192.168.153.136/sqli-labs-master/Less-1/?id=1" --current-db
请求数据包报的connection:close
这里的参数有两个分别是close
和keep-alive
,区别就在于使用close
连接的话,每次请求都需要建立连接才能发送数据,然而对于keep-alive
的话
当我们增加参数之后,查看其效果payload
参数设置如下
python sqlmap.py -u "http://192.168.153.136/sqli-labs-master/Less-1/?id=1" --current-db --keep-alive
可以看到,使用已建立持续连接
Sqlmap
中设置空连接,表示不接受HTTP
当中的Body
,常用在盲注过程中。
参数:--null-connection
先抓取在没有设置参数之前的情况,payload
如下所示
可以看到请求的长度是266
,响应的长度是979
查看设置空连接之后的效果,payload
构造如下所示
python sqlmap.py -u "http://192.168.153.136/sqli-labs-master/Less-1/?id=1" --current-db --null-connection
没有对比就没有伤害,通过建立空连接,可以看到,sqlmap
改变了请求方法使用了HEAD
的请求方式,HEAD
的请求方式降低了请求包长度,响应包的长度也减少了,大大的增加了探测的速度。
sqlmap
中设置同时发送多少个HTTP
请求的多线程。
--thread
默认是1
个多线程。为了不影响目标站点服务器的性能,sqlmap
可以设置最大的线程数为10
.
使用默认情况下的请求,构造的payload
如下所示
python sqlmap.py -u "http://192.168.153.136/sqli-labs-master/Less-1/?id=1" --dbs
查看数据包的情况,可以看到在默认情况下,使用的是一边请求,一边接收数据
查看使用多线程的效果,大大缩减了请求响应时间
python sqlmap.py -u "http://192.168.153.136/sqli-labs-master/Less-1/?id=1" --dbs --thread 10
如果服务器承受能力不好的话,很可能造成宕机的严重后果,谨慎使用。
sqlmap
中的预测输出,在推理算法中用于检索值字符的顺序统计预测。
参数:--predict-output
值得注意的是--predict-output
与--thread
参数不兼容
错误演示如下: