ChatGPT写POC,拿下漏洞!_goby poc分享,【金三银四】

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注go)
img

正文

0×01 前言

ChatGPT(Chat Generative Pre-trained Transformer)是当今备受瞩目的智能AI聊天机器人之一。它不仅能够实现基本的语言交流,还具备许多强大的功能,例如文章撰写、代码脚本编写、翻译等等。那么我们是否可以利用 ChatGpt 去辅助我们完成一些工作呢?比如当一个产品存在安全风险需要漏洞检测时,我们就需要编写对应的POC来实现。目前进行多次验证,我们初步证实了这个实验的可行性,可以训练 ChatGPT 去编写简单的 PoC,但是它对细节的把控并不够完善,例如对输出内容进行匹配的正则表达式的编写和一些复杂逻辑的处理等存在一定的误差,还需要人工干预修改处理。另外我们利用比对的方式验证了 ChatGPT 的一些安全猜想和训练模型的准确性。如下是将其与 Goby 实战化网络攻防工具所结合进行利用检测的实现效果:

在这里插入图片描述

0×02 训练过程

我们利用 ChatGPT 与 Goby 结合编写 PoC 与 EXP 有两种方法:半自动编写和全自动编写(过程中使用 ChatGPT-Plus 账号)。
半自动编写利用 ChatGPT 进行语言格式转换,转换后生成的代码可能存在细节问题,需要进一步排错完善,最后修改对应的语句和函数内容完成 PoC 与 EXP 的编写。

全自动编写通过将使用到的代码模板、漏洞详细信息给到 ChatGPT,让它自动生成对应模板的 PoC,在给出详细信息时需要注意信息的完整与准确。目前可以实现自动编写简单的 PoC,对于EXP来说还需要进一步训练 ChatGPT 对 Goby 内置函数的使用等。

0×03 CVE-2010-2861

Adobe ColdFusion 是一款高效的网络应用服务器开发环境。Adobe ColdFusion 9.0.1 及之前版本的管理控制台中存在多个目录遍历漏洞。远程攻击者可借助向 /CFIDE/administrator/enter.cfm 和 /CFIDE/administrator/archives/index.cfm 等发送的 locale 参数读取任意文件。

3.1 半自动编写

首先尝试让 ChatGPT 将 CVE-2010-2861 目录遍历漏洞的 Python 格式 EXP 转换为 Go 语言格式的代码,这样可以利用 ChatGPT 代替人工完成代码解释及代码转换的过程。

我们在漏洞公开平台中选取该漏洞的 EXP 代码:

在这里插入图片描述

在使用 ChatGPT 将相应漏洞的 EXP 代码转换之前,先演示一下原始 Python 代码的执行效果,具体如下:

在这里插入图片描述

开始转化格式:

在这里插入图片描述

此外,他还提供了该程序的使用方法。然而,每次 ChatGPT 的回答都可能不完全相同。此前的回答中并没有详细说明函数的具体用法,但在另一个回答中给出了以下解释:(如果需要,可在问题中增加“并介绍函数的具体用法”)

在这里插入图片描述

最后进行代码调试后,发现无法立即使用,未能成功读取所需的文件内容:

在这里插入图片描述

那么就需要开始排错,以下是排错过程:

检查正则匹配后字符串是否为空:

在这里插入图片描述

在这里插入图片描述

检查返回包内容是否正常,有无所需内容,如下返回数据包显示正常:

在这里插入图片描述

判断正则表达式有问题,无法匹配到对应内容:

通过排查发现正则表达式中没有正确匹配,因此无法将文件的内容正确取出,做出以下修改,修改后内容具体如下:

在这里插入图片描述

修改前:

在这里插入图片描述

最终执行结果,完成 Python—Go 的转化:

在这里插入图片描述

前面我们已经成功将 Python 格式的EXP转换为了 Go 语言格式,现在尝试将其转换为 Goby 格式的 PoC 和 EXP。

由于 Goby 使用的是基于 Go 语言开发的自研漏洞框架,为方便用户使用,其中已有很多内置函数可供用户使用,所以只需要利用上述部分代码即可完成 PoC 和 EXP,以下是 EXP 修改的大致说明与详细内容:

在这里插入图片描述
在这里插入图片描述

修改 import 内容:

在这里插入图片描述

由于生成的 EXP 在命令行使用时需要手动输入参数:

在这里插入图片描述

那么在 PoC 转化时,需要重新定义常量,并利用 Goby 中的 httpclient.FixUrl.IP 与 httpclient.FixUrl.Port 获取测试的 IP 和端口号,确定测试的文件路径 path:

在这里插入图片描述

接着在 PoC 中添加条件判断语句,判断漏洞存在的特征,并返回 true(有漏洞):

在这里插入图片描述

最后删除多余的输出打印代码即可完成 PoC 转化,如:

在这里插入图片描述

EXP 转化时,需重新定义变量,利用 Goby 中的 expResult.HostInfo.IP 与 expResult.HostInfo.Port 获取测试的IP和端口号,利用 ss.Params[“filePath”]. (string) 获取用户输入的 EXP 参数——测试文件路径 filePath:

在这里插入图片描述

接着在 EXP 代码中添加条件判断语句,判断 EXP 是否执行成功,并输出 EXP 执行结果,完成 EXP 转化:

在这里插入图片描述

3.2 全自动编写

在使用 ChatGPT 与人工相结合编写后,我们进一步尝试使用它来撰写 Goby 格式的 PoC。

首先将 Goby 格式的模板给出:

在这里插入图片描述

接着将漏洞的编号、产品、类型、Url、漏洞文件、参数和判断成功条件给出,说明相关的字段格式,我们最终得到了下面的代码,它已经可以通过 Goby 前端的编译,并可以成功地生成简单的 PoC:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-h5zsFnzB-1713292041327)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值