官网:http://securitytech.cc/
在这篇文章中,我将带你逐步走过该挑战的解题过程。
进入应用后,你会看到一个类似商店主页的页面,并带有搜索功能。
黑客的第一想法通常是 对输入(如搜索值或产品 ID)进行模糊测试或注入 payload。
不幸的是,所有 GET 请求的响应都返回 301、302 或 404。
此外,任何注入尝试都会得到 404、Bad Request 或 “Product Not Found” 的提示。
起点
重新审查请求后,我们可以看到服务器是 IIS,应用基于 .NET 技术。
因此,第一步是检查 IIS 短文件名枚举漏洞。
我们使用了 Burp 插件 IIS Tilde Enumeration 来解决。
结果发现服务器确实存在漏洞,使我们能够收集目录和文件信息。
我们尝试直接访问目录,但目录列表被禁用。
我们又尝试了其他 HTTP 方法,如 OPTIONS 和 TRACE,但只有 DEBUG 方法返回 200 OK,确认该目录存在。
为了再次对该目录进行短文件名枚举,我们需要先确认其完整名称。
于是我们让 ChatGPT 生成一个字典,然后用 DEBUG 方法对目录进行 fuzz。
我们将请求发给 Burp Intruder,并用 DEBUG 方法跑。
最终得到目录名称是 fileupload。
继续对该目录使用插件,又得到了新结果。
再次使用 Intruder + DEBUG,得到目录名称为 application。
最后,插件发现目录下有一个名为 Home
的文件,扩展名被缩写为 .asp
。
我们直接访问:
http://<ip>/fileupload/application/home.aspx
页面显示为开发者准备的上传页面。
上传 Webshell
我们尝试上传 Webshell。
文件上传成功。
但是访问:
http://<ip>/fileupload/application/shel
l.aspx
时
无法访问。
再次上传时,我们注意到请求体中包含一个 指定上传路径的参数。
所以需要提供一个可访问路径来上传并执行 shell。
研究发现,.NET 应用通常位于:
C:inetpubwwwroot
于是我们将 shell 上传到:
C:inetpubwwwrootfileupload
上传成功,可以访问:
http://<ip>/fileupload/shell.aspx
Webshell 正常工作。
竞赛现场的调整
在比赛盲测阶段,队伍们已经拿到 Webshell,但找不到 flag。
于是我们更新了挑战(不为难他们),在桌面放置了一个 flag.txt
文件。
真实场景
真实场景的预期解法是:获取应用 DLL 文件(因为是 .NET 应用),反编译以拿到 flag。
我自己的方法是:
使用 Webshell 将 DLL 转为 Base64;
下载到本地;
反编译。
直接运行 strings
命令并未找到 flag。
于是我们用 dnSpy 反编译 DLL,并搜索 flag
。
果然发现 GetFlag
函数,它通过简单的 XOR 运算来混淆 flag。
我们用 ChatGPT 写了解密脚本,执行后成功解出 flag。
最终 Flag 为:
ASCWG{L3gacy_3dition_Name_Pwnd}
总结
以上就是全部过程,希望你们在阅读后有所收获。
公众号:安全狗的自我修养
vx:2207344074
http://gitee.com/haidragon
http://github.com/haidragon
bilibili:haidragonx
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...