Web安全-Joomla内核SQL注入漏洞利用

实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险!

Joomla内核SQL注入漏洞利用

实验目的

  Joomla是一套网站内容管理系统,使用PHP语言和MySQL数据库开发。Joomla! 3.5.0 -3.8.5版本对SQL语句内的变量缺少类型转换,导致User Notes列表视图内SQL注 入漏洞,可使攻击者访问或修改数据等。通过本实验了解Joomla内核SQL注入原因,了解Joomla内核SQL注入利用方法,了解Joomla内核SQL注入修复方法。

实验环境

渗透主机:PLM

(用户名: college 密码: 360College)
工具:Burpsuite、Sqlmap等


漏洞靶机:PTD(存在Joomla内核SQL注入漏洞靶机)

(用户名: college 密码: 360College)

实验原理

  本实验复现的是Joomla内核SQL注入漏洞(CVE-2018-8045)的渗透过程。

  Joomla内核SQL注入漏洞的影响版本范围为: Joomla 3.5.0-3.8.5

  Joomla内核SQL注入漏洞的漏洞原因主要是:

Web安全-Joomla内核SQL注入漏洞利用

  漏洞文件在\administrator\components\com_users\models\notes.php,问题点如图所示,Joomla没有对$category_id 参数进行过滤或者转义,直接拼接到SQL语句,造成SQL注入。

  Burp Suite是用于渗透测试的web 应用程序的集成平台。本实验通过Burp代理进行抓取访问Joomla后台的数据包,并修改提交。

  Sqlmap是著名的、自动化SQL注入利用工具。本实验利用其进行SQL注入,获取敏感信息。

实验步骤

第一步 使用PLM渗透主机,登录目标Web站点管理后台及漏洞产生菜单项

1.登录后台,IP为PTD的IP地址

利用URL地址输入http://域名(IP)/administrator 登陆后台

Web安全-Joomla内核SQL注入漏洞利用

系统内置好了系统账号,用户名:admin,密码:admin_123

Web安全-Joomla内核SQL注入漏洞利用

2.访问漏洞页面

登陆后台以后,点击User --> User Notes 访问漏洞页面

Web安全-Joomla内核SQL注入漏洞利用

Web安全-Joomla内核SQL注入漏洞利用

Web安全-Joomla内核SQL注入漏洞利用

第二步 配置Firefox代理功能

1.首先需要配置浏览器代理,点击如图所示的按钮

Web安全-Joomla内核SQL注入漏洞利用

2.然后选择“选项”选项,弹出界面以后然后鼠标向下一直滚动的底部,单击“设置”按钮。

Web安全-Joomla内核SQL注入漏洞利用

3.然后按照如图所示设置,最后点击“确定”项。

Web安全-Joomla内核SQL注入漏洞利用

第三步 启动burpsuit代理抓包

1.设置完成以后双击打开C:\soft\Burpsuite软件,按照如图所示选项启动软件。

Web安全-Joomla内核SQL注入漏洞利用

下一步配置

Web安全-Joomla内核SQL注入漏洞利用

下一步配置

Web安全-Joomla内核SQL注入漏洞利用

下一步配置

Web安全-Joomla内核SQL注入漏洞利用

下一步配置

Web安全-Joomla内核SQL注入漏洞利用

成功启动后的界面如图所示:

Web安全-Joomla内核SQL注入漏洞利用

第四步 burpsuit抓包

1.然后单击Proxy选项卡,单击Intercept is off -> Intercept is on。

2.然后在User Notes界面单击Search Tools按钮,在第二个选项卡选择列表选项

Web安全-Joomla内核SQL注入漏洞利用

3.点击完以后BrupSuite会自动抓包,抓取的信息如图所示

Web安全-Joomla内核SQL注入漏洞利用

4.将刚才的抓取的数据包保存成文件payload.txt

注意:将整个POST的文件内容全部复制保存

Web安全-Joomla内核SQL注入漏洞利用

Web安全-Joomla内核SQL注入漏洞利用

5.然后修改filter[category_id]属性值为单引号,如图所示

Web安全-Joomla内核SQL注入漏洞利用

如果category_id为7则将7用单引号符号替换

Web安全-Joomla内核SQL注入漏洞利用

6.然后在单击Forward(多次点击)按钮发送数据包

Web安全-Joomla内核SQL注入漏洞利用

单击以后会发现页面出现错误,如图所示。

Web安全-Joomla内核SQL注入漏洞利用

第五步 基于sqlmap调用抓包信息进行SQL注入

1.将刚才保存的文件payload.txt拷贝至C盘根目录

Web安全-Joomla内核SQL注入漏洞利用

2.在cmd命令行启动sqlmap.py

Web安全-Joomla内核SQL注入漏洞利用

3.将cmd命令行的路径切换至C盘根目录,与payload.txt文件存放路径一致。

然后在CMD窗口输入sqlmap.py -r "payload.txt" -p filter[category_id]后回车

Web安全-Joomla内核SQL注入漏洞利用

此时SQLMAP开始进行基于漏洞的渗透测试

渗透测试过程需要2-3分钟,中间需要进行参数选择时,输入“y”

Web安全-Joomla内核SQL注入漏洞利用

最后成功探测出web服务器的一些敏感信息,如图所示

Web安全-Joomla内核SQL注入漏洞利用

4.继续使用命令sqlmap.py -r "payload.txt" -p filter[category_id] --dbs探测数据库信息,结果如图所示

Web安全-Joomla内核SQL注入漏洞利用

5.跟进sqlmap的基础操作命令,可继续渗透获取相关数据库的表、列、字段等信息。

思考与总结

  为了避免该类漏洞对你的影响,请务必升级Joomla至3.8.5后的最新版本。

  技术修复方法是:将$category_id获取到结果之前进行类型转换,如图所示。

Web安全-Joomla内核SQL注入漏洞利用

上一篇:增加Joomla用户注册字段


下一篇:测试bing