xiao1star2025-11-16文章来源:SecHub网络安全社区
所需环境
php5.6.9
phpstudy
首先将源码放入到phpstudy中,然后利用phpstudy创建一个数据库

使用navicat打开该数据库,接着左键选择运行SQL文件

选择sql.sql文件


重新打开数据库发现已经创建好数据库了

修改config/Conn.php的数据库相关信息

设置网站,根目录设置为我们项目的所在的文件夹

这个网站有点抽象直接访问index.php会自动跳转到百度中,我们可以看看后台页面


进入到dlmm/dd.php中

分析:映入眼帘的是包含了许多的文件,我们暂时不管它们。调用getIP方法从请求头中获取到ip,之后获取到当前的时间格式为'Y-m-d H:i:s赋值给$_CURRENT_TIME,接着就是通过get方式获取ClickID判断其是否存在,若存在将通过get方式获到的ClickID拼接到sql语句中就调用_fetch_array方法赋值给_GoodID,接着就是将_GoodID数组in_admin_id的值拼接到sql语句再次调用_fetch_array方法获取到BanIP的值用于限制某些IP的访问,紧接着就是对$_GoodsID进行判断若为0,就提醒商品下架,并且跳转到https://www.zhuanzhuan.com/下
接着进入到_fetch_array方法下
//将结果集返回一个数组 专门处理一条数据组的,用于提取单条数据
function _fetch_array($_sql){
return mysql_fetch_array(_query($_sql),MYSQL_ASSOC);
}
分析:该方法先是调用_query方法执行sql语句然后调用mysql_fetch_array方法将执行结果作为数组返回
接着进入到_query方法下
function _query($_sql){
if(!$_result = mysql_query($_sql)){
exit (mysql_error());
}
return $_result;//返回结果集
}
该方法直接调用mysql_query方法执行sql语句,将结果集返回
进入dlmm/dl.php中

分析:上述代码中最重要的就是红框中的内容将cookie中的GoodsID字段内容拼接到sql语句中之后调用_fetch_array方法执行sql语句,那么我们在请求体中直接添加GoodsID的cookie字段即可进行sql注入
进入wuyun/pluploadajax.php中

分析:首先就是一个白名单设置文件上传的格式以及文件上传的路径,接着就是看是否有post方式传输,若有则获取到上传文件的文件名、文件大小以及临时文件名;对文件名进行非空判断,若为空这就输出您还未选择文件,之后获取到文件类型,然后判断文件类型是否在白名单中,若不存在就输出相关的json数据;判断文件上传的大小是否超过规定大小,若超过进行错误数据输出;接着就是生成随机的文件名称赋值给$pic_name,接着就得到文件上传的路径,在if语句中执行move_uploaded_file($name_tmp, $pic_url)进行文件上传操作,若上传成功输入文件的路径以及名称,若上传错误就直接输出错误提示
注意:但是这个代码似乎有点鸡肋,当上传的文件后缀名不在白名单的时候只是进行了错误信息的提示,并没有进行代码的终止,也就是说哪怕我们上传的文件后缀名不在白名单的范围内,依然可以造成漏洞
在查询后台代码时,发现了一个鸡肋的身份鉴定方式
在wuyun/template/Admin_List.inc.php中

发现该后台页面是通过判断Cookie中是否存在Aname字段的内容若存在的话就会直接获取到相关数据,不进行else语句
我们再看看其他的后台文件

再Admin_index.php中也是这样的鉴权方式,那么我们直接伪造一个Cookie即可
当我们路由为/dlmm/dd.php?ClickID=2'时,发现显示用手机打开

猜测是在/dlmm/dd.php的文件包含中有相关的限制,全局搜搜该关键字,发现在config/xinghao.php中发现了该关键字

进入到该代码中

我们发现会对请求体中的user_agent进行判断,若是手机的user_agent是三星、OPPO、红米等那么就正常进行,若是Windows的user_agent那么就输出用手机打开。那么也就是说我们只需要从网上找一个相应的手机user_agent即可
如下是红米的User_Agent,直接修改user_agent即可
Mozilla/5.0 (Linux; U; Android 9; zh-cn; Redmi Note 5 Build/PKQ1.180904.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/11.10.8
poc
http://xxx.xxx.xxx/dlmm/dd.php?ClickID=2' and (extractvalue(1,concat(0x5c,(select database()),0x5c)))--+

访问http://xxx.xxx.xxx.xxx/dlmm/dl.php修改使用hackbar添加Cookie字段,字段内容为
GoodsID=2' and (extractvalue(1,concat(0x5c,(select database()),0x5c)))--+

访问http://xxx.xxx.xxx.xxx//wuyun/pluploadajax.php上传一个aaa.php的文件,内容为<?php phpinfo(); ?>

发现成功得到了上传文件的路径我们访问/uploads/172610217269205.php,发现成功显示phpinfo的页面

正常直接访问后台文件,会显示请登录的弹窗

添加一个Aname字段的Cookie

再次访问该页面,成功进入后台首页
