0%

KKcms代审

环境安装

源码下载地址:https://github.com/erichuang2015/kkcms

php5.6 .9+mysql5.7.26+apache2.4.39

审计

验证码复用

1
<img src="../system/verifycode.php" onclick="javascript:this.src='../system/verifycode.php?'+Math.random()" style="cursor:pointer;" alt="点击更换" title="点击更换" />

这串代码用来执行js代码更换验证码,但是bp它默认不加载js,所以造成了验证码复用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
session_start();
$image = imagecreate(50, 34);
$bcolor = imagecolorallocate($image, 0, 0, 0);
$fcolor = imagecolorallocate($image, 255, 255, 255);
$str = '0123456789';
$rand_str = '';
for ($i = 0; $i < 4; $i++){
$k = mt_rand(1, strlen($str));
$rand_str .= $str[$k - 1];
}
$_SESSION['verifycode'] = $rand_str;
imagefill($image, 0, 0, $bcolor);
imagestring($image, 7, 7, 10, $rand_str, $fcolor);
header('content-type:image/png');
imagepng($image);
?>

verifycode.php的代码,就是生成一个随机的4位0-9的图片验证码

文件上传

这个cms默认用的编辑器是KindEditor,版本是4.1.10,构造payload

1
<html><form enctype="multipart/form-data" action="http://127.0.0.1/editor/php/upload_json.php" method="post"> Upload a new file:<br> <input type="file" name="imgFile" size="50"><br> <input type="submit" value="Upload"> </form></html>

可以直接上传文件,但是没什么用。

而且他有白名单,只能上传指定的后缀文件。

前台sql注入

template\wapian\vlist.php这里

我们可以看到他没有任何的防护,但其实是有防护的,vlist.php里包含了system/inc.php,而inc.php中有一个转义的函数

但是这里为什么可以注入呢?是因为这里是数字型注入,没有用双引号包裹,自然也不用双引号进行闭合,addslashes也就没起上作用,放进sqlmap里就可以跑出来。

前台sql注入2

在ucenter\reg.php里

这里为什么可以注入呢?这里是因为他有一个stripslashes函数,它会删除由addslashes添加上的斜杠,放进sqlmap里跑

也是可以跑出来盲注。搜索stripslashes关键字,可以找到repass.php和active.php同样有注入。

后台sql注入

在cms_usergroup_edit.php处

修改会员级别处有盲注,但是sql跑不出来不知道为什么。然后和此处一样的还有cms_ad_edit.php、cms_admin_edit.php、cms_book_edit.php、cms_channel_edit.php

还有一处

这里有delete注入,整个后台的delete语句全是这样写的。


XSS漏洞就不审计了,这个cms就这样吧,一个比较简单的cms。