代码审计之kkcms

听说这个cms比较适合新手学习,作为另一种代码审计的手段,危险函数定位及回溯进行php代码审计的学习
使用工具:
vscode
seay代码审计
MAMP

首先使用seay扫描出危险函数的位置

基本都包含了inc.php这个文件

进入此php文件

分别看这个四个php文件

在library.php文件中,对get post 等传入的数据使用addslashes_deep进行处理,但是很明显的没有考虑到$_SERVER,接下来可以注意这个问题

但是这个函数存在一点的key值注入的风险,所以这里作者重写进行了处理

在function.php文件中发现如下代码

没发现过滤,但是CURLOPT_RETURNTRANSFER设置为true,表示保留在文件流中,不会输入,所以是无回显的ssrf

在config.php中同样发现了此问题

但是同样为无回显的ssrf

读完这几个php文件发现没有其他过滤手段,只是简单的用了addslashes_deep进行处理,下面开始漏洞挖掘

0x01:存储xss

在book.php中

content验证了是否包含中文并未验证其他
然后直接输出了留言内容,并未过滤

管理员后台界面同样如此

友情链接申请处同样存在此问题

0x02:sql注入漏洞

在/ucenter/reg.php中

使用stripslashes去除了转义符,导致了sql注入

同样repass.php同样存在

/ucenter/active.php

0x03:注册用户名处

因为注册时对用户名只有一个过滤函数,从数据库取出来的时候并没有什么限制,addslashes_deep插入数据库的时候并不会带上\进行转义,而在很多地方直接echo了u_name,首先就是导致的xss问题

然后在/ucenter/index.php中代入了sql语句

从而导致了二次注入,但是这里name有长度限制,比较鸡肋

0x04:sql注入漏洞(二)

在/template/wapian/vlist.php中

int型的注入,不受addslashes_deep的影响,使用2与2-1或者and 1=1,1=2判断即可

0x05:验证码复用

判断生成的验证码和输入的验证码是否相等

但是每次登录之后刷新了一次界面才会刷新验证码

验证码也并未设置有效期

用burp抓个包

处于拦截状态不放包,即可进行复用

这在平时挖洞的过程也经常遇到过,算是知道为什么会出现这种情况了

可惜的是并没有找到ssrf和$_SERVER的可利用点,curl的地方基本都是写死的,$_SERVER也是用的真实ip,无法进行伪造从而xss,注入

发表评论

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