报道称,有多家网络安全公司在近期都发现了针对运行着基于ThinkPHP的Web应用程序的服务器的扫描活动。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,支持Windows/Unix/Linux等服务器环境,以及MySql、PgSQL、Sqlite多种数据库和PDO插件,在国内 Web 开发领域非常受欢迎。
另外,所有这些扫描活动都是在网络安全公司VulnSpy将一个ThinkPHP漏洞的概念验证代码(PoC)发布到ExploitDB网站上之后开始进行的。这里需要说明的是,ExploitDB是一家提供免费托管漏洞利用代码的热门网站。
VulnSpy公司发布的概念验证代码利用了一个存在于ThinkPHP开发框架invokeFunction 函数中的漏洞,以在底层服务器上执行任意代码。值得注意的是,这个漏洞可以被远程利用,且允许攻击者获得对服务器的完全控制权限。
“PoC是在12月11日发布的,我们在不到24小时之后就看到了相关的互联网扫描。” 网络安全公司Bad Packets LLC的联合创始人Troy Mursch告诉ZDNet。
随后,其他四家安全公司——F5 Labs、GreyNoise、NewSky Security和Trend Micro也报道了类似的扫描。并且,这些扫描在接下来的几天里一直呈上升趋势。
与此同时,开始利用这个ThinkPHP 漏洞来开展攻击活动的黑客组织也在不断增加。到目前为止,被确认的黑客组织至少包括:最初利用该漏洞的攻击者、一个被安全专家命名为“D3c3mb3r”的黑客组织、以及另一个利用该漏洞传播Miori IoT恶意软件的黑客组织。
由Trend Micro检测到的最后一组数据还表明,旨在传播Miori IoT恶意软件的黑客组织似乎想要利用该漏洞来入侵家用路由器和物联网设备的控制面板,因为Miori无法在实际的Linux服务器上正常运行。
此外,从NewSky Security检测到另一组扫描来看,攻击者试图在运行着基于ThinkPHP的Web应用程序的服务器上运行Microsoft Powershell命令。NewSky Security的首席安全研究员Ankit Anubhav告诉ZDNet,“这些Powershell命令看上去有些多余。实际上,攻击者拥有的一些代码完全可以用来检查 *** 作系统的类型,并为不同的Linux服务器运行不同的漏洞利用代码,运行Powershell命令可能只是为了碰碰运气。”
事实上,最大规模扫描的发起者应该是上述被被安全专家命名为“D3c3mb3r”的黑客组织。但这个组织并没有做任何特别的事情。他们没有使用加密货币矿工或其他任何恶意软件来感染服务器。他们只是扫描易受攻击的服务器,然后运行一个基本的“echo hello d3c3mb3r”命令。
Ankit Anubhav告诉ZDNet:“我不确定他们的动机。”
根据Shodan搜索引擎的统计,目前有超过45800台运行着基于ThinkPHP的Web应用程序的服务器可在线访问。其中,有超过40000台托管在中国IP地址上。这主要是由于ThinkPHP的文档仅提供了中文版本,因此不太可能在国外被使用。这也是解释了为什么被认为易遭到攻击的网站大部分都是中文网站。
安全专家认为,随着越来越多的黑客组织了解到这种入侵 Web 服务器的方法,对中文网站的攻击也必然会有所增加。
此外,F5 Labs已经公布了有关这个ThinkPHP 漏洞的技术分析和POC的工作原理,大家可以通过点击这里进行查看。
本文由 黑客视界 综合网络整理,图片源自网络;转载请注明“转自黑客视界”,并附上链接。
1、 前端检测绕过有的站点只在前端对文件的类型有所限制,我们只需用bp抓包然后修改文件后缀名就能绕过这种检测。
2、 文件头检测绕过
有的站点使用文件头来检测文件的类型,这种检测可以在shell前加入相应的字节一绕过检测,几种常见的文件类型的头字节如下:
3、 后缀检测绕过
部分服务器仅根据文件后缀、上传时的信息或者文件头来判断文件类型,此时可以绕过。php由于历史的原因,部分解释器可能支持符合正则/ph(p[2-7]?|t(ml)?)/的后缀,如php/php5/pht/phtml/shtml/pwml/phtm等。如果后端对文件名进行了过滤,可以尝试双写文件名,比如1.pphphp。
4、 系统命名绕过
在windows系统中,上传不符合windwos命名规则的文件名会被windows系统自动去掉不符合规则符号后面的内容,例如:test.asp.、test.asp(空格)、test.php:1.jpg、test.php:: D A T A 、 t e s t . p h p : : DATA、test.php:: DATA、test.php::DATA…这些文件上传到服务器端之后都会变成test.php
在linux系统下,可以尝试上传文件后缀名为大小写混用的Php文件。
5、 文件包含绕过
在文件包含的时候,为了灵活包含文件,将被包含文件设置为变量,通过动态变量来引入需要包含的文件,用户可以对变量的值进行控制,而服务器端未对变量进行合理的校验,这样就导致所包含的文件有可能存在恶意代码。比如1.php
<?php $file=$_GET[‘file’]include($file)?>
这个程序就包含了一个文件,我们在1.txt文件中写入
<?php phpinfo()?>
然后将这个文件包含在1.php中1.php?file=1.txt这样
<?php phpinfo()?>就成功写入1.php这个文件当中,我们访问1.php这个文件的时候就能出现php信息那个页面。利用这个漏洞我们就可以进行文件上传,我们只需包含一个一句话木马内容的txt就能用菜刀连接,这样就成功执行了文件上传。
6、 解析漏洞绕过
目录解析:在网站中建立名称为*.asp、.asa格式的文件夹时,其文件夹下面的文件都会被当做asp执行。
文件解析:当文件名为.asp1.jpg时,也会被当做asp执行
Apache解析漏洞:Apache在解析文件时,是从右往左,如果遇到不认识的扩展名时,就会继续向左判断,例如1.php.rar就会被当做
php解析。
IIS 7.0/IIS 7.5/Nginx<0.8.3畸形文件解析漏洞,当访问http://xxx.com/1.jpg/1.php时,此时1.php不存在,就会将1.jpg当做php文件去执行,所以如果存在该漏洞,将php木马后缀改成jpg然后访问1.jpg/1.php然后1.jpg就会被当成1.php来执行。
.htaccess,该文件里面的代码如下:
<FilesMatch “1”>
SetHandler application/x-httpd-php
这段代码的意思就是文件名包含”1”这个这个字符串就会被当成php文件来处理。但是值得注意的是上传.htaccess必须是网站根路径。
7、 文件截断绕过
00截断:由于00代表结束符,所以会把00后面的所有字符删除。
能利用这个漏洞的前提是,php版本要小于5.3.4,magic_quotes_gpc需要为OFF状态。我们用bp进行拦包之后,需要send to repeater,然后在hex中,在php后面添加00
8、 竞争条件攻击
一些网站上传文件逻辑上是允许上传任意文件的,然后检查上传文件的内容是否包含webshell脚本,如果包含则删除该文件,这里存在的问题是文件上传成功之后和删除文件之间存在一个短的时间差,攻击者就可以利用这个时间差来上传漏洞攻击。攻击者先上传一个webshell脚本1.php内容如下:
<?php fputs(fopen(‘../shell.php’,’w’),’<?php @eval($_POST[a]) ?>’)?>
代码内容就是生成一个新的webshell,shell.php,那么当1.php上传成功之后,我们快速访问这个文件,这时就会在服务器端当前目录下自动生成shell.php,这时就利用时间差完成了webshell的上传。
背景介绍
某单位需新上线了一个系统,安全工程师“墨者”负责对系统的安全检测,确保该系统在上线后不存在安全漏洞。
实训目标
1、了解并熟练使用linux命令;
2、了解PHPCMS的后台地址及其他相关漏洞资料;
3、了解html源码的重要性。
解题方向
登录后台后执行linux系统命令,查看web源码。
靶场环境:可以看到使用了phpcms9.1.13版本的内容管理系统。
在网上可以找到,默认的后台登录地址为/admin.php,其实在robots.txt文件中也能够看到,应该养成查看robots.txt文件的习惯,里面还是有一些有用的信息的。
打开admin.php链接,发现用户和密码都是已经默认填好的,所以直接登录到后台管理里面去。
在网上看到有三种方法:第一种,使用拓展里面的木马查杀进行key文件的查找,但是我没有查到;第二种是利用远程命令执行的方法来进行目录的查看;第三种是在界面的模板里面写入一句话,再getshell。
第一种:phpcms后台低权限任意命令执行。
这个漏洞是在乌云中发布出来的,编号为WooYun-2015-0153630,具体的漏洞分析见: https://www.uedbox.com/post/15860/ 。
利用的POC是:index.php?0=[命令]&m=content&c=content&a=public_categorys&type=add&menuid=822${system($_GET[0])}&pc_hash=vad6K3&from=block
先ls查看目录,再查看key.txt文件即可。
第二种:一句话木马写入。
上面的方法只是查看目录文件,并没有拿到网站的权限。写入一句话,再用蚁剑来进行连接,然后拿权限,这种方法才是比较通用的。
在界面中的index.html文件中写入一句话,然后按index.php?m=search连接。虽然网上都可,但是不知道为啥我的蚁剑返回数据为空,失败……
1.phpcms的这个后台低权限命令执行漏洞,不太清楚具体适用于哪些版本,可以先记着,这个一个渗透点。
2.一般进入了cms后台管理,通用的方法就是找模板,写入一句话,连接,上传大马。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)