一、漏洞描述
该漏洞是由于安装程序时没有对用户的输入做严格过滤,导致用户输入的可控参数被写入配置文件,造成任意代码执行漏洞。
二、漏洞复现
1、漏洞出现位置如下图,phome_表前缀没有被严格过滤导致攻击者构造恶意的代码
![图片[1]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://img2018.cnblogs.com/blog/1592114/201908/1592114-20190817185555250-1952045970.png)
![图片[2]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://www.hostjl.com/wp-content/hctimg/20220928/1650330454-c4ca4238a0b9238306.jpg)
2、定位漏洞出现的位置,发现在/e/install/index.php,下图可以看到表名前缀phome_,将获取表名前缀交给了mydbtbpre参数。
![图片[3]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://img2018.cnblogs.com/blog/1592114/201908/1592114-20190817185610304-1100135528.png)
![图片[4]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://www.hostjl.com/wp-content/hctimg/20220928/1650330455-c81e728d9d4c2f6308.jpg)
3、全文搜索,$mydbtbpre,然后跟进参数传递,发现将用户前端输入的表前缀替换掉后带入了sql语句进行表的创建,期间并没有对前端传入的数据做严格的过滤
![图片[5]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://img2018.cnblogs.com/blog/1592114/201908/1592114-20190817185627038-1357407191.png)
![图片[6]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://www.hostjl.com/wp-content/hctimg/20220928/1650330456-eccbc87e4b5ce2f309.jpg)
![图片[7]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://www.hostjl.com/wp-content/hctimg/20220928/1650330456-a87ff679a2f3e71310.jpg)
![图片[8]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://img2018.cnblogs.com/blog/1592114/201908/1592114-20190817185637011-1701644045.png)
4、创建表的同时将配置数据和可以由用户控制的表前缀一起写入到config.php配置文件
![图片[9]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://img2018.cnblogs.com/blog/1592114/201908/1592114-20190817185651395-1673068522.png)
![图片[10]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://www.hostjl.com/wp-content/hctimg/20220928/1650330457-e4da3b7fbbce234311.jpg)
5、通过对整个install过程的代码分析,可以发现没有对用户数据进行过滤,导致配置文件代码写入。
5.1、burp对漏洞存在页面进行抓包,修改phome参数的值,构造payload,payload如下:
‘;phpinfo();//
5.2、在burp中的phome参数的值中输入特殊构造的payload
![图片[11]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://img2018.cnblogs.com/blog/1592114/201908/1592114-20190817185708220-215116801.png)
![图片[12]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://www.hostjl.com/wp-content/hctimg/20220928/1650330458-1679091c5a880fa313.jpg)
6、查看config.php配置文件,发现成功写入配置文件
![图片[13]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://img2018.cnblogs.com/blog/1592114/201908/1592114-20190817185723433-407270785.png)
![图片[14]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://www.hostjl.com/wp-content/hctimg/20220928/1650330459-8f14e45fceea167314.jpg)
7、再次访问安装结束的页面, http://192.168.10.171/empirecms/e/install/index.php?enews=moddata&f=4&ok=1&defaultdata=1
![图片[15]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://img2018.cnblogs.com/blog/1592114/201908/1592114-20190817185739597-1074573200.png)
![图片[16]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://www.hostjl.com/wp-content/hctimg/20220928/1650330459-c9f0f895fb98ab9315.jpg)
8、构造特殊的payload getshell
![图片[17]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://img2018.cnblogs.com/blog/1592114/201908/1592114-20190817185755829-1228108661.png)
![图片[18]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://www.hostjl.com/wp-content/hctimg/20220928/1650330460-45c48cce2e2d7fb316.jpg)
9、菜刀连接,成功getshell
![图片[19]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://img2018.cnblogs.com/blog/1592114/201908/1592114-20190817185808239-1484058557.png)
![图片[20]-帝国CMS(EmpireCMS) v7.5配置文件写入漏洞/挂马分析-HostJL-VPS主机交流](https://www.hostjl.com/wp-content/hctimg/20220928/1650330461-d3d9446802a4425317.jpg)










暂无评论内容