zoukankan      html  css  js  c++  java
  • php内网探测脚本&简单代理访问

    <?php 
    $url = isset($_REQUEST['u'])?$_REQUEST['u']:null; 
    $ip = isset($_REQUEST['i'])?$_REQUEST['i']:null; 
    
    if($url != null){ 
        $host = getHost($url); 
        echo getCss($host,getHtmlContext($url)); 
    }else if($ip != null){ 
        $useIP = substr($ip,0,strripos($ip,".") + 1); 
      ob_start(); 
        for($i=0;$i<256;$i++){ 
          $url = "http://".$useIP.$i; 
        $html = getHtmlContext($url); 
        $title = getTitle(html); 
        $serverType = getHeader("Server"); 
        $status = $html ? "Success": "Fail"; 
        if($html){ 
           echo $url."  >>  ".$title.">>".$serverType." >>".$status."<br/>"; 
        } 
            @ob_flush(); 
            flush(); 
      } 
      ob_end_clean(); 
    } 
    function getHtmlContext($url){ 
        $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_URL, $url); 
        curl_setopt($ch, CURLOPT_HEADER, TRUE);    //表示需要response header 
        curl_setopt($ch, CURLOPT_NOBODY, FALSE); //表示需要response body 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
        curl_setopt($ch, CURLOPT_TIMEOUT, 120); 
        $result = curl_exec($ch); 
      global $header; 
      if($result){ 
           $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); 
           $header = explode("
    ",substr($result, 0, $headerSize)); 
           $body = substr($result, $headerSize); 
      } 
        if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '200') { 
            return $body; 
        } 
        if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '302') { 
        $location = getHeader("Location"); 
        if(strpos(getHeader("Location"),'http://') == false){ 
          $location = getHost($url).$location; 
        } 
            return getHtmlContext($location); 
        } 
        return NULL; 
    } 
    function getHeader($name){ 
      global $header; 
      foreach ($header as $loop) { 
         if(strpos($loop,$name) !== false){ 
           return trim(substr($loop,strlen($name)+2)); 
         } 
      } 
    } 
    function getTitle($html){ 
        preg_match("/<title>(.*?)</title>/i",$html, $matches); 
      return $matches[1]; 
    } 
    function getHost($url){ 
        preg_match("/^(http://)?([^/]+)/i",$url, $matches); 
        return $matches[0]; 
    } 
    function getCss($host,$html){ 
        preg_match_all("/<link[sS]*?href=['"](.*?[.]css.*?)["'][sS]*?>/i",$html, $matches); 
      //print_r($matches); 
        foreach($matches[1] as $v){ 
        $cssurl = $v; 
            if(strpos($v,'http://') == false){ 
          $cssurl = $host."/".$v; 
        } 
        $csshtml = "<style>".file_get_contents($cssurl)."</style>"; 
        $html .= $csshtml; 
      } 
      return $html; 
    } 
    ?>

     QQ截图20150910102515.gif

    QQ截图20150910102557.gif

  • 相关阅读:
    ssh免密码登录
    nginx做负载均衡+keepalived(做主备)
    centos之Too many open files问题-修改linux最大文件句柄数
    redis-JedisPoolConfig配置
    Hadoop端口说明
    hadoop 2.5 安装部署
    Java集合框架 10 连问,你有被问过吗?
    Dubbo面试八连问,这些你都能答上来吗?
    面试官:关于Java性能优化,你有什么技巧
    Docker从入门到掉坑(三):容器太多,操作好麻烦
  • 原文地址:https://www.cnblogs.com/hookjoy/p/4798900.html
Copyright © 2011-2022 走看看