easy_unserialize
|
|
可以利用ini_set
进行在线配置,相当于热加载,参数还是可控的,直接找可利用函数即可,找到unserialize_callback_func
,这个函数可以执行函数,而函数参数是反序列化的类名,比如
|
|
这样子就可以,还有个很好利用的方向就是,只要值是没有定义的方法,就会把这个方法在报错中显示出来,也就是相当于执行命令了,而我们再把错误日志给写出来,进行动态设置,相当于是一个软链接,就可以去访问拿到命令执行的结果了,还要设置html_errors
不然会把错误进行html编码就不能得到结果了
|
|
还有个函数
spl_autoload 它可以接收两个参数,第一个参数是$class_name,表示类名,第二个参数$file_extensions是可选的,表示类文件的扩展名,如果不指定的话,它将使用默认的扩展名.inc或.php
|
|
依次执行即可
RealWorld_CyberShow
进去之后,先进blog才能拿到第四个页面,给了用户名模板和初始密码,爆破用户名就可以了
|
|
web_checkin
|
|
看着特别吓人,直接给闭合了就完事了
|
|
easy CMS
修改点在 FrPHP/lib/Model.php的第36行
注入点在 Home/c/HomeController.php的jizhi_details
hint:后台似乎有个压缩包getshell
简单看了一下代码,觉得存在sql注入漏洞,并且开了3306和6379端口的,找找代码,在index.php
里面看到了查询语句,然后开始干
|
|
|
|
得到poc以及用户名和加密的密码
|
|
结果这一次注入靶机就没了,再次进行注入,利用联合注入
|
|
得到了poc
|
|
我们可以直接进行堆叠注入了那,把密码给改了
|
|
我们的用户名密码就变成了
|
|
登不上?我没问题吧,后面就是一个压缩包getshell,打不了了,后面应该是把一句话压缩成zip放服务器上面,让其远程加载,然后去访问/A/exts/
下的shell即可