首页
关于
留言
Search
1
红米 AX3000 (AX6) 路由器解锁 SSH 教程
6,676 阅读
2
网盘挂载程序sharelist美化教程
4,216 阅读
3
小米路由器 AX3600 开启SSH教程,官方固件即可安装 ShellClash开启科学上网
2,168 阅读
4
Oracle 甲骨文 ARM VPS 自动抢购脚本
1,819 阅读
5
编译带PassWall和SSR-plus插件的Openwrt系统
1,393 阅读
前端
Vue
React
后端
Java
Python
PHP
数据库
运维
杂谈
小程序
影视资源
登录
Search
标签搜索
Java
Linux
Mysql
IDEA
Debian
Docker
Springboot
CentOS
Cloudflare
Maven
JavaScript
SQL
Wordpress
宝塔
Nginx
Windows
MacBook
JS
CSS
Openwrt
William
累计撰写
144
篇文章
累计收到
702
条评论
首页
栏目
前端
Vue
React
后端
Java
Python
PHP
数据库
运维
杂谈
小程序
影视资源
页面
关于
留言
搜索到
2
篇与
的结果
2024-07-02
浏览器绕过“请在微信客户端打开链接”
场景简述安全技术人员在对微信小程序进行渗透测试的时候,不想打开安卓模拟器或者真机捉包测试。但想通过浏览器打开访问小程序的网站,配合捉包软件等做安全测试。但是偶尔有些小程序在浏览器访问的时候,会提示“请在微信客户端打开链接”。这时候就很懊恼,是吧?可以通过以下方法不用模拟器或者真机交互,也能实现浏览器捉取微信小程序的数据包。实现办法在开始前先思考一下,为什么会触发“请在微信客户端打开链接”。网页代码又是通过什么特征判断的?答:javascript通过判断Header头是不是微信+手机特征的User-Agent,从而实现区分当前环境是浏览器或者是手机微信端。那么既然是通过Header头从而实现的方法,那么我们在浏览器新建添加Header头,即可解决问题。1、键盘F12 ,控制台-鼠标点击,切换模式。2、编辑(Edit),设备(Devices),添加自定义设备(Add custom Device)。3、在设备当中命名为weixinua,添加User-Agent字段,保存。Mozilla/5.0 (Linux; Android 5.0; SM-N9100 Build/LRX21V) > AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 > Chrome/37.0.0.0 Mobile Safari/537.36 > MicroMessenger/6.0.2.56_r958800.520 NetType/WIFI4、选择设备尺寸为刚刚设定的weixinua,刷新访问页面即可看到小程序原本的页面,而非“请在微信客户端打开链接”。5、接着该干捉包就捉包吧,该测试就测试。
2024年07月02日
150 阅读
0 评论
0 点赞
2024-04-20
使用企业微信API获取个人微信的openid实现用户鉴权!无需认证公众号!完全免费!
在微信中,需要鉴别用户身份的常用做法是什么?当然是微信授权,获取用户的openid进行确认身份。如果是h5网页,那么需要使用微信公众号提供的网页授权接口实现,如果是小程序那就好办,个人小程序的 wx.login 接口也可以获取openid,那么问题来了,微信公众号提供的网页授权只有认证的服务号才有权限,个人根本没机会使用,这便是门槛。但是我发现,企业微信的接口,个人也可以使用网页授权链接实现获取用户的openid,即便你的网页不是在企业微信环境下使用,也是可以获取到用户的openid,本次文章就是我要实现的。准备1、登录企业微信;2、创建一个应用;3、创建完毕之后,进入应用,获取 AgentId 和 Secret4、获取 appid以上3个参数准备好,就可以用代码实现了。getCode.php<?php // 获取访问令牌的函数 function getAccessToken($corpid, $corpsecret) { $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid&corpsecret=$corpsecret"; $response = file_get_contents($url); $data = json_decode($response, true); if(isset($data['access_token'])) { return $data['access_token']; } else { // 处理错误 return false; } } // 从数组中检索访问令牌的函数 function getCachedAccessToken() { if(file_exists('access_token.php')) { include 'access_token.php'; return $access_token_data['access_token']; } else { // 如果文件不存在,返回空字符串 return ''; } } // 检查访问令牌是否过期的函数 function isAccessTokenExpired() { if(file_exists('access_token.php')) { include 'access_token.php'; return $access_token_data['expires_at'] < time(); } else { // 如果文件不存在,返回 true 表示过期 return true; } } // 将访问令牌保存到数组中的函数 function saveAccessToken($access_token) { $access_token_data = array( 'access_token' => $access_token, // 设置访问令牌 'expires_at' => time() + 7200 // 设置过期时间为2小时后 ); file_put_contents('access_token.php', '<?php $access_token_data = ' . var_export($access_token_data, true) . ';'); } // 你的企业微信 API 凭证 $corpid = '你的企业微信appid'; $corpsecret = '你的企业微信所创建的应用的Secret'; // 检查访问令牌是否过期或未缓存 if(isAccessTokenExpired()) { // 从企业微信 API 获取新的访问令牌 $access_token = getAccessToken($corpid, $corpsecret); if($access_token) { // 将访问令牌保存到数组中 saveAccessToken($access_token); } else { // 处理错误 die("从企业微信 API 获取访问令牌失败。"); } } // 获取用户信息 function getUserInfo($access_token, $code) { $url = "https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=$access_token&code=$code"; $response = file_get_contents($url); $data = json_decode($response, true); return $data; } // 从数组中检索访问令牌 $access_token = getCachedAccessToken(); // code $code = $_GET['code']; $userInfo = getUserInfo($access_token, $code); if($userInfo['errcode'] == 0) { // 判断当前是userid还是openid if($userInfo['userid']) { // userid $openid = $userInfo['userid']; }else { // openid $openid = $userInfo['openid']; } // 跳转到展示页面 echo '<script>location.href="showOpenid.php?openid='.$openid.'";</script>'; }else { // 错误 echo $userInfo['errmsg']; } ?> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover">以上代码两处需要配置,这两处已经在上面准备阶段获取到了。// 你的企业微信 API 凭证 $corpid = '你的企业微信appid'; $corpsecret = '你的企业微信所创建的应用的Secret';showOpenid.php<html> <head> <title>展示页面</title> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover"> </head> <body> <p style="width:90%;margin: 50px auto 0;text-align:center;padding:20px 5px;border:2px dashed #ccc;"> <?php echo $_GET['openid']; ?> </p> </body> </html>以上两个php文件上传至你服务器即可。例如你的域名是:https://www.qq.com你将 getCode.php 和 showOpenid.php 上传至根目录下的 Auth 目录。那么继续往下看:构造网页授权链接根据官方API文档可知:构造格式如下:https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE&agentid=AGENTID#wechat_redirectCORPID: 替换为你的appidredirect_uri: 替换为getCode.php页面的链接AGENTID: 替换为你的AgentId假设你的CORPID是:ww1f1289a1254d49b2假设你的AGENTID是:1000002最终的网页授权链接如下:https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww1f1289a1254d49b2&redirect_uri=https://www.qq.com/Auth/getCode.php&response_type=code&scope=snsapi_base&state=STATE&agentid=1000002#wechat_redirect还要去配置一下网页授权的域名(应用管理点进去往下拉-网页授权及JS-SDK)配置完授权域名后,也要配置信任IP,不然会提示你从不被允许的IP访问将构造完成的链接发到微信:点击即可获取到openid了!注意:如果你用登录企业微信的微信扫码,可能就不是获取到openid了,而是获取到userid,因为文档说了,当用户为企业成员时(无论是否在应用可见范围之内)返回示例如下:所以你要测试的话得找个不是你的企业微信成员的微信进行扫码,才可以看到openid,所以这一块要注意,你以后的业务逻辑也是需要对这一块进行特殊处理。
2024年04月20日
34 阅读
0 评论
0 点赞