#writeup# 深交所CTF内训T2-上传漏洞

T2:上传漏洞

题目分析

上传题目有些基本的套路,大致如下:

点击页面右上角的“提示按钮”,可以看到,已经对部分后缀进行了过滤。

解题方法

从提示大致判断是后缀名过滤,所以可以考虑 php3/php5 等后缀文件
编写一个小马:

完成上传:

通过图片属性,获取到webshell的地址:
http://www.szse.ml:8081/upload/202003281443405275.php5
利用webshell客户端工具进行连接,这里使用菜刀,进行简单配置


在 szse-2 的web目录找到flag文件:

题目原理介绍

为什么 php5 文件可以上传呢?其实是因为 apache 的一个配置项:

通过查找php5 ,可以定位到配置文件(我这里用的docker,所以配置文件为docker-php.conf,如果是物理机会不一样)。

可以看到,某些版本的配置文件默认支持 php3/php5/phtml,所以这题还可以上传 php3/phtml 格式的webshell进行突破。

进阶

一句话的绕过技巧

有些时候,webshell中的命令会被过滤掉,比如eval,assert都会被preg进行匹配、过滤,改如何办呢?
https://www.freebuf.com/articles/web/9396.html

菜刀的高级用法

菜刀其实有很多种用法,比如你要输入多个参数 http://www.szse.ml:8080/?a=xx&b=xx 这种该如何填写配置文件?

其他 upload 漏洞

所有的upload漏洞,基本都涵盖在了 upload-labse里面了,请访问这里:
https://github.com/c0ny1/upload-labs
大部分题目搭建个docker就可以搞定。
部分题目需要windows环境,可以使用虚拟机,跑个phpstudy进行测试。

可以说,做完这些题目,ctf的upload基本题目都无敌了。





猜你喜欢

转载自www.cnblogs.com/handt/p/12590146.html