首页 > 其他分享 >5.布尔盲注

5.布尔盲注

时间:2023-11-11 10:46:13浏览次数:31  
标签:返回 字符 判断 database 盲注 布尔

原理 0   0 有一种界面,像这种不会把数据体现在表面的界面 0   0   0   0 0 0 0 这种一点都看不出来有没有可控变量的页面,看不出来能不能用正常的字符型SQL注入或数字型SQL注入破解,所以,这时候要换个思路 0   0   0 布尔型盲注 盲注判断   0   0   0   0 字符型判断 看几次字符型的返回结果一不一样 构建语句 1' and 1=1--+ 0 1' and 1=2--+ 0 两次结果不一样,说明存在盲注点 延迟性判断 利用sleep函数将数据库睡眠5秒 0 0 返回包的时间为5秒 将睡眠时间改为6秒 0 0 返回时间变为6秒 由此可知,延迟性判断为真 此处存在布尔型盲注的注入点 布尔型注入攻击 0 原理 0 0   0   0   0 最常用的布尔型注入点判断方法 0 0 0 0 两次结果不一样,存在注入点 注入获取敏感信息 0 三个参数分别为字符串,开始截取位置,截取长度 0 这里的字符串可以变为查询语句 0 借此,提取敏感信息 0 因为这种页面不会返回具体数据,只会返回对错两种,所以我们要对返回的结果进行猜测 将查询到的数据 如if(substring(database(),1,1)='d',1,0) 这里database()的查询结果为dvwa 猜测数据库第一个字符为d正确 0 猜测数据库第二个字符为v正确 0   因为提取起始位置为第一个字符,提取长度为1个字符,所以最终提取到的结果为字符d 因为页面不会返回具体数据,所以我们需要以对错的形式,看页面报不报错,来判断字符的正确性,正确返回1,错误返回0 以此判断结果的值为多少 0   0   0   0 获取全部单个字符后,将全部单个字符拼接起来,就可以得到真实的敏感信息了 黑盒测试下的布尔盲注流程 0 长度判断 length(database())查询字段长度 length(database())=4,1,0 0 0 然后利用判断语句,判断长度值 0 逐个字符判断 0 正确页面 0   0   0 穷举操作   0 BP选中这个模式 0 将包利用bp抓取下来,进行穷举 0   0 提取到结果,拼接后,可获得数据库名称 表名获取 0 判断第一个表名的第一个字符为g substring((select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() limit 1),1,1)='g',1,0) 0   0 获取第一个表名 0 获取数据库第二个表名 0 判断第一个字段名为u if(substring((select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='users' and TABLE_SCHEMA=database() limit 0,1),1,1)='u',1,0)获取字段名   0 判断成功 0   0   0   0   0   0   0   0   0   0   0   0   0 得到结果 0 获取数据 输入注入语句,判断users表中第一个数据首字母是不是a ?id=1' and if(substring((select CONCAT(user,0x3a,PASSWORD) from users limit 1),1,1)='a',1,0) 或者 ?id=1' and if(substring((select CONCAT(user,PASSWORD) from users limit 1),1,1)='a',1,0) 这当中的0x3a是为了让返回值更好看,加不加无所谓 0 判断成立 0   0 bp穷举 0 穷举成功 0

标签:返回,字符,判断,database,盲注,布尔
From: https://www.cnblogs.com/baimuyangren/p/17825611.html

相关文章

  • sql布尔盲注脚本
    数据库长度fromrequestsimport*r=session()url='http://124.70.71.251:40332/new_list.php?id=1andlength(database())='foriinrange(20):url1=url+str(i)re=r.get(url1)if"2018"inre.text:print(i)数据库名称fromr......
  • Python中数值类型、布尔类型、字符串类型的特征及方法的使用
    数值类型包括int(整形)、float(浮点型)、complex(复数型)1.整型(int)整数就是没有小数部分的数字,Python中的整数包括正整数、0和负整数。为任意大小的整形数,可以表示成十进制八进制、十六进制和二进制。例:>>>0b1101+100 113>>>0x10+218>>>10+212>>>1_2_3_41234 2.......
  • python基础-数据类型(字符串-布尔-整数)
    目录1.整数(int)1.1定义1.2独有功能1.3公共功能1.4转换1.5其他1.5.1长整型1.5.2地板除1.5.3其它2.布尔(bool)2.1定义2.2独有功能2.3公共功能2.4转换2.5其他做条件自动转换3.字符串(str)3.1定义3.2独有功能3.2.1练习题3.3公共功能3.4转换3.5其他4.练习题......
  • 布尔盲注万能脚本
    来自:[WUSTCTF2020]颜值成绩查询脚本如下(python)使用时修改为自己的Success_message,url,以及re的正则规则即可。importtimeimportrequestsimportreSuccess_message="Hi"defcont(text):obj=re.compile(r'<h2class="mb">(?P<xiao>.*?)</h2>&#......
  • Python中的布尔值用途及特点介绍!
    Python中数据类型有很多种,而布尔值就是其中之一,是比较常见的数据类型。Python中bool表示布尔值,布尔值有两个True和Flase,常配合Python的条件语句来使用,一起来看看详细的内容介绍。Python中布尔值是什么?Python中的布尔值是一种基本数据类型,它的取值只有两种True和Flase......
  • python基本数据类型之布尔类型
    所有数据都自己的布尔值零值:所有数据都有且仅有一个值的bool值为FLASE,该值为此类型的零值。整型和浮点型数据除了0,布尔值为FLASE,其它全是TRUE。(0为整型和浮点型的零值)字符串、列表、字典除了容器中为空,其布尔值为FLASE,其它全为TRUE。("",[],{}分别为字符串、列表、字典的零值)p......
  • Python 布尔类型
    布尔值表示两个值之一:True(真)或False(假)。布尔值在编程中,您经常需要知道一个表达式是否为True或False。您可以在Python中评估任何表达式,并获得两个答案之一:True或False。当您比较两个值时,表达式会被评估,Python会返回布尔答案:示例print(10>9)print(10==9)print(10<9)......
  • 布尔数据 面的相交
    布尔数据面的相交[email protected]中对面的相交定义如下图所示:三维空间中两个带有GeometrySurface的面Face,当两个Surface之间的距离小于Face中的容差Tolerance,则认为是相交的。一般两个面之间相交得到的是交线,还有一些情况得到的是交点,如下图所示:......
  • 布尔数据 边的相交
    布尔数据边的相交[email protected]在OpenCASCADE中对于边的相交分为三类:边与点,边与边,边与面,边与点的相交已经归结为点与边的相交处理了,边的相交主要处理边与边,边与面的相交。边与边、边与面的相交会引入一个新的数据结构-公共部分CommonPart,用于保存重叠的公共部......
  • 布尔数据 点的相交
    布尔数据点的相交[email protected]中将相交干涉分成两种类型,一种类型是边界表示数据中的点线面Vertex,Edge,Face包含几何和容差,在3D空间中距离在容差范围之内的BRep相交。包含几何数据的点线面就有6种类型的BRep相交(BRepinterferences):Vertex/Ver......