ctfshow文件上传总结
简单总结下
文件上传前端限制绕过:抓包修改对应项即可,不过本人更习惯上传一个符合要求的文件,然后抓包后只修改后缀名,看看能不能上传成功
文件上传后端限制绕过:一般都是检测文件头,尝试添加 GIF89a 、JFIF 尝试绕过
顺嘴提下在实战中,能上传的接口,先直接 fuzz 看看。不过几乎都限制死了,没遇过黑名单、00截断绕白名单的也未曾成功过。
对 php一句话木马内容的过滤
大小写绕过、`cmd`执行、<srcipt>绕过、<?=xxx?>绕过、异或构造绕过。只能想到这些了,ctfshow的题目也不全涉及到了
以及 .user.ini 和 .htaccess
.user.ini 应用比较广泛,不像 .htaccess 只能在 apache 用,但是也要求更苛刻,需要同文件夹下有 php 文件,起到一个文件包含的作用。
auto_prepend_file=1.png
如果我们在 1.png 写入一句话木马,那么访问同文件夹下的 php 文件就能拿到 webshell 了,所以 .user.ini 也可以用来 日志包含、session文件竞争
还有,在 ctfshow 的题目中看到了一种链接
http://xxx/download.php?image=xxx.png
抓包仔细看了下,发现虽然是 download.php ,但是访问并不会去下载对应的文件,而是把对应文件的内容直接输出,这就有可乘之机了,可以利用 png 二次渲染马等包含 php 代码文件来RCE