代码审计实战篇—kkcms漏洞挖掘与分析
反射型xss
反射型xss 1
发现如下有动态传参的地方
我们将?m后面的参数都移除,随便赋值一个参数。然后查看源代码中是否存在我们传入的参数,如果存在,则可以判断可能存在反射型xss漏洞。如下发现参数确实在前端源码中显示。且发现其存在一个a标签中
所以这里我们将a标签进行闭合
"><script>alert(/xss/)</script>
成功弹窗
反射型xss 2
以同样的思路,尝试第二个参数?cat
反射型xss 3
还是在当前页面点击按最新排序
反射型xss 4
点击全部
反射型xss 5
应该还有很多地方,就不继续找了···再看看存储型xss吧
存储型xss
存储型xss 1
攻击者事先将恶意代码上传或储存到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。存储型 XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。所以接下来就来寻找这种漏洞。
首先先注册个账号,然后进行登录。在个人设置中,我们发现其可以修改资料,且修改后的资料是显示在前端页面的。那么我们就知道这里肯定是与数据库有交互的,且每次刷新页面都会与数据库交互并且提取相应数据在前端进行展示。那假如我们插入的是一段js代码了,如果服务端未对数据进行过滤那么访问该页面时会从数据库提取相应的js代码,浏览器则运行这段js代码。存储型xss就出现了。知道了原理,那么开始吧~~
如下,输入以下代码后点击保存,然后页面进行刷新,查看刷新后的页面数据,发现我们的输入数据放在了一个input标签中,且没有进行任何的过滤
所以,这里我们闭合input标签,”>
每次刷新页面,都会从数据库提取这段js代码,所以每次刷新都会进行弹窗
存储型xss 2
回到网站的首页,移动到最下面,点击友情链接(申请)
直接复用之前邮箱处的payload,毕竟讲究代码的复用性,我相信漏洞也是可以复用的
"><script>alert(2021)</script><
然后进入到管理后台,访问/admin,登录后点击如下,查看友情链接的申请
应该还有一些,就不找了。
sql注入
回到用户注册的地方。我们输入的用户名进行注册的时候服务器会检测该用户名存不存在,所以这里跟服务器肯定是有交互的。
1. 注入点探测
截取登录的数据包,发现admin参数存在延时注入
2. sqlmap进一步探测
sqlmap一把梭过去
3. 漏洞分析
看下源码为什么存在这个漏洞,打开对应的文件/ucenter/reg.php,跟进这个包含的文件
继续跟进每一个文件,在看到包含的第二个文件library.php时,发现了一些重点
其中,我们发现这样一段代码。对接收的请求函数都使用了addslashes_deep()函数进行处理
跟进addslashes_deep()函数,addslashes_deep定义如下,对引号进行了过滤
综上,这里引用addslashes_deep()函数对引号进行了全局转义,理论上这里是可以避免sql注入的,但是继这一波操作之后我们回到/ucenter/reg.php文件发现,这里又使用了stripslashes()函数把addslashes()添加的反斜杠给去掉,相当域进行了转义又去掉了转义,不就是等于没有做任何的过滤吗?所以出现了注入漏洞。
那如何修复这个漏洞了?只需要把stripslashes()这个函数去除就行
根据”漏洞复用准则”?,直接全局搜索(ctrl_shift+f)stripslashes
第2枚注入
见ucenter/active.php,如下成功延时
继续全局搜索,见ucenter/repass.php
第3枚注入
第4枚注入
注入点cid,对应文件:/template/wapian/vlist.php ,参数cid没有经过任何处理便拼接在sql语句
后台也有多处sql注入点
/admin/cms_youlian.php/admin/cms_link.php/admin/cms_slideshow_edit.php/admin/cms_admin_edit.php/admin/cms_user_edit.php...
这里以/admin/cms_user_edit.php例,查看源码,文件开头包含了三个文件,第一文件为对输入的引号进行全局过滤
往下看sql执行语句,虽然addslashes()可以防御字符型注入,但是很明显下面的语句是数字型,并没有被引号包裹,所以,这里的转义对此sql语句不生效。
成功延时响应
漏洞还有很多,就不再叙述
文末福利!!!
加好友回复“GO黑帽子”获《GO黑帽子-渗透测试编程之道》一书
原文作者:山山而川’ 原文地址:https://blog.csdn.net/qq_44159028/article/details/118605357
推荐阅读
漏洞|没啥用的CVE-2022-31289 Nexus Repository Manager 伪认证漏洞复现
广告区
某大佬的星球,价格便宜实惠
买不了吃亏买不了上当!
欢 迎 加 入 星 球 !
代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员
星球的最近主题和星球内部工具一些展示
原文始发于微信公众号(霜刃安全):代码审计实战篇—kkcms漏洞挖掘与分析