zoukankan      html  css  js  c++  java
  • Perl WebMode(目录扫描/同IP域名扫描)

    先说好,这玩意没有完工。目前只是做个整合。目前对其的要求是:

    根据目标的域名,对网站爬虫,以及同IP域名分析,还有就是目录的扫描,系统的检测。

    还有就是指纹识别。漏洞扫描等等。

    目前该WebMode只是一部分,还在研究当中。还需要修改,只是把大致的框框弄出来。。

    package WebMode;
    
    use HTTP::Request;
    use LWP::UserAgent;
    use Getopt::Long;
    use threads;
    use Thread::Semaphore;
    use Socket;
    use HTTP::Response;
    use HTTP::Request::Common;
    
    sub Waring_pr{
         local($number)=shift;
         
         if($number==1)
         {
             print "---------------------------------------------------------------------\n";
             print "perl WebMode.pl -Url http://www.baidu.com --Thread 10 -List loal.list\n";
             print "---------------------------------------------------------------------\n";
             exit(0);
         }
         else
         {
             print "---------------------------------------------------------------\n";
             print "perl PostWeb.pl -url xxx.com -option POST/GET --output filename\n";
             print "---------------------------------------------------------------\n";
             exit(0);
         }
    }
    
    sub Grep_task{
    
        local($url_other)=shift;
    
        @other_list=split(/<li>/,$url_other);
    
        foreach my $url(@other_list)
        {
            if($url=~m#href='(.*)'#)
            {
    
                push(@url,$1);
            }
        }
        @report_other_url=Report_Mode("@url");
    
        if($report eq undef)
        {
            open FILE,">$task_name.html";
        }
        else
        {
            open FILE,">$report.html";
        }
    
        print FILE "@report_other_url";
    
        close(FILE);
    }
    
    
    sub Report_Mode{
        local($temp_url)=shift;
    
        @temp_url=split(/\s+/,$temp_url);
    
        push(@report_html,"<html>");
    
        push(@report_html,"<head><title>Report</title></head>");
    
        push(@report_html,"<body>");
    
        foreach my $task_url (@temp_url)
        {
            print "----------------\n";
    
            print "Url:$task_url\n";
    
            print "----------------\n";
    
            $task="<a href=\"$task_url\">$task_url</a><br />";
    
            push(@report_url,$task);
        }
    
        push(@report_html,"@report_url");
    
        push(@report_html,"</body>");
    
        push(@report_html,"</html>");
    
        return @report_html;
    }
    
    
    sub Check_null{
        local($check_task)=shift;
        
        if($check_task =~m#\d#)
        {
            if($check_task <10)
            {
                $check_task=10;
                
                return $check_task;
                
            }
            else
            {
                return $check_task;
            }
        }
        else
        {
            if($check_task eq undef)
            {
                return Waring_pr();
            }
            else
            {
                return $check_task;
            }
        }
    }
    
    sub Thread{
         ($threads_max,$list_file,$weburl)=@_;
         
         Check_null($threads_max);
         
         Check_null($list_file);
         
         Check_null($weburl);
         
         my $signal_max=Thread::Semaphore->new($threads_max);
         
         open(FILE,$list_file);
         
         foreach(<FILE>)
         {
              if(${$signal_max}<=0)
              {
                    for my $t(threads->list(threads::joinable))
                    {
                         $t->join();
                         
                         $signal_max->up();
                    }
                    redo;
              }
              $signal_max->down();
              
              chomp;
              
              $scan_task="$weburl/$_";
              
              threads->create(\&Webscan,$scan_task);
         }
         for my $t(threads->list())
         {
              $t->join();
         }
         close(FILE);
    }
    
    sub Webscan{
         local($scan_task)=shift;
         
         if($scan_task !~/^http/)
         {
              $scan_task="http://$scan_url";
         }
         my $request=HTTP::Request->new(GET=>$scan_task);
         
         my $uat=LWP::UserAgent->new();
         
         $uat->timeout(3);
         
         my $reponse=>$uat->request($request);
         
         if($response->status_line=~/200/)
         {
              print "[*] $scan_url=========[200][*]\n";
         }
         elsif($response->status_line=~/403/)
         {
              print "[*] $scan_url=========[403][*]\n";
         }
    }
    
    sub Post_send{
        local($task_url)=shift;
         
        $agent=new LWP::UserAgent;
    
        $request=POST('http://tool.chinaz.com/Same/',[s=>$task_url]);
    
        $request->header('User-Agent'=>'Mozilla/5.0 (X11; Linux x86_64; rv:18.0)');
    
        $request->header('Accept-Encoding'=>'zh-cn,en-us;q=0.7,en;q=0.3');
    
        $response=$agent->request($request);
    
        if($response->is_success)
        {
            $url_tmp=$response->content;
    
            if($url_tmp=~m#<ul><li><span>(.*)</li></ul>#)
            {
                Grep_task($1);
            }
        }
        else
        {
            print "Error!!\n";
        }
    }
    
    sub Get_send{
        local($task_url)=shift;
    
        $agent=new LWP::UserAgent;
    
        $request=GET('http://www.baidu.com/');
    
        $request->header('User-Agent'=>'Mozilla/5.0 (X11; Linux x86_64; rv:18.0)');
    
        $request->header('Accept-Encoding'=>'zh-cn,en-us;q=0.7,en;q=0.3');
    
        $response=$agent->request($request);
    
        if($response->is_success)
        {
            print "ok!\n";
        }
        else
        {
            print "No\n";
        }
    }
    
    1;
  • 相关阅读:
    CSS3 target伪类简介
    不用position,让div垂直居中
    css3 在线编辑工具 连兼容都写好了
    a标签伪类的顺序
    oncopy和onpaste
    【leetcode】1523. Count Odd Numbers in an Interval Range
    【leetcode】1518. Water Bottles
    【leetcode】1514. Path with Maximum Probability
    【leetcode】1513. Number of Substrings With Only 1s
    【leetcode】1512. Number of Good Pairs
  • 原文地址:https://www.cnblogs.com/xiaoCon/p/2993023.html
Copyright © 2011-2022 走看看