编写WAF指纹探测与Sqlmap相结合
source link: https://blog.51cto.com/u_15626388/5285393
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
编写WAF指纹探测与Sqlmap相结合
原创使用Python编写探测WAF指纹脚本,再结合到Sqlmap中,这样以后再探测网站时,如果识别到此WAF指纹,就会显示出来。
(本文属于巡安似海 PyHacker系列课程,并在本站持续更新此系列)
编写探测识别WAF脚本
00x1:
首先我们要了解WAF,寻找WAF的特征
比如安全狗,当访问不存在的页面
寻找关键字:如safedog
00x2:
ok,分析完毕,我们来测试一下
没毛病,我们再去找一个waf,加入进去
以云锁为例,还是首先分析
没有发现特别明显的特征
接着利用sql语句触发Waf
云锁竟然没用自己的产品...
那就以奇安信云防护为例,老规矩,查看源代码寻找特征
这一块可以当做特征(eventID">eventID)
测试一下,莫得问题
00x3:
那我们还可以把特征,全部放入字典中,或者txt文本加载
这样可以方便收集waf,这里以txt为例
Waf.txt内容为:
eventID|qianxin
yunsuo_session|yunsuo
通过Python打开Waf.txt 查看每个Waf的识别规则
def waflist():
file = open('waf.txt')
for line in file:
str = line.strip().split("|") #去除换行等字符,以|分割
waf_data={}
if len(str)==2: #判断是否属于waf格式
waf_data['waf']=str[0]
waf_data['name'] = str[1]
waf.append(waf_data)
waflist()
print waf
方便调用:
完善验证机制:
请求 /and 1=1.php,触发waf
批量验证网站是否存在WAF:
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已经进行了修改,路径也变了
我们只需要修改data.json里面的waf特征即可,如:safedog (607行)
Name:waf名称
regex:正则匹配
那我们来进行修改,以刚才的奇安信为例:
Sqlmap会自动执行sql语句 来触发waf
我们只需要写入特征
修改之前:
修改之后:
已经可以探测到WAF了,这更方便于我们进行下一步操作
你可以去收集更多的waf特征,来进行匹配啦。
喜欢关注一下叭~
- 1赞
- 收藏
- 评论
- 分享
- 举报
上一篇:验证码绕过思路总结
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK