代码审计实战篇—kkcms漏洞挖掘与分析

代码审计实战篇—kkcms漏洞挖掘与分析

反射型xss

反射型xss 1

发现如下有动态传参的地方

代码审计实战篇—kkcms漏洞挖掘与分析

我们将?m后面的参数都移除,随便赋值一个参数。然后查看源代码中是否存在我们传入的参数,如果存在,则可以判断可能存在反射型xss漏洞。如下发现参数确实在前端源码中显示。且发现其存在一个a标签中

代码审计实战篇—kkcms漏洞挖掘与分析

所以这里我们将a标签进行闭合

"><script>alert(/xss/)</script>

成功弹窗

代码审计实战篇—kkcms漏洞挖掘与分析

反射型xss 2

以同样的思路,尝试第二个参数?cat

代码审计实战篇—kkcms漏洞挖掘与分析

反射型xss 3

还是在当前页面点击按最新排序

代码审计实战篇—kkcms漏洞挖掘与分析

反射型xss 4

点击全部

代码审计实战篇—kkcms漏洞挖掘与分析

反射型xss 5

代码审计实战篇—kkcms漏洞挖掘与分析

应该还有很多地方,就不继续找了···再看看存储型xss吧

存储型xss

存储型xss 1

攻击者事先将恶意代码上传或储存到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。存储型 XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。所以接下来就来寻找这种漏洞。

首先先注册个账号,然后进行登录。在个人设置中,我们发现其可以修改资料,且修改后的资料是显示在前端页面的。那么我们就知道这里肯定是与数据库有交互的,且每次刷新页面都会与数据库交互并且提取相应数据在前端进行展示。那假如我们插入的是一段js代码了,如果服务端未对数据进行过滤那么访问该页面时会从数据库提取相应的js代码,浏览器则运行这段js代码。存储型xss就出现了。知道了原理,那么开始吧~~

代码审计实战篇—kkcms漏洞挖掘与分析

如下,输入以下代码后点击保存,然后页面进行刷新,查看刷新后的页面数据,发现我们的输入数据放在了一个input标签中,且没有进行任何的过滤

代码审计实战篇—kkcms漏洞挖掘与分析

所以,这里我们闭合input标签,">


每次刷新页面,都会从数据库提取这段js代码,所以每次刷新都会进行弹窗

代码审计实战篇—kkcms漏洞挖掘与分析

存储型xss 2

回到网站的首页,移动到最下面,点击友情链接(申请)

直接复用之前邮箱处的payload,毕竟讲究代码的复用性,我相信漏洞也是可以复用的

"><script>alert(2021)</script><
代码审计实战篇—kkcms漏洞挖掘与分析

然后进入到管理后台,访问/admin,登录后点击如下,查看友情链接的申请

代码审计实战篇—kkcms漏洞挖掘与分析

应该还有一些,就不找了。

sql注入

回到用户注册的地方。我们输入的用户名进行注册的时候服务器会检测该用户名存不存在,所以这里跟服务器肯定是有交互的。

代码审计实战篇—kkcms漏洞挖掘与分析

1. 注入点探测

截取登录的数据包,发现admin参数存在延时注入

代码审计实战篇—kkcms漏洞挖掘与分析

2. sqlmap进一步探测

sqlmap一把梭过去

代码审计实战篇—kkcms漏洞挖掘与分析

3. 漏洞分析

看下源码为什么存在这个漏洞,打开对应的文件/ucenter/reg.php,跟进这个包含的文件

代码审计实战篇—kkcms漏洞挖掘与分析

继续跟进每一个文件,在看到包含的第二个文件library.php时,发现了一些重点

代码审计实战篇—kkcms漏洞挖掘与分析

其中,我们发现这样一段代码。对接收的请求函数都使用了addslashes_deep()函数进行处理

代码审计实战篇—kkcms漏洞挖掘与分析

跟进addslashes_deep()函数,addslashes_deep定义如下,对引号进行了过滤

代码审计实战篇—kkcms漏洞挖掘与分析

综上,这里引用addslashes_deep()函数对引号进行了全局转义,理论上这里是可以避免sql注入的,但是继这一波操作之后我们回到/ucenter/reg.php文件发现,这里又使用了stripslashes()函数把addslashes()添加的反斜杠给去掉,相当域进行了转义又去掉了转义,不就是等于没有做任何的过滤吗?所以出现了注入漏洞。

代码审计实战篇—kkcms漏洞挖掘与分析

那如何修复这个漏洞了?只需要把stripslashes()这个函数去除就行

代码审计实战篇—kkcms漏洞挖掘与分析

根据"漏洞复用准则"🧐,直接全局搜索(ctrl_shift+f)stripslashes

代码审计实战篇—kkcms漏洞挖掘与分析

第2枚注入

见ucenter/active.php,如下成功延时

代码审计实战篇—kkcms漏洞挖掘与分析

继续全局搜索,见ucenter/repass.php

第3枚注入

代码审计实战篇—kkcms漏洞挖掘与分析

第4枚注入

注入点cid,对应文件:/template/wapian/vlist.php ,参数cid没有经过任何处理便拼接在sql语句

代码审计实战篇—kkcms漏洞挖掘与分析

后台也有多处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例,查看源码,文件开头包含了三个文件,第一文件为对输入的引号进行全局过滤

代码审计实战篇—kkcms漏洞挖掘与分析

往下看sql执行语句,虽然addslashes()可以防御字符型注入,但是很明显下面的语句是数字型,并没有被引号包裹,所以,这里的转义对此sql语句不生效。

代码审计实战篇—kkcms漏洞挖掘与分析

成功延时响应

代码审计实战篇—kkcms漏洞挖掘与分析

漏洞还有很多,就不再叙述


文末福利!!!

加好友回复“GO黑帽子”获《GO黑帽子-渗透测试编程之道》一书

代码审计实战篇—kkcms漏洞挖掘与分析


原文作:山山而川'
原文地址:https://blog.csdn.net/qq_44159028/article/details/118605357
使




代码审计实战篇—kkcms漏洞挖掘与分析




技巧|常见内网隧道应用


漏洞|没啥用的CVE-2022-31289 Nexus Repository Manager 伪认证漏洞复现


技巧|frp内网多层代理


SeaCms 代码审计getshell


技巧|资产收集对抗-子域名爆破


代码审计实战篇—kkcms漏洞挖掘与分析


广告区


便





付费圈子







欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

代码审计实战篇—kkcms漏洞挖掘与分析


星球的最近主题和星球内部工具一些展示

代码审计实战篇—kkcms漏洞挖掘与分析

代码审计实战篇—kkcms漏洞挖掘与分析

代码审计实战篇—kkcms漏洞挖掘与分析



原文始发于微信公众号(霜刃安全):代码审计实战篇—kkcms漏洞挖掘与分析

版权声明:admin 发表于 2022年11月25日 下午12:05。
转载请注明:代码审计实战篇—kkcms漏洞挖掘与分析 | CTF导航

相关文章

暂无评论

暂无评论...