少年击剑更吹箫,剑气箫心一例消。这篇文章主要讲述编写WAF指纹探测与Sqlmap相结合相关的知识,希望能为你提供帮助。
使用Python编写探测WAF指纹脚本,再结合到Sqlmap中,这样以后再探测网站时,如果识别到此WAF指纹,就会显示出来。?
(本文属于巡安似海 PyHacker系列课程,并在本站持续更新此系列)
编写探测识别WAF脚本
00x1:
首先我们要了解WAF,寻找WAF的特征
比如安全狗,当访问不存在的页面
寻找关键字:如safedog
文章图片
文章图片
00x2:
ok,分析完毕,我们来测试一下
文章图片
没毛病,我们再去找一个waf,加入进去
以云锁为例,还是首先分析
文章图片
没有发现特别明显的特征
接着利用sql语句触发Waf
https://www.yunsuo.com.cn/%20and%201=1
文章图片
云锁竟然没用自己的产品...
那就以奇安信云防护为例,老规矩,查看源代码寻找特征
文章图片
这一块可以当做特征(eventID"> eventID)
测试一下,莫得问题
文章图片
00x3:
那我们还可以把特征,全部放入字典中,或者txt文本加载
这样可以方便收集waf,这里以txt为例
Waf.txt内容为:
safedog|safedog
eventID|qianxin
yunsuo_session|yunsuo
通过python打开Waf.txt 查看每个Waf的识别规则
waf = []
def waflist():
file = open(waf.txt)
for line in file:
str = line.strip().split("|")#去除换行等字符,以|分割
waf_data=https://www.songbingjia.com/android/
if len(str)==2: #判断是否属于waf格式
waf_data[waf]=str[0]
waf_data[name] = str[1]
waf.append(waf_data)
waflist()
print waf
文章图片
方便调用:
文章图片
完善验证机制:
【编写WAF指纹探测与Sqlmap相结合】
文章图片
请求 /and 1=1.php,触发waf
req = requests.get(url=u+/and%201=1.php,headers=headers,verify=False,timeout=3)
批量验证网站是否存在WAF:
def main():
waflist()
print u"\\n加载waf完毕\\n"
f = open(url.txt,r)
for url in f:
url = url.strip()
if http not in url:
u = http:// + url
wafreq(u)
到这我们脑子里就有个概念了,WAF指纹识别如何寻找的,如何粗略的编写的,接下来就结合到Sqlmap中,让它在检测网站时存在此WAF指纹能够识别到。
Pyhacker 之 编写SQLMAP Waf探测
以前,sqlmap 是专门有一个WAF的目录,来进行探测waf
命令:(已变成自动检测)
sqlmap.py -u "http://www.xxx.com" --identify-waf --batch
到现在,sqlmap已经进行了修改,路径也变了
C:\\Python27\\sqlmap\\thirdparty\\identywaf
我们只需要修改data.json里面的waf特征即可,如:safedog (607行)
文章图片
Company :哪家公司产品
Name:waf名称
regex:正则匹配
那我们来进行修改,以刚才的奇安信为例:
"regex": "Server: eventID|493",
文章图片
原理:
Sqlmap会自动执行sql语句 来触发waf
我们只需要写入特征
修改之前:
文章图片
修改之后:
文章图片
已经可以探测到WAF了,这更方便于我们进行下一步操作
你可以去收集更多的waf特征,来进行匹配啦。
喜欢关注一下叭~
文章图片
推荐阅读
- TRON节点验证交易的时间容忍度
- 1┃音视频直播系统之浏览器中通过WebRTC访问摄像头
- Redis 慢查询
- 全连接网络基础1——MNIST数据集
- 简单的网络协议概述
- 使用easyPOI时碰到的几个问题(记录一下)
- IntelliJIDEA的常用设置的最详细图解说明(图文并茂)
- 小白一看就会的Spring的RestTemplate的使用
- Java基础之Optional类(JDK1.8新特性)