一款插件化指纹POC扫描插件

华盟原创文章投稿奖励计划

工具简介

FrameScan插件是一款插件化的指纹POC扫描插件。

工具使用

  1. 使用Burpsuit或者双击jar包。

  2. 启动后,请确保本地127.0.0.1:23333端口开放。如未开放,请手动启动rpc_server服务。Yaml Poc 、Python Poc依赖此组件。编译好的server已放到根目录。如不适用,请下载GRPC文件夹,使用python rpc_server.py启动rpc服务。

漏洞探测

burp发现的指纹及poc扫描结果会显示在此处。自动草稿

漏洞POC

自动草稿

此模块支持4种POC类型如下:

简单HTTP请求

该POC会替换请求包中的字段,然后根据expression匹配规则进行漏洞探测。

expression: match_method: Contain status_code: 200 scope: response body match_value: openapirequests: method: GET url: /v3/api-docs body: ''

高级 HTTP请求

该模块为源HTTP请求包,支持以下变量进行替换。

完整URL:http://127.0.0.1:8080/aa/bb.txt

自动草稿

requests_raw: | GET / HTTP/1.1 Host: {{Host}} Pragma: no-cache Cache-Control: no-cache User-Agent: {{Random_UserAgent}} Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close Cookie: {{Cookie}} a=1{{Body}}expression: match_method: Contain status_code: 22 scope: response match_value: '22'

Yaml Poc

该POC格式为FrameScan_Yaml的格式,插件可相互调用。请参考FrameScan_Yaml插件编写,基础插件如下:

#插件名称name: poc-yaml-example-com# 脚本部分transport: httprules:r1:request: method: GET path: / body: addd $numheaders: Content-Type: application/json expression: | response.status_code==200 && operator.contains(response.text,'html')output: serial: re.search('\w+',response.text).group() html: re.search('refresh',response.text).group()expression: r1() && r2()#信息部分detail: author: qianxiao996 vuln_id: cve-2019-2222 description: '111' group: 敏感信息泄露 category: ALLlinks: - http://example.com#全局变量set: a: 1 num: randint(1000, 2000)

Python Poc

该POC格式为FrameScan的格式,插件可相互调用。请参考FrameScan插件编写,插件模板如下:

# -*- coding: UTF-8 -*-#!/usr/bin/pythonimport requestsdef vuln_info():info={ 'vuln_name': 'POC测试漏洞', #漏洞名称 'vuln_referer':'http://baidu.com', #漏洞来源 'vuln_author':'qianxiao996', #插件作者 'cms_name':'test',#cms_name需要和上级目录保持一致。扫描器自动添加会调用。GUI版本不会调用'vuln_description':'''漏洞描述''','vuln_identifier':'''漏洞编号。''', 'vuln_class':'漏洞分类',#如:信息泄漏、远程命令执行、任意文件上传、SQL注入、XML注入、任意文件读取、本地文件包含、认证绕过/未认证、弱口令、目录遍历、其他、反序列化漏洞、OGNL表达式注入、SSRF、后门、任意文件下载、鉴权绕过、暴力破解、命令注入、路径泄露、XSS、远程文件包含、CSRF、任意文件包含、代码注入、任意文件写入、密码硬编码、文件包含、任意用户注册、缓冲区溢出、用户枚举漏洞、任意文件删除、任意页面上传、管理权限等'vuln_solution':'''修复建议。''', 'FofaQuery_type':'socket', #socket、http 'FofaQuery_link':'/', #此处的路径会加在url拼接访问,进行FofaQuery的条件匹配 此处为all为全部页面都检测 'FofaQuery_rule':'title="百度"',#header="JSESSIONID" || body="Struts Problem Report" || body="There is no Action mapped for namespace" || body="No result defined for action and result input" || header="Servlet" || header="JBoss",port="60001" #header', 'body', 'title', 'banner','port','banner','service','protocol','server' 'ispoc':1, #是否有poc  1为有 0为无 'isexp':1 #是否有exp   1为有 0为无}return info# url:url  hostname:主机地址  port:端口  scheme:服务  heads:http自定义头信息def do_poc(url,hostname,port,scheme,heads={}):try: # 返回参数 #Result返回是否存在, #Result_Info为返回的信息,可以为Paylaod  #Debug debug信息 默认不会显示,勾选显示调试信息会输出此结果 #Error_Info无论何时都会输出result = {"Result":True,"Result_Info":"payload","Debug_Info":"","Error_Info":""} result['Result_Info']= 'payload' result['Debug_Info']  = 'ddd' result['Error_Info'] = "dsaaaaaaaa"except Exception as e: result['Error_Info'] = str(e)+str(e.__traceback__.tb_lineno)+'行'return result # { #     "type":"cmd",  #cmd,shell,uploadfile #     "command":"whoami",  #cmd命令 #     "reverse_ip":"127.0.0.1", #反弹shell的ip #     "reverse_port":"8888", #反弹shell的端口 #     "filename":"conf.php", #写入文件的名字 #     "filename_contents":"shell内容", #shell文件内容 # }# url:url   hostname:主机地址  port:端口  scheme:服务  heads:自定义请求头

插件POC

图片

指纹POC编辑

图片

插件设置

自动草稿

  • 启用漏洞POC:指纹匹配后,只有在此组的漏洞POC才会进行扫。

  • 跳过指纹POC:不进行指纹扫描。直接进行扫描的POC。

下载地址

https://github.com/qianxiao996/BurpSuite-FrameScan

文章来源:Hack分享吧

黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

如侵权请私聊我们删文


END

本文来源Hack分享吧,经授权后由华盟君发布,观点不代表华盟网的立场,转载请联系原作者。

发表回复