ScreenShot_2026-04-07_191042_304.png
今天开始做web题目了,开始疯狂赤石了,也就一周,忍一忍就过去了
ScreenShot_2026-04-07_191050_938.png
看到一个文件上传点,结合这一题题目,可以知道这一题就是上传木马,拿shell
随便上传一个正常一点的1.txt,结果
ScreenShot_2026-04-07_191449_712.png
不知道到上传成果没有
再试试jpg,发现可以上传成功!
ScreenShot_2026-04-07_200230_247.png
并且还有上传之后的路径,试过可以访问!

接下来就是上传php木马了,不出意外,php木马直接和txt文本一样上传失败

还是按照绕过流程来:
1.验证是否是前端校验:上传木马的jpg,bp改包为php
ScreenShot_2026-04-07_200804_523.png
ScreenShot_2026-04-07_200827_297.png
没成功

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

3.后缀名绕过:如果网站只允许或者禁止了某些文件后缀通过,可以通过同类但是不同名的文件名上传,
看看有没有规则之外的文件名
由于太耗时间,所以只尝试了几个,后面就没有了

4.文件内容检查绕过 :服务器不仅检查后缀,还检查文件里面的二进制头部(Magic Number)来确认它是不是真的图片。
ScreenShot_2026-04-07_203330_792.png
还是不行

  1. 配置文件覆盖 (.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`。

    ScreenShot_2026-04-07_205323_526.png
    ScreenShot_2026-04-07_205336_447.png
    直接传.htaccess会失败,改content-type为image/jpeg就成功了
    传.htaccess文件之后,.jpg文件就会被当成php文件处理
    ScreenShot_2026-04-07_190907_305.png
    ScreenShot_2026-04-07_190823_836.png
    哥斯拉连接成功,拿到根目录拿到flag