sqli-labs Basic Challenges Less 13-14

Less 13  POST - Double Injection - Single quotes- String - with twist

从题目来看,这一关是变型的单引号字符型双查询注入,而且参数传递方式是post。

这里分别用四种报错方法一一注入尝试。首先填写用户名和密码看看页面的显示效果

这是随便用一个用户名和密码测试登录的显示

这是用正确的用户名和密码登录显示的页面

从页面响应的对比来看,都是没有什么显示位的,只不过是画面效果不一样而已。这样的话前面根据显示位来注入显示数据的方法肯定是行不通了,那就只剩下用报错注入或者盲注来达到效果了。这一关只考虑报错注入。

在注入之前先判断出查询语句的结构

在uname参数后面添加单引号测试

返回错误是Dumb') LIMIT 0,1

说明多了一个单引号而且参数还有()包裹,再继续用Dumb') #测试

这里响应页面中的图片是flag.jpg,这是登录成功才返回的图片。说明sql查询语句已经闭合成功了。接下来就是报错注入了。

1、floor()函数和rand()函数

先查询当前的用户名

再查询当前数据库

省略中间的步骤,最后列出用户名和密码数据

2、extractvalue()函数

先获取当前数据库用户名

再获取当前数据库名

直接列出用户名和密码数据

3、updatexml()函数

首先获取当前数据库用户名

然后获取当前数据库名

直接列出用户名和密码数据

4、exp()函数

首先获取当前数据库用户名

然后获取当前数据库名

直接列出用户名和密码数据

 

Less 14  POST - Double Injection - Single quotes- String - with twist

从题目来看,这一关同上一关似乎是一样的。

先判断sql语句的结构,添加单引号测试

发现没有登录成功,也没有任何报错。猜测参数使用双引号包裹的,添加双引号测试

根据页面报错信息来看,就是多了一个双引号。所以可以判断sql查询语句中参数就是用双引号包裹的,这一点跟上一关不太一样。闭合语句再次测试观察响应

可以看到成功登陆了,说明语句闭合有效。接下来的注入流程就跟上面是一样的了。

当然这里不仅仅可以用报错注入,基于时间的盲注以及其他类型的注入也是可以进行尝试的,比如:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值