python编写WAF与Sqlmap结合实现指纹探测

 更新时间:2022年05月14日 16:31:15   作者:巡安似海  
这篇文章主要为大家介绍了python编写WAF指纹探测并与Sqlmap结合的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

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

编写探测识别WAF脚本

00x1:WAF的特征

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

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

寻找关键字:如safedog

00x2:测试

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

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

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

没有发现特别明显的特征

接着利用sql语句触发Waf

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

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

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

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

测试一下,莫得问题

00x3:收集waf

那我们还可以把特征,全部放入字典中,或者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特征,来进行匹配啦。

以上就是python编写WAF与Sqlmap结合实现指纹探测的详细内容,更多关于python WAF指纹探测的资料请关注脚本之家其它相关文章!

相关文章

  • python单元测试框架unittest基本用法案例

    python单元测试框架unittest基本用法案例

    unittest库unittest库是python的内置库,用来对程序进行测试,下面这篇文章主要给大家介绍了关于python中单元测试框架unittest基本用法的相关资料,需要的朋友可以参考下
    2022-09-09
  • 使用python搭建Django应用程序步骤及版本冲突问题解决

    使用python搭建Django应用程序步骤及版本冲突问题解决

    这篇文章主要介绍了使用python搭建Django应用程序的步骤,最近还解决了因版本冲突出现的错误
    2013-11-11
  • TensorFlow车牌识别完整版代码(含车牌数据集)

    TensorFlow车牌识别完整版代码(含车牌数据集)

    这篇文章主要介绍了TensorFlow车牌识别完整版代码(含车牌数据集),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 如何将yolov5中的PANet层改为BiFPN详析

    如何将yolov5中的PANet层改为BiFPN详析

    现在yolov5的neck用的是PANet,在efficient论文中提出了BiFPN结构,还有更加不错的性能,下面这篇文章主要给大家介绍了关于如何将yolov5中的PANet层改为BiFPN的相关资料,需要的朋友可以参考下
    2022-06-06
  • python实现抠图给证件照换背景源码

    python实现抠图给证件照换背景源码

    这篇文章主要为大家详细介绍了python实现抠图给证件照换背景源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Python灰度变换中位图切割分析实现

    Python灰度变换中位图切割分析实现

    灰度变换是指根据某种目标条件按一定变换关系逐点改变源图像中每个像素灰度值的方法。目的是改善画质,使图像显示效果更加清晰。图像的灰度变换处理是图像增强处理技术中的一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分
    2022-10-10
  • Python自动化办公之Excel拆分与自动发邮件

    Python自动化办公之Excel拆分与自动发邮件

    这篇文章主要何大家分享一个真实的自动化办公案例,即向用户发送带有Excel附件的电子邮件,同时必须按用户从主Excel文件中拆分数据以创建他们自己的特定文件,然后将该文件通过电子邮件发送给正确的用户,感兴趣的可以了解一下
    2022-03-03
  • python 多线程爬取壁纸网站的示例

    python 多线程爬取壁纸网站的示例

    这篇文章主要介绍了python 多线程爬取壁纸网站的示例,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-02-02
  • jupyter-lab设置自启动及远程连接开发环境

    jupyter-lab设置自启动及远程连接开发环境

    本文主要介绍了jupyter-lab设置自启动及远程连接开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python读取Hive数据库实现代码详解

    Python读取Hive数据库实现代码详解

    这篇文章主要介绍了Python读取Hive数据库实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03

最新评论