sql注入练习

一、环境配置

打开文件在sql下面的db,可以查看账号、密码和名称

有三种方式可以访问。

1.通过域名访问(http://www.sqllabs.com)

2.通过地址访问(127.0.0.1/qa)

3.通过cx.cm软件进入

如何通过软件进入

先设置软件上面的各种配置

安装没有的软件

开启软件

设置软件

创建一个新的用户

然后通过三种方法之一可以进入

可以通过点击下面,直接进入。

二、通过代码,写解题

2.1字符型注入

2.1.1首先先测试一下字符(?id=1)

​2.1.2尝试单引号闭合看输出什么(?id=1',id=1)

2.1.3可以见得有报错必有注入点,去用1=1试一下

2.1.4猜字段,首先猜10,然后通过二分法猜5,再猜3,ok我们猜到3的时候就对了

2.1.5猜出字段为3了以后直接联合查询

2.2数字型注入

2.2.1查看源码

第二关通过查看源码我们很明显可以看到和第一关不同的点在于,第一关有单引号闭合,第二关没有,通过调试第一关代码看数据传给那个参数了,很明显传给id,看看第二关的id吧

2.2.2比较知不同

很明显我们查询的引号不见了,如果我们继续加引号会造成无法闭合当然无法查询,

2.2.3比较和实践

当我们不去加引号闭合时

而之后的查询就跟我们之前的一样操作即可

2.3

2.3.1通过?id=1'和?id=1判断

当我们在输入?id=1'的时候看到页面报错信息。可推断sql语句是单引号字符型且有括号,所以我们需要闭合单引号且也要考虑括号。

2.4

2.4.1查看注入点

跟第三关一样半闭合不闭合双引号去试试,很明显通过回显数据我们可以看到,是双引号字符型注入

2.5布尔盲注

2.5.1首先进行单引号闭合和不闭合测试

很明显第五关为单引号闭合。但是无论我们输入什么命令都是没有回显,很明显的一件事就是这一关对于请求对错出现不一样,可以说是压根不报。这个时候我们用联合注入就没有用,因为联合注入是需要页面有回显位。如果数据 不显示只有对错页面显示我们可以选择布尔盲注。布尔盲注主要用到length(),ascii() ,substr()这三个函数,首先通过length()函数确定长度再通过另外两个确定具体字符是什么

2.5.2使用了连接函数concat

先查字段,再查表,再通过字段,分段截取,up升级版本解法,(floor)通杀解法5.0-8.0

2.6

2.6.1测试注入点

通过测试可以见得此关是通过双引号进行闭合的

3.6.2尝试注入

可以见得此关跟第五关一样,只是闭合方式不同了

2.7

2.8布尔盲注

2.8.1测试注入点

联合查询报错注入都不回显了,你是错的就不显示,你是对的就you are in......

3.8.2开始注入

我们知道s的ASCII值为115,那我们就可以输入判断真假

?id=1' and ascii(substr(database(),1,1))>100--+

2.9时间盲注

2.9.1测试注入点

用刚才的方法发现没有布尔的显隐了

?id=1' and if(ascii(substr(database(),1,1))>100,sleep(3),0)--+

2.10

第十关和第九关一样,只是闭合变为双引了

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值