技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 其他 --> 一段扫flash跨站的脚本

一段扫flash跨站的脚本

浏览:2088次  出处信息
没啥技术含量,主要是扫ExternalInterface.call

    #!/usr/bin/php -q

    

    /*--------------------------------xy7@80sec.com----------------------------

    #Flash文件跨站检测脚本 2010/6/3

    #检测过程如下:

    提取ExternalInterface.call调用的参数,检查参数是都是直接通过loaderInfo.parameters获取

    #使用方法

    ./scan.php /as代码目录>log

    ----------------------------------xy7@80sec.com---------------------------*/

    set_time_limit(0);

    function find($directory)

    {   

    $mydir=dir($directory);

    while($file=$mydir->read()){

    if((is_dir("$directory/$file"))&&($file!=".")&&($file!=".."))

    {

    find("$directory/$file");

    }

    else{

    if($file != "." && $file != ".."&&eregi(".as",$file)){

    $fd=realpath($directory."/".$file);

    $fp = fopen($fd, "r");

    $i=0;

    while ($buffer = fgets($fp, 128)) {

    $i++;

    if(eregi("ExternalInterface.call",$buffer))

    {

    echo "Line".$i.":".$buffer."\\r\\n\\r\\n";

    preg_match("/\\((.*)\\)/i", $buffer, $match);

    if (strstr($match[1],"("))

    {

    preg_match("/\\((.*)\\)/i", $match[1], $newmatch);

    echo "再次提取后参数包含 :".$newmatch[1]."\\r\\n\\r\\n";

    $oldfp = ftell($fp);

    fseek($fp, 0);

    $p = 0;

    while ($newbuffer = fgets($fp, 128))

    {

    $p++;

    if(eregi("loaderInfo.parameters",$newbuffer))

    {

    //echo "Line".$p.":".$newbuffer."\\r\\n";

    if (strstr($newbuffer,$newmatch[1]))

    {

    echo $newmatch[1]."存在漏洞\\r\\n\\r\\n";

    }

    }

    }

    fseek($fp, $oldfp);

    unset($oldfp);

    } elseif(strstr($match[1],","))

    {

    echo "多个参数:$match[1]\\r\\n";

    if (strstr($match[1],"loaderInfo.parameters")){

    echo $match[1]."直接调用loaderInfo.parameters传递存在漏洞\\r\\n\\r\\n";

    }

    $var_array = array();

    $var_array = explode(",",$match[1]);

    $oldfp = ftell($fp);

    fseek($fp,0);

    while ($newbuffer = fgets($fp, 128))

    {

    if(eregi("loaderInfo.parameters",$newbuffer))

    {

    //echo "Line".$p.":".$newbuffer."\\r\\n\\r\\n";

    foreach ($var_array as $value)

    {

    if (strstr($newbuffer,$value))

    {

    echo trim($value)."存在漏洞\\r\\n\\r\\n";   

    }

    }

    }

    }

    fseek($fp, $oldfp);

    unset($oldfp);

    }else

    {

    echo "唯一参数:".$match[1]."\\r\\n";

    if (strstr($match[1],"loaderInfo.parameters")){

    echo $match[1]."直接调用loaderInfo.parameters传递存在漏洞\\r\\n\\r\\n";

    }

    $oldfp = ftell($fp);

    fseek($fp,0);

    while ($newbuffer = fgets($fp, 128))

    {

    if(eregi("loaderInfo.parameters",$newbuffer))

    {

    //echo "Line".$p.":".$newbuffer."\\r\\n\\r\\n";

    if (strstr($newbuffer,$match[1]))

    {

    echo trim($match[1])."存在漏洞\\r\\n\\r\\n";   

    }

    }

    }

    fseek($fp, $oldfp);

    unset($oldfp);

    }

    }

    }

    fclose($fp);

    }

    }

    }

    $mydir->close();

    }

    function all()

    {

    static $count = 1;

    echo $count;

    $count++;

    }

    find($argv[1]);

    ?>

建议继续学习:

  1. 为flash建立socket安全策略文件服务器    (阅读:3693)
  2. 发布本地存储开发插件-Rookie    (阅读:3118)
  3. FlashCookie    (阅读:2889)
  4. 网页设计三剑客    (阅读:2193)
  5. 有故事的网页设计――Flash网站奇妙之旅    (阅读:2192)
  6. Perl 实现 Flash 的 Socket Policy 服务器    (阅读:2176)
  7. Flash真的适合做网站应用吗?    (阅读:2063)
  8. HTML5&Flash之粗知浅见    (阅读:2044)
  9. Flash在某些多标签浏览器中的“伪沙箱”问题    (阅读:1993)
  10. 使用Apparat框架优化你的Flash    (阅读:1946)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1