看到个cms,不是按照标准mvc模式来写的,但是可以通读整个系统作为代码审计的一个入门
工具:
VSCode
MAMP
burp
先看看这个cms的大致逻辑,首先当然是看index.php
包含了common.php
是一个放置公共函数的地方
然后是这个cms比较重要的地方
$m参数,通过php的input伪协议进行传参,为空时默认为{‘act’:’index’}
$m参数会经过Des函数进行处理,跟踪到这个函数
调用json_decode对传入的数据进行处理,不符合json格式会报错
然后经过了
Rpl函数进行处理,简单的对一下字符进行替换处理
0x01:配置文件写入
cms下载后通常提供一个install.php进行系统安装,这里通常会出现可以在安装过程利用配置文件写入时插入木马,或者是存在重装漏洞
进行配置文件写入
未对$n[5]进行验证,导致可以直接进行闭合写入shell
\”}} ‘; phpinfo();//”
这种漏洞也不太想专门去挖掘,看到了就带一下
0x02:sql注入
在admin.php中
可以看到直接拼接了参数,当$m[“act”]!=”idx”&&$m[“act”]!=”lgn”即可带入如下的查询,进入Qry函数
可以看到直接带入了查询,没有过滤
进入登录界面
点击登录抓取数据包
将act修改为不等于这两个的值,然后构造uid的值,这里要注意由于是json数据且经过json_decode处理,要将payload添加双引号处理,不然会报错
设置个断点开启debug,然后发包
这里用正常空格会被转义
因为在获取m传入的值时做了一个过滤,具体的函数如下
所以用/**/
这个cms很多地方都是这样,就不去一个个挖了,看看其他漏洞
0x03:任意文件删除
未对删除的文件进行限制,导致任意文件删除