maccms代码审计

由于工作原因,分析了很多的cms也都写过文章,不过觉得好像没什么骚操作都是网上的基本操作,所以也就没发表在网站上,都保存在本地。最近突然发现自己博客中实战的东西太少了,决定将以前写的一些文章搬过来,由于当时写的初4是给自己留个记录,以后方便查看,所以写的都很简单,只有代码审计和复现,没有详细写挖掘中遇到的一些坑。以后写的文章中会尽量写详细的

maccms7.x前台盲注

user/index.php

maccms代码审计_第1张图片

可以看到直接接收了请求中的u_group参数后进行分割,最后传入了sql语句中,虽然be()方法中转义了单引号,但是接下来的sql语句中并没有用单引号进行拼凑

复现

 maccms代码审计_第2张图片

 

maccms8.x前台任意文件读取

在入口文件index.php中接收get参数m,分割后用于指定包含不同的controller文件

maccms代码审计_第3张图片

当m为label-xxx时,包含label.php文件,跟进

 maccms代码审计_第4张图片

再次获取参数m,获取m的后半部分字符串,用于指定读取文件的文件名,并通过pageshow()将读取的内容展示在页面上。跟进17行处的loadFile()

maccms代码审计_第5张图片

由于没有对文件名做校验,导致可以通过../进行路径变量

 复现:
maccms代码审计_第6张图片

 

 maccms8.x 后台任意文件删除导致系统重装

 后台自定义广告处可以删除文件,由于没有对删除文件的文件名做校验,导致可以通过../进行路径回溯删除任意文件。

 maccms代码审计_第7张图片

点击删除后抓包,修改参数,删除锁文件

maccms代码审计_第8张图片

maccms代码审计_第9张图片

访问首页,显示系统安装

maccms代码审计_第10张图片

由于该操作没有csrf的防范措施,可以使用结合csrf使用,效果更佳,还是个get类型的csrf,poc如下:

http://127.0.0.1/maccms8/admin/?m=template-adsdel-file-../../../inc/install.lock

 

转载于:https://www.cnblogs.com/jinqi520/p/11008915.html

你可能感兴趣的:(maccms代码审计)