WordPress Product Catalog 8 插件 1.2.0 版本中, includes/ajax-functions.php
文件中 UpdateCategoryList
函数中 selectedCategory
参数未经过滤,直接拼接 SQL 语句,导致 SQL 注入漏洞。
includes/ajax-functions.php
101行:
function UpdateCategoryList() {
global $wpdb, $subcategories_table;
global $wpdb;
$table = $subcategories_table;
// 注意这里 selectedCategory 未过滤
$catid = $_POST['selectedCategory'];
if($catid !== '0') {
// 未过滤的 catid 变量直接拼接 sql 语句代入数据库查询
$get_items = $wpdb->get_results( "SELECT * FROM $table WHERE subcategory_category = $catid ORDER BY subcategory_name ASC" );
echo json_encode($get_items);
}
else {
$get_items = "";
echo json_encode($get_items);
}
die();
}
类型 | 用户名 | 密码 |
---|---|---|
Mysql | root | root |
/wp-admin/ | admin | admin123 |
- 拉取镜像到本地
$ docker pull medicean/vulapps:w_wordpress_4
- 启动环境
$ docker run -d -p 8000:80 medicean/vulapps:w_wordpress_4
-p 8000:80
前面的 8000 代表物理机的端口,可随意指定。
访问 http://你的 IP 地址:端口号/
本例中使用 Wordpress populate download edit form SQL注入漏洞检测 PoC
本地插件开发测试代码与线上代码略有不同,请自行对比
- 下载并安装
BugScan SDK
- 修改
poc.py
中地址为容器地址
if __name__ == '__main__':
from dummy import *
audit(assign(fingerprint.wordpress, "http://127.0.0.1:8000")[1])
-
修改 poc.py 中的 cookie 值
-
运行
poc.py
$ python poc.py