buuctf[是兄弟就来传马

先传一个php木马

页面报错,随便改一个后缀,看看是黑名单还是白名单过滤,这里php代码前加GIF89a绕过图片大小检查

报错,接着试一下是不是MIME过滤

Content-Type: image/png

上传成功 /var/www/html/upload/743be915f2c6ab5de3600d87068cafd2/hack.jpg succesfully uploaded!

接下来修改.htaccess解析文件,记得改Content-type

1
2
3
<FilesMatch "hack" >
SetHandler application/x-httpd-php
</FilesMatch>

/var/www/html/upload/743be915f2c6ab5de3600d87068cafd2/.htaccess succesfully uploaded!

接着上传hack.jpg图片/var/www/html/upload/743be915f2c6ab5de3600d87068cafd2/hack.jpg succesfully uploaded!

拼接后的url蚁剑链接即可

ACTF2020 Upload

尝试上传php,发现前端拦截,上传png,用bp抓包改php,上传失败

尝试phtml,上传成功

Upload Success! Look here~ ./uplo4d/87d8f9288427fb50ed6e8dd6be21e62b.phtml

http://b2a5f0cf-75b2-4af3-9386-e4d027a70dc1.node5.buuoj.cn:81/uplo4d/87d8f9288427fb50ed6e8dd6be21e62b.phtml蚁剑链接即可

ps:buu上面的文件上传题都有bug,经常导致重定向

[SWPUCTF 2021 新生赛]easyupload1.0

同样是png文件改phtml,用蚁剑链接只能找到fakeflag,看了wp才知道在phpinfo()中,长知识了

[SWPUCTF 2021 新生赛]easyupload3.0

提示用文件组合,.htaccess秒了(nss平台没bug)

[NISACTF 2022]babyupload复现

上传各种文件,发现一直返回badname,查看源代码,发现source目录,访问后给了Python源码

代码粘到gpt,发现文件不能带点,根据文件名给一个id,再通过/file/uuid访问文件,通过查询数据库得到对应文件名,在文件名前拼接uploads/后读取该路径下上传的文件。

with open(os.path.join("uploads/", res[0]), "r") as f: return f.read()

绝对路径拼接漏洞

os.path.join(path,*paths)函数用于将多个文件路径连接成一个组合的路径。第一个函数通常包含了基础路径,而之后的每个参数被当作组件拼接到基础路径之后。然而,这个函数有一个少有人知的特性,如果拼接的某个路径以 / 开头,那么包括基础路径在内的所有前缀路径都将被删除,该路径将视为绝对路径

直接把文件名字改成/flag,访问得到flag