例题
利用正则表达式绕过
打开靶场用order by检测列,确保列相同,保证联合查询
在4时显示unknown,代表没有那么多列,于是可以往后减,从而得知这个表有3列,其中username为2,password为3
于是可以通过用户和密码查找到user,但是由于正则表达式的限制无法继续
无法注入
只有不让正则表达式出现单词边界,改变from的值,才能绕过
mysql支持科学计数法,所以能使用1e1查询
由于使用了1e1,mysql识别并且单独列出来一列,而且“1e1”可以和from连接在一起使用,系统会认为这是两个命令,所以这样既没有报错,同时也绕过了正则,但是也样并没有完全解决。
换一种方式来写,也就是换一种语法将4列换为3列。
添加:localhost/Less-1/?id=1 'union select 1,group_cocat(username,0x3a,password)from users)–+
最后成功获取