全国空气质量网址解析

1.解决网站的反爬机制,无限debugger以及检测到非法调试(这里以msedge浏览器为例)

第一步

点击右上角三个点——更多工具——开发人员工具

第二步

点击开发者工具右上角三个点,然后点击左边的(进入独立窗口)也就是下图的第2步

点击后我们发现我们要调试的网站和开发工具变成了2个独立的窗口页面,如下图:

第三步

在我们的debugger左边单击右键,然后选择永不在此处暂停,如下图:

第四步

回到我们的网站窗口,点击左上角的刷新按钮进行刷新,如图:

此时我们就可以进入调试阶段了

到此该网站的反爬机制,无限debugger以及检测到非法调试解决

2.对该网站进行抓包分析

当我们进行抓包分析时,发现该网址的数据是经过加密的,具体是什么加密,我们需要一步步来,具体分析。

首先我们要做的就是拿到这一串加密数据。该数据是通过发送post请求得到的.

那么这时我们就需要找到他的在发送请求是所携带的参数,也就是Form Data(负载),该网址的参数为 hq4D4VYuB,一般来说参数名是不变的,参数值是变化的,但是这个网址是一个动态的js,是在不停变化的,大约10分钟,Form Data(负载)里面的参数值和参数名都会变化.

那么难度可想而知.

废话少说,我们进行参数的搜索,看他怎么加密的,这里可以通过全局搜索进行查找,也可以通过调用栈分析,进入如下图第三个调用栈

进入后 ctrl + f 进行搜索hq4D4VYuB,找到它的位置打上断点进行调试,

3.通过断点调试进入函数,分析函数的加密方法

注意在这里我们不能点击刷新调试,点击它我们是不会再断点处停止的.

正确的调试方法为选择其他城市,进行断点的调试

很好我们已经成功进入到了调试阶段

打上断点调试发现hq4D4VYuB由pbPc80T得到,而pbPc80T又是通过函数pbPc80T = pT7KIOse9j0ACVM(m0VmdwcJ2, oEmiM1HfK4)得到,我们通过测试台打印发现

m0VmdwcJ2为固定参数:GETDATA 而oEmiM1HfK4为我们所选的城市构成的一个键值对,即pbPc80T = pT7KIOse9j0ACVM('GETDATA', {city: '北京'}),所以pT7KIOse9j0ACVM是我们需要还原的加密函数.

进入pT7KIOse9j0ACVM加密函数,如下图所示,其中的hex_md5和BASE64均为正常的MD5和BASE64,而AES加密,进行了修改,如下图,传入AES的key与iv进行了md5运算,并截取的不同的部分。

1.这里所需appId,及AES所需的key和iv都是动态的,这里放到加解密所需的参数获取里一起解决。

2.上图中最后一步是对param的AES加密,并不一定,还可能是DES,也可能直接经过base64加密就可以了,既没有AES也没有DES,如下图是我抓的两次对比,可以发现不一样,这里的解决方式也放到加解密所需的参数获取里一起解决

第一种情况:BASE与AES加密

第二种情况:BASE与DES加密

第三种情况:只有BASE加密

这里我们先告一段落

4.寻找数据的加密函数

数据的加密位置:

通过调试我们发现dpWrq为一串加密码文。

在控制台打印dZ1ISMEqP328PD2Ytc(dpWrq),我们发现他变成了明文,也就是说这里就是数据的加密解析。

进入dZ1ISMEqP328PD2Ytc解密函数:
解密函数简单:分别经过AES解密—DES解密—base解密
同之前请求参数加密一样AES,DES的key与iv经过MD5处理了,且是动态变化的,在加解密所需的参数分析

5.加解密所需的参数获取(思路分析)

因为参数是变化的,我们也不知道要去哪里获取,这时我们就要通过大量的分析与寻找试错,功夫不负有心人,

经过不断努力,正确思路如下:

去我们获取数据也网址找到他的Referer

故接下来分析中国空气质量在线监测分析平台|实时监控|PM2.5在线监测这个请求包,同样发现返回的页面信息并没有直接的我们需要的key啊,iv啊,appID啊,继续分析script标签引入的js,如下框的src=/js/encrypt_的链接发现可疑。(注意,这个src后面的v=的数字是变化的,故需从此处页面源代码正则匹配获得)

同理我们在去找到1644988961对应的包看看里面的内容:分析发现这是一个eval加密的内容

在浏览器执行eval后,如下图(代码太长,仅仅截取的部分),发现还有eval,但是eval(dswejwehxt(…))的js代码,是不是眼熟,dswejwehxt是之前分析的一个Base64解密函数.

故在本地将上述代码Base64解密,并eval后的部分js代码如下

终于找到我们所需的KEY,iv,appid了,这些参数都在里面。

故此,所需的均分析完毕,这里再梳理一遍流程:

6.思路流程梳理

1.通过这个中国空气质量在线监测分析平台|实时监控|PM2.5在线监测链接,正则匹配得到js/encrypt_的动态url。

2.请求上面得到的动态url,获得响应数据,响应数据类似于这样eval(dswejwehxt(…))的字符串。

3.解密eval(dswejwehxt(…))字符串,得到明文js代码,并从中解析得到加解密所需的参数,包括aes的key,iv;des的key,iv;appid。

4.加密请求数据,并封装成需要的post请求格式。

5.带着第4步的加密数据,对返回所需接口url:https://www.aqistudy.cn/apinew/aqistudyapi.php发送请求。

6.得到返回的密文数据

7.解密返回的密文数据得到明文。

如有侵权,请联系删除,谢谢!!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实物购买地址:点击购买 多功能空气质量检测仪概述: 该多功能的空气检测仪基于STM8S005设计,能够检测甲醛、PM2.5检测功能,并且能够连接WiFi,可通过网页和App查看历史测量数据。该空气检测仪功能挺多的,同时也比较的实用,所以分享给大家,提供给大家一些设计的思路及技术资料,彼此提高在技术层面的积累。 空气检测主要分为以下几个方面: 甲醛检测 PM2.5检测 温湿度检测 时间 ESP8266的联网 TFT显示 产品总体性能: 显示方式TFT液晶显示屏 测量工作环境 温度:5~50℃,湿度:20%~90%RH,大气压:1 kPa 测量方法 甲醛:电化学原理 PM2.5:激光散射法 燃气:半导体 检测方式 自动 超标提示 按照国标设置预警值,蜂鸣器报警 甲醛测量范围 0~2mg/m3, 数字分辨率:0.001mg/m3,精度:±5%F.S PM2.5测量范围 0~999ug/m3,分辨率:1ug/m3, 精度:±10% F.S 燃气检漏范围 0~25%LEL,等级:无泄漏,轻微泄漏,中等泄漏,严重泄漏 湿度测量范围 25%~90%RH 温度测量范围 -20~55℃ 多功能空气质量检测仪截图: 用到的重要芯片和模块如下: ESP8266和RX8010 ESP8266是现在成本较次的WiFi连接方案之一,之前用它做项目,现在将它的功能进行了深入的挖掘,现在用的是AT指令进行的联网和数据交换的任务,可以满足自己DIY的乐趣,如果是用于产品响应时间很让人担忧,所以最近研究ESP8266的固件,看看能否通过ESP8266的片内编程解决响应时间及IO资源的问题。因为ESP8266的程序量交大,主要是最数据的上传交互,和其他的程序交叉使用,提取较为麻烦,有需求的朋友可以留邮箱或者QQ进行交流,也可添加本人QQ:1214814488或加群302341668进行交流。可提供APP和联网教程。 RX8010SJ是爱普生出的一颗时钟芯片,内部集成了时钟晶振,所以用起来较为方便,也不用担心晶振的选型。 温湿度SHT20和STM8S005 SHT20应该是现在市面精确测量温湿度较为常用的器件,价格也相当的靠谱,当时想用TI的HDC1000,发愁如何进行焊接,所以放弃的使用。由于SHT20、RX8010SJ、HDC1000都是IIC通讯的,所以附件驱动程序包括SHT20、RX8010SJ、HDC1000的程序。 STM8S系列的库文件,找的比较好用的库文件,在工程里直接替换C文件即可进行编译,便于新手上手。手里还有STM8L系列的相关资料,需要的可以加群302341668。 1.8寸TFT 驱动用的是ST7735S当时驱动这个屏花了有一天的功夫,真惭愧啊,最后发现卖家给的驱动有点问题,呈上驱动文件,如果是STM8系列的可以直接应用。 甲醛模块 甲醛模块是同学做的,我只是拿来应用,和原装英国达特的传感器性能相当,应用起来相当的简单,通电,只需串口接收数据进行解析就OK了。 甲醛的程序主要是串口,配置好串口后只用接收处理就可以了。甲醛模块的接收处理程序。 PM2.5模块 这是采用激光原理进行测量的传感器,测量相当的准确。主要是串口,配置好串口后只用接收处理就可以了 注意:附件内容分享的是所使用的资料及驱动文件等,具体详见附件内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值