
今天开始做web题目了,开始疯狂赤石了,也就一周,忍一忍就过去了
看到一个文件上传点,结合这一题题目,可以知道这一题就是上传木马,拿shell
随便上传一个正常一点的1.txt,结果
不知道到上传成果没有
再试试jpg,发现可以上传成功!
并且还有上传之后的路径,试过可以访问!
接下来就是上传php木马了,不出意外,php木马直接和txt文本一样上传失败
还是按照绕过流程来:
1.验证是否是前端校验:上传木马的jpg,bp改包为php

没成功
2.MIME 类型绕过:该content-type为jpg的格式,其实和上面是一样的,但是可以试试很多格式,
如果后端检查的是mime类型的话就可以绕过了

没成功
3.后缀名绕过:如果网站只允许或者禁止了某些文件后缀通过,可以通过同类但是不同名的文件名上传,
看看有没有规则之外的文件名
由于太耗时间,所以只尝试了几个,后面就没有了
4.文件内容检查绕过 :服务器不仅检查后缀,还检查文件里面的二进制头部(Magic Number)来确认它是不是真的图片。
还是不行
配置文件覆盖 (.htaccess / .user.ini)
.htaccess(适用于 Apache):上传自定义的.htaccess文件,通过或AddType指令,告诉 Apache 把某个原本不执行的后缀(如.jpg)当作 PHP 脚本来执行。 .user.ini(适用于 Nginx/Apache/IIS + FastCGI):配合 PHP 的auto_prepend_file指令,让所有 PHP 文件在执行前自动包含你上传的图片马。例如上传内容为auto_prepend_file=1.jpg的.user.ini,然后再上传包含恶意代码的 1.jpg`。

直接传.htaccess会失败,改content-type为image/jpeg就成功了
传.htaccess文件之后,.jpg文件就会被当成php文件处理

哥斯拉连接成功,拿到根目录拿到flag