💡
原文中文,约26000字,阅读约需62分钟。
📝
内容提要
这篇文章讲述了一个关于文件上传漏洞的故事,作者通过一个网页发现了文件上传功能,利用漏洞上传了webshell并成功获取了服务器上的flag文件,最后获得了flag。
🎯
关键要点
- 文章讲述了一个关于文件上传漏洞的故事。
- 作者通过网页发现文件上传功能,利用漏洞上传webshell。
- 成功获取服务器上的flag文件,最终获得flag。
- 附件下载有两个文件,分别为sweeeeeet.png和where_is_key.zip。
- 使用TweakPNG分析png文件,发现冗余数据。
- 通过解码冗余数据,得知使用LSB隐写技术。
- 使用Python脚本解码png文件,获取提示信息。
- 尝试解压where_is_key.zip文件,但需要密码。
- 发现压缩包内有伪加密,使用ZipCracker解除伪加密。
- 获取flag.txt文件,发现有base编码的内容。
- 使用base64解码获取flag。
- 通过网络抓包文件发现对/wireshark/flag.php的请求,获取flag。
- 使用base编码方式解码文件内容,获取有意义的字符串。
- 下载Python文件进行flag验证,包含多个条件。
- 通过条件推测flag的格式,最终猜测出正确的flag。
- 使用dig命令查看域名下的TXT记录,获取flag。
- 通过md5碰撞获取flag,使用Python脚本生成结果。
- 使用Crypto库解密AES加密的内容,获取flag。
- 通过HTTP请求参数获取flag,利用PHP源码执行系统命令。
- 利用PHP的md5绕过机制获取flag。
- 通过文件上传漏洞上传webshell,获取服务器上的flag文件。
❓
延伸问答
文件上传漏洞是如何被利用的?
作者通过网页发现文件上传功能,利用漏洞上传了webshell,成功获取了服务器上的flag文件。
如何分析PNG文件中的隐写数据?
使用TweakPNG分析png文件,发现冗余数据,并通过Python脚本解码获取提示信息。
如何解压带密码的压缩文件?
尝试解压where_is_key.zip文件时发现需要密码,使用ZipCracker解除伪加密后成功解压。
如何通过网络抓包获取flag?
通过网络抓包文件发现对/wireshark/flag.php的请求,获取到flag的内容。
如何使用base64解码获取flag?
使用base64解码文件内容,获取有意义的字符串,最终得到flag。
如何通过md5碰撞获取flag?
使用Python脚本生成md5碰撞,获取flag的内容。
➡️