p0et
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
插件介绍
Squirrly SEO 的 SEO 插件允许您通过内部链接功能改进网站的 SEO,该功能允许您根据特定关键字选择源页面和目标页面。您可以通过内部链接管理页面 (/wp-admin/admin.php?page=sq_focuspages&tab=innerlinks) 管理每个链接的关键字、源页面、目标页面和状态。
漏洞概述
在 Squirrly SEO 插件的 12.4.01 及以下版本中,您可以在内部链接管理页面上搜索创建的内部链接。当用户 (Contributor+) 输入的搜索词未经验证直接传递给数据库查询时,就会出现 SQL 注入漏洞。虽然搜索结果不会直接显示在内部链接管理页面上,但可以使用基于时间的 SQL 注入技术(例如 SLEEP 函数)提取数据库信息。
影响版本
SEO Plugin by Squirrly SEO <= 12.4.01
FOFA
FOFA:body="wp-content/plugins/squirrly-seo"
搭建环境
使用docker 容器进行搭建,docker-compose.yaml 文件内容如下:
services: db: image: mysql:8.0.27 command: '--default-authentication-plugin=mysql_native_password' restart: always environment: - MYSQL_ROOT_PASSWORD=somewordpress - MYSQL_DATABASE=wordpress - MYSQL_USER=wordpress - MYSQL_PASSWORD=wordpress expose: - 3306 - 33060 wordpress: image: wordpress:6.3.2 ports: - 80:80 restart: always environment: - WORDPRESS_DB_HOST=db - WORDPRESS_DB_USER=wordpress - WORDPRESS_DB_PASSWORD=wordpress - WORDPRESS_DB_NAME=wordpress volumes: db_data:
执行如下命令,开启靶场
docker-compose up -d
访问目标地址,依次进行如下安装即可
输入账户密码进入后台
下载插件,插件下载地址如下:
https://downloads.wordpress.org/plugin/squirrly-seo.12.3.24.zip
下载完成解压,执行如下命令复制插件到docker 容器中。
docker cp squirrly-seo wordpress_wordpress_1:/var/www/html/wp-content/plugins
点击启用
此时靶场就搭建好了。
漏洞分析
在Squirrly SEO插件的内部链接管理页面(/wp-admin/admin.php?page=sq_focuspages&tab=innerlinks)中,当搜索内部链接时,它会通过调用/wp-content/plugins/squirrly-seo/models/Qss.php文件中的getSqInnerlinks函数来查询数据库。
此时我们可以看到变量$query_where直接插入到了SQL查询中,我们来看看变量$query_where的值是如何构造的:
第75行:变量$search包含内部链接搜索时输入的搜索词,使用sanitize_text_field函数处理用户输入的数据。
第76行:随后变量$search作为条件
畅读付费文章
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)