【PyHacker】编写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={}
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相结合的更多相关文章
- WAF指纹探测及识别技术<freebuf>
Web应用防护系统(也称:网站应用级入侵防御系统.英文:Web Application Firewall,简称: WAF).利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HT ...
- WAF指纹探测及识别技术
Web应用防护系统(也称:网站应用级入侵防御系统.英文:Web Application Firewall,简称: WAF).利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HT ...
- Web安全--XSS现代WAF规则探测及绕过技术
XSS现代WAF规则探测及绕过技术初始测试 1.使用无害的payload,类似<b>,<i>,<u>观察响应,判断应用程序是否被HTML编码,是否标签被过滤,是否过 ...
- 【PyHacker编写指南】打造URL批量采集器
这节课是巡安似海PyHacker编写指南的<打造URL批量采集器> 喜欢用Python写脚本的小伙伴可以跟着一起写一写呀. 编写环境:Python2.x 00x1: 需要用到的模块如下: ...
- WAF指纹识别和XSS过滤器绕过技巧
[译文] -- “Modern Web Application Firewalls Fingerprinting and Bypassing XSS Filters” 0x1 前言 之前在乌云drop ...
- [转]XSS现代WAF规则探测及绕过技术
初始测试 1.使用无害的payload,类似<b>,<i>,<u>观察响应,判断应用程序是否被HTML编码,是否标签被过滤,是否过滤<>等等: 2.如果 ...
- 自己动手写waf指纹识别
import requests import re def target_url(scan_url): xssstring = '<script>alert(1)</script&g ...
- sqlmap Tamper脚本编写
sqlmap Tamper脚本编写 前言 sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MySQL, Oracle, Postg ...
- SQLMAP源码分析-目录结构
-----------------------------------------------------------------------------│ README.md│ sqlmap.c ...
随机推荐
- HTML 5中的本地存储概念?
很多时候,我们想在本地计算机存储有关用户的信息.例如,假设用户已经填满了一半的长表单,互联网却突然连接中断.此时,用户希望能在本地存储这些信息,然后当重新连接到互联网的时候,获取这些信息,并将其发送到 ...
- MyBatis Plus 2.3 个人笔记-04-配置文件与插件使用
接入 springboot application.yml配置 1.mapper 扫描 mybatis-plus: # 如果是放在src/main/java目录下 classpath:/com/you ...
- Python - time标准库使用与程序计时
- 显示调用C++中构造函数和析构函数(有什么弊端)
1.C++中, 构造函数和析构函数可以被显示调用. 显示调用默认构造函数的语法: a.A::A();(不能写成a.A();) , 显示调用非默认构造函数的语法: a.A::A(7);(不能写成a.A( ...
- 前端面试题整理——HTML/CSS
如何理解语义化: 对应的内容是用相应意思的标签,增加开发者和机器爬虫对代码的可读性. 块状元素和内联元素: 块状元素有:display:block/table:有div h1 h2 table ul ...
- Native方法的使用
Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能. 可以将 ...
- mint-ui中messagebox的使用
效果图: 代码: // 安装 # Vue 1.x npm install mint-ui@1 -S # Vue 2.0 npm install mint-ui -S // 引入全部组件 import ...
- 动态代理-JDK
代理模式:假设一个场景,你的公司是一位软件公司,你是一位软件工程师,显然客户带着需求不会去找你谈,而是去找商务谈,此时商务就代表公司. 商务的作用:商务可以谈判:也有可能在开发软件之前就谈失败,此时商 ...
- springboot jar包方式部署
打好jar包后上传到 linux 执行命令 java -jar /root/vhr-web-0.0.1-SNAPSHOT.jar > /root/log.txt & 1.java -ja ...
- 自定义user表签发token、自定义认证类、simpleui模块使用
今日内容概要 自定义User表,签发token 自定义认证类 simpleui的使用 多方式登陆接口(后面也写 内容详细 1.自定义User表,签发token # 如果项目中的User表使用auth的 ...