1

编写WAF指纹探测与Sqlmap相结合

 2 years ago
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相结合

原创

巡安似海 2022-05-10 11:52:44 博主文章分类:红蓝对抗 ©著作权

文章标签 sql python php waf 网络安全 文章分类 安全技术 网络/安全 阅读数209

使用Python编写探测WAF指纹脚本,再结合到Sqlmap中,这样以后再探测网站时,如果识别到此WAF指纹,就会显示出来。

(本文属于巡安似海 PyHacker系列课程,并在本站持续更新此系列)

编写探测识别WAF脚本

00x1:

首先我们要了解WAF,寻找WAF的特征

比如安全狗,当访问不存在的页面

寻找关键字:如safedog

编写WAF指纹探测与Sqlmap相结合_php

编写WAF指纹探测与Sqlmap相结合_waf_02

00x2:

ok,分析完毕,我们来测试一下

编写WAF指纹探测与Sqlmap相结合_waf_03

没毛病,我们再去找一个waf,加入进去

以云锁为例,还是首先分析

编写WAF指纹探测与Sqlmap相结合_网络安全_04

没有发现特别明显的特征

接着利用sql语句触发Waf

https://www.yunsuo.com.cn/%20and%201=1

编写WAF指纹探测与Sqlmap相结合_sql_05

云锁竟然没用自己的产品...

那就以奇安信云防护为例,老规矩,查看源代码寻找特征

编写WAF指纹探测与Sqlmap相结合_waf_06

这一块可以当做特征(eventID">eventID)

测试一下,莫得问题

编写WAF指纹探测与Sqlmap相结合_php_07

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={}
if len(str)==2: #判断是否属于waf格式
waf_data['waf']=str[0]
waf_data['name'] = str[1]
waf.append(waf_data)
waflist()
print waf

编写WAF指纹探测与Sqlmap相结合_sql_08

方便调用:

编写WAF指纹探测与Sqlmap相结合_sql_09

完善验证机制:

编写WAF指纹探测与Sqlmap相结合_php_10

请求 /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行)

编写WAF指纹探测与Sqlmap相结合_waf_11

Company :哪家公司产品
Name:waf名称
regex:正则匹配
那我们来进行修改,以刚才的奇安信为例:
"regex": "Server: eventID|493",

编写WAF指纹探测与Sqlmap相结合_网络安全_12

原理:
Sqlmap会自动执行sql语句 来触发waf
我们只需要写入特征

修改之前:

编写WAF指纹探测与Sqlmap相结合_waf_13

修改之后:

编写WAF指纹探测与Sqlmap相结合_sql_14

已经可以探测到WAF了,这更方便于我们进行下一步操作

你可以去收集更多的waf特征,来进行匹配啦。

喜欢关注一下叭~

编写WAF指纹探测与Sqlmap相结合_网络安全_15

  • 1
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK