复现YCCMS执行GETSHELL

释放双眼,带上耳机,听听看~!

首先本地搭建环境YCCMS

审计admin目录下的index.php其中页面就一行代码, 代码主要作用包含 /config/run.inc.php文件

在config目录打开run.inc.php文件

本页面代码前面主要进行初始化一些常量和配置,其中autoload函数作用是当你进行初始化类在本页面不存在时候就会自动调用autoload()函数,同时会把名字当做参数传输过去。 最后进行调用setAction()方法,按照 autoload 函 数 代 码 功 能 , 页 面 会 包 含/public/class/Factory.class.php 文 件Factory.class.php文件主要是Factory类的定义文件

其中setAction()方法首先调用getA()方法获取GET传输的过来得a参数并赋值给a紧接着利用in_array()函数进行检查,其中如果$_a变量包含数组中的变量,页面将会跳转。 然后file_exists()函数进行检查页面文件是否存在,如果不存在则将$_a赋值成Index,最后调用eval()执行PHP代码。如果能够让eval 成功执行代码,必须成功逃逸file_exists函数。

file_exists函数主要作用是检查文件是否存在,但是这个函数在进行检查会有一个bug,如/controller/admin;/…/,函数允许路径中有一些特殊字符, 并且遇到/…/会返回到上级目录,可以利用这个策略逃逸出file_exists()函数检查,最后一个利用点eval可以执行多条语句,如:eval(echo 1;echo 2;); 可以成功执行两条语句。

payload:Factory();phpinfo();//../

WEB安全安全独秀圈

Bypass之HPP混淆绕过某狗4.0

2020-4-22 21:13:41

安全独秀圈漏洞

cobaltstrike上线linux主机

2020-4-23 9:08:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索