首页 > 代码库 > 【记我愤怒的一次】通过灌水进行注册北京进京证

【记我愤怒的一次】通过灌水进行注册北京进京证

  背景:

    “北京交警APP”可以网上办理进京证,但是最近每次在该APP办理进京证,总会提示“排队人数过多”。很是苦恼,想一探究竟,到底是真的排队过多,偶有成功,还是总会弹出该错误提示?

    技术分享

  前期准备——抓包:

 1.利用fiddler对手机进行抓包,看到一个addcartype接口的302响应和一个错误页面的200响应,这是进入申请进京证排队20秒的那个接口,直接跳到错误页面。如下

技术分享

 2.详细分析addcartype接口,这是导致错误页面的关键。如下

技术分享

 

php实现一个简单的灌水程序

1. 每隔一秒访问该接口,如果HTTP响应码为302,则继续灌它。

2. 每隔一小时统计接口302访问次数

3. 如果状态码为200,则记录返回数据。好进行申请进京证的下一步。

代码见下,开发这个灌水纯粹是脑子一热,逻辑如有纰漏请指正。

<?php
/**
 * Created by PhpStorm.
 * User: wanghejun_iwm
 * Date: 2017/6/2
 * Time: 15:56
 */

set_time_limit(0);

$url = "https://api.jinjingzheng.zhongchebaolian.com/enterbj/platform/enterbj/addcartype";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

//设置header
$header = array();
$header[] = "Content-Type: application/x-www-form-urlencoded";
$header[] = "Origin: https://api.jinjingzheng.zhongchebaolian.com";
$header[] = "Cookie: JSESSIONID=03451CCEFCA2975A892618509F49EB2A; CNZZDATA1260761932=1447194544-1489704663-https%253A%252F%252Fapi.jinjingzheng.zhongchebaolian.com%252F%7C1494198185; UM_distinctid=15ab66a50aa19-0ebf95ce9e49a4-2e5e056a-3d10d-15ab66a50ab7c";
$header[] = "Content-Length: 182";
$header[] = "Connection: keep-alive";
$header[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$header[] = "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Mobile/14F89";
$header[] = "Referer: https://api.jinjingzheng.zhongchebaolian.com/enterbj/jsp/enterbj/index.jsp";
$header[] = "Accept-Language: zh-cn";
$header[] = "Accept-Encoding: gzip, deflate";


curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); // 检查证书中是否设置域名
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
$data = http://www.mamicode.com/‘applyid=&carid=10223597&userid=36ACEF1E65A842F3B9520936D70178FE&gpslon=116.314587&gpslat=40.044848&imei=&imsi=&licenseno=%E5%86%80F362SF&appsource=&hiddentime=2017-06-02+15%3A29%3A52‘;"d") . date("H"));

while ($httpCode == 302) {
    $n++;
    sleep(1);
    $ret = curl_exec($ch);
    $httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
    $data = http://www.mamicode.com/curl_multi_getcontent($ch);"d") . date("H"));
    if ($now > $currentTime) {
        $currentTime = $now;
        //记录当前为止302次数
        $time = date("Y-m-d H:i:s");
        error_log("\n 截止到$time ,请求次数 : $n\n" , 3, ‘/tmp/jinjingzheng‘);
    }
    if ($httpCode == 200) {
        error_log("\n 截止到成功 ,请求次数 : $n\n" , 3, ‘/tmp/jinjingzheng‘);
        error_log("\n 返回信息 : \n" . print_r($data, true), 3, ‘/tmp/jinjingzheng‘);
    }
}

curl_close($ch);

 

 后台运行灌水小程序

php JinjingEnter.php &

  

 

【记我愤怒的一次】通过灌水进行注册北京进京证