upload-labs_pass10_点空点绕过_pass11_双写文件扩展名

关于靶场说几点:单纯用phpstudy 可能无法复现所有的漏洞,而且phpstudy中的php可能是线程不安全的,所以建议大家在自己本机或者虚拟机的中亲自搭建一下apache和php的环境,便于复现upload-labs的所有靶场环境。配置有问题的可以参考我写的这篇文章:
https://blog.csdn.net/qq_51550750/article/details/124062273

pass10-观察源码,思路生成

在这里插入图片描述

看源码:

$file_name = deldot($file_name);//删除文件名末尾的点
$file_ext = strrchr($file_name, '.');
$file_ext = strtolower($file_ext); //转换为小写
$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
$file_ext = trim($file_ext); //首尾去空

对比pass5的源码:

$file_name = deldot($file_name);//删除文件名末尾的点
$file_ext = strrchr($file_name, '.');
$file_ext = strtolower($file_ext); //转换为小写
$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
$file_ext = trim($file_ext); //首尾去空

pass10貌似没有什么变化。

如果我们尝试先加一个“.”,再加个空格,再加个“.”呢?最后是不是就是剩了一个点呢?

pass10-尝试上传

首先说明我用的靶场环境是phpstudy,其中php的版本是7.3.4nts:
在这里插入图片描述

然后上传文件,抓包,改名称:
在这里插入图片描述
然后forward:
貌似是上传成功了:
在这里插入图片描述

查看文件路径,

尝试连接:
在这里插入图片描述
连接成功。

pass11-观察源码

发现对比于第10关就只有一行:

$file_name = str_ireplace($deny_ext,"", $file_name);

其实功能就是在下面的黑名单中,如果发现了匹配,就替换成空:

"php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess","ini"

利用这个思路,是不是可以写成shell.phphpp
在过滤之后,是不是就变成了shell.php?
试试这个方法:

pass11-上传文件

抓包,改名:
在这里插入图片描述

貌似是上传成功了:
在这里插入图片描述
蚁剑测试连接:
在这里插入图片描述

简单总结一下

pass6:大小写过滤不全面
pass7:扩展名最后加一个空格
pass8:扩展名最后加一个点
pass9:扩展名最后加上::$DATA
pass10:扩展名最后加点空点
pass11:双写文件扩展名

觉得写的还不错的师傅点个赞吧!知识分享是无价的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值