代码审计初入门

看到个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:任意文件删除

未对删除的文件进行限制,导致任意文件删除

发表评论

电子邮件地址不会被公开。 必填项已用*标注