在逛某论坛的时候,发现某位师傅丢出一个存在有漏洞的系统,很快就有师傅getshell并丢出相关源码,按照师傅们提示的漏洞点进行审计。
环境搭建
宝塔+
php5
.x
+
Mysql5
.x
默认密码 admin/123456登录到管理员后台,存在漏洞的上传点如下
先构造一个正常的图片进行上传 然后改为php再次进行上传 无法上传成功
对返回包的内容进行unicode解码
审计
Thinkphp5框架 直接去Controller里面找到对应的上传函数
从以上的代码可以看出,取出后缀后并未进行过滤 比如去除空格或者特殊字符等 而是直接与黑名单进行比对,由于目标环境是宝塔+Linux 可以采用php+空格、黑名单绕过等。
由于代码层面上是如下 所以也可以构造如 1.png.php、1.gif.php,.php完全可以逃逸出来,躲避检测 测试如下。
$arr
= explode(
"."
,
$name
);
$ext
=
$arr
[1];
if
(
$ext
==
'html'
||
$ext
==
'htm'
||
$ext
==
'jsp'
||
$ext
==
'php'
)
靶场测试
1.php+空格 成功上传php文件
1.png.php 成功上传php文件
通过xx搜索,发现该系统还是非常多的,但并不是每一个都有弱口令(看运气了)
制作图片木马上传
坑点:使用1.php+空格 并不能直接getshell,的确是逃过了php后缀的检测,但是空格最后生成也是携带着了,无法进行有效的访问,也不能进行连接。
原文始发于微信公众号(LemonSec):小记一次审计到getshell
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论