环境安装
源码下载地址: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 |
|
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。