使用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={}
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

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特征,来进行匹配啦。

喜欢关注一下叭~

【PyHacker】编写WAF指纹探测与Sqlmap相结合的更多相关文章

  1. WAF指纹探测及识别技术<freebuf>

    Web应用防护系统(也称:网站应用级入侵防御系统.英文:Web Application Firewall,简称: WAF).利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HT ...

  2. WAF指纹探测及识别技术

    Web应用防护系统(也称:网站应用级入侵防御系统.英文:Web Application Firewall,简称: WAF).利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HT ...

  3. Web安全--XSS现代WAF规则探测及绕过技术

    XSS现代WAF规则探测及绕过技术初始测试 1.使用无害的payload,类似<b>,<i>,<u>观察响应,判断应用程序是否被HTML编码,是否标签被过滤,是否过 ...

  4. 【PyHacker编写指南】打造URL批量采集器

    这节课是巡安似海PyHacker编写指南的<打造URL批量采集器> 喜欢用Python写脚本的小伙伴可以跟着一起写一写呀. 编写环境:Python2.x 00x1: 需要用到的模块如下: ...

  5. WAF指纹识别和XSS过滤器绕过技巧

    [译文] -- “Modern Web Application Firewalls Fingerprinting and Bypassing XSS Filters” 0x1 前言 之前在乌云drop ...

  6. [转]XSS现代WAF规则探测及绕过技术

    初始测试 1.使用无害的payload,类似<b>,<i>,<u>观察响应,判断应用程序是否被HTML编码,是否标签被过滤,是否过滤<>等等: 2.如果 ...

  7. 自己动手写waf指纹识别

    import requests import re def target_url(scan_url): xssstring = '<script>alert(1)</script&g ...

  8. sqlmap Tamper脚本编写

    sqlmap Tamper脚本编写 前言 sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MySQL, Oracle, Postg ...

  9. SQLMAP源码分析-目录结构

    -----------------------------------------------------------------------------│  README.md│  sqlmap.c ...

随机推荐

  1. HTML 5中的本地存储概念?

    很多时候,我们想在本地计算机存储有关用户的信息.例如,假设用户已经填满了一半的长表单,互联网却突然连接中断.此时,用户希望能在本地存储这些信息,然后当重新连接到互联网的时候,获取这些信息,并将其发送到 ...

  2. MyBatis Plus 2.3 个人笔记-04-配置文件与插件使用

    接入 springboot application.yml配置 1.mapper 扫描 mybatis-plus: # 如果是放在src/main/java目录下 classpath:/com/you ...

  3. Python - time标准库使用与程序计时

  4. 显示调用C++中构造函数和析构函数(有什么弊端)

    1.C++中, 构造函数和析构函数可以被显示调用. 显示调用默认构造函数的语法: a.A::A();(不能写成a.A();) , 显示调用非默认构造函数的语法: a.A::A(7);(不能写成a.A( ...

  5. 前端面试题整理——HTML/CSS

    如何理解语义化: 对应的内容是用相应意思的标签,增加开发者和机器爬虫对代码的可读性. 块状元素和内联元素: 块状元素有:display:block/table:有div h1 h2 table ul  ...

  6. Native方法的使用

    Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能. 可以将 ...

  7. mint-ui中messagebox的使用

    效果图: 代码: // 安装 # Vue 1.x npm install mint-ui@1 -S # Vue 2.0 npm install mint-ui -S // 引入全部组件 import ...

  8. 动态代理-JDK

    代理模式:假设一个场景,你的公司是一位软件公司,你是一位软件工程师,显然客户带着需求不会去找你谈,而是去找商务谈,此时商务就代表公司. 商务的作用:商务可以谈判:也有可能在开发软件之前就谈失败,此时商 ...

  9. springboot jar包方式部署

    打好jar包后上传到 linux 执行命令 java -jar /root/vhr-web-0.0.1-SNAPSHOT.jar > /root/log.txt & 1.java -ja ...

  10. 自定义user表签发token、自定义认证类、simpleui模块使用

    今日内容概要 自定义User表,签发token 自定义认证类 simpleui的使用 多方式登陆接口(后面也写 内容详细 1.自定义User表,签发token # 如果项目中的User表使用auth的 ...