千家信息网

【漏洞复现】WordPress插件Quizlord 2.0 XSS漏洞复现与分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,年后趁着需要做安全测试系统不多的这个空档,学学python到处逛逛复现复现和分析一些简单的漏洞--from Lyricbao0x00 复现环境phpstudywordpress 4.4版本Quizlo
千家信息网最后更新 2026年10月31日【漏洞复现】WordPress插件Quizlord 2.0 XSS漏洞复现与分析

年后趁着需要做安全测试系统不多的这个空档,学学python到处逛逛复现复现和分析一些简单的漏洞
--from Lyricbao


0x00 复现环境
  1. phpstudy
  2. wordpress 4.4版本
  3. Quizlord 2.0版本

貌似WordPress爆出漏洞的通常基本大多都是它的插件存在安全问题。

0x01步骤

使用phpstudy搭建环境,搭建wordpress,然后登陆进后台去下载Quizlord插件,版本为2.0
一切就绪后就开始看怎么触发的XSS了

3) At the title type: poc"> , then fill the remaining fields and click Save.

--from exploit-db

XSS注入点:title

request包

POST /wp4.4/wordpress/wp-admin/admin.php HTTP/1.1Host: localhostContent-Length: 184Cache-Control: max-age=0Origin: http://localhostUpgrade-Insecure-Requests: 1Content-Type: application/x-www-form-urlencodedUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8Referer: http://localhost/wp4.4/wordpress/wp-admin/admin.php?page=quizlordAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie: wordpress_886edae3e5f5a7a13e41eff06328019c=admin%7C1550369766%7C3jD0iLwbcUNXjhlOr5O8IF6NjPACdraiCJZNLJhvCOW%7C43a2436e074320bb113475ff8e44222065a4454e602d990d36639085856f0dd3; wordpress_test_cookie=WP+Cookie+check; wordpress_logged_in_886edae3e5f5a7a13e41eff06328019c=admin%7C1550369766%7C3jD0iLwbcUNXjhlOr5O8IF6NjPACdraiCJZNLJhvCOW%7Cf23acf621ce28dbfc8f0baf9abe31370d3fc5674ca575a4ba1029832ca552c62; wp-settings-time-1=1550197219; pgv_pvi=4214545408; Phpstorm-c3dafaf3=cd60577d-e9ad-4825-b2e4-7a109a7e2faf; PHPSESSID=8v8jf1s93dprjgq4bpo29ldsq7Connection: closeaction=ql_insert&title=%3E%3Cscript%3Ealert%281%29%3C%2Fscript%3E&description=1&time=0&numbtype=numerical&numbmark=1&rightcolor=00FF00&wrongcolor=FF0000&showtype=paginated&addquiz=Save

效果当然是触发啊 代码里一点过滤都没有 这算一个存储型XSS

0x02漏洞原理分析

知其然要知其所以然,下面我们来看问题出现在哪个环节
进入Quizlord插件目录,找到quizlord.php,打开
出问题的是这段函数 title没有被过滤盒转义就直接写进数据库里面了

function ql_insert_quiz_data(){    global $wpdb;    if(!empty($_POST['title'])){        $ql_title = $_POST['title'];        $ql_description = $_POST['description'];        $ql_time = $_POST['time'];        $ql_rightcolor = "#".$_POST['rightcolor'];        $ql_wrongcolor = "#".$_POST['wrongcolor'];        $ql_numbtype = $_POST['numbtype'];        $ql_numbmark = $_POST['numbmark'];        $ql_showtype = $_POST['showtype'];        $ql_random = isset($_POST['random']) ? 1 : 0;        $ql_skip = isset($_POST['skip']) ? 1 : 0;        $ql_resume = isset($_POST['resume']) ? 1 : 0;        $ql_backbtn = isset($_POST['backbtn']) ? 1 : 0;        $ql_autoload = isset($_POST['autoload']) ? 1 : 0;        $ql_checkcnt = isset($_POST['checkcnt']) ? 1 : 0;        $wpdb->insert($wpdb->prefix.'ql_quizzes',        array(            'name' => $ql_title,            'description' => $ql_description,            'time' => $ql_time,            'right_color' => $ql_rightcolor,            'wrong_color' => $ql_wrongcolor,            'numbering_type' => $ql_numbtype,            'numbering_mark' => $ql_numbmark,            'show_type' => $ql_showtype,            'random' => $ql_random,            'skip' => $ql_skip,            'resume' => $ql_resume,            'autoload' => $ql_autoload,            'back_button' => $ql_backbtn,            'check_continue' => $ql_checkcnt        ));    }    wp_redirect($_SERVER['HTTP_REFERER']);    exit();}add_action('admin_action_ql_insert', 'ql_insert_quiz_data');
0x03 漏洞PoC

待写

0x04 漏洞修复
利用htmlentities()函数转义html实体。

刚开始的时候想 我一开始都插入payload进数据库了。不如就在输出的位置做转义吧
于是定位到输出的代码,修改成name); ?>

输出就变成正常了,无办法触发XSS漏洞。

如果在输入点进行转义的话,定位的到输入赋值的位置,加入 $ql_title = htmlentities($_POST['title'])即可

这样的情况最好在输入输出点都做转义,这样就保障得多了
0x05 Reference

https://www.exploit-db.com/exploits/45307 详细的漏洞细节以及复现方法
https://www.freebuf.com/vuls/189814.html 中文版的这哥们也写了

漏洞 转义 输出 插件 版本 问题 输入 分析 安全 代码 位置 函数 数据 数据库 环境 定位 知其所以然 知其然 中文版 办法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 智能科技公司是互联网公司吗 北京互联网科技公司 狮子座互联网科技 善班互联网科技 郑州华宇互联网科技 互联网养老 桔豆科技 深圳市运趣互联网科技有限公司 来此购互联网科技有限公司 互联网金融中的现代科技 苏州五指互联网络科技有限 未来五年的互联网科技 银川新华互联网科技学校联系电话 华夏恒生科技与互联网科技 互联网金融科技名词解释 科技互联网海报 中天科技中国工业互联网 上海同邻互联网科技有限公司规模 陕西九四连强互联网科技有限公司 北京瑞云互联网科技有限公司 株洲百竞科技的互联网营销顾问 互联网金融科技 互联网科技股 为想互联网科技怎么样 鸠鸠互联网科技 喔噻互联网科技 互联网5g黑科技有哪些 互联网科技产业特征 容联科技互联网电商 中国新注册互联网科技 平安好医生打造互联网科技医疗
0