由于工作原因,分析了很多的cms也都写过文章,不过觉得好像没什么骚操作都是网上的基本操作,所以也就没发表在网站上,都保存在本地。最近突然发现自己博客中实战的东西太少了,决定将以前写的一些文章搬过来,由于当时写的初4是给自己留个记录,以后方便查看,所以写的都很简单,只有代码审计和复现,没有详细写挖掘中遇到的一些坑。以后写的文章中会尽量写详细的
maccms7.x前台盲注
user/index.php
可以看到直接接收了请求中的u_group参数后进行分割,最后传入了sql语句中,虽然be()方法中转义了单引号,但是接下来的sql语句中并没有用单引号进行拼凑
复现
maccms8.x前台任意文件读取
在入口文件index.php中接收get参数m,分割后用于指定包含不同的controller文件
当m为label-xxx时,包含label.php文件,跟进
再次获取参数m,获取m的后半部分字符串,用于指定读取文件的文件名,并通过pageshow()将读取的内容展示在页面上。跟进17行处的loadFile()
由于没有对文件名做校验,导致可以通过../进行路径变量
复现:
maccms8.x 后台任意文件删除导致系统重装
后台自定义广告处可以删除文件,由于没有对删除文件的文件名做校验,导致可以通过../进行路径回溯删除任意文件。
点击删除后抓包,修改参数,删除锁文件
访问首页,显示系统安装
http://127.0.0.1/maccms8/admin/?m=template-adsdel-file-../../../inc/install.lock