【原创】掌上高考专业分数线js逆向
需求分析:爬取掌上高考每一年的专业录取分数
声明:本文章只用于学习研究,禁止用于但不限于商业用途、批量爬取
抓包
因为换页要求登录,所以我们打开开发者工具以后点下一年就会重新发数据包
分析后发现这个数据包就是请求的数据,返回数据和请求包都有加密,请求包里有个signsafe参数
分析请求包
ctrl+shift+f全局搜索signsafe,发现有两个js文件包含signsafe
先点开最后一个看,格式化以后继续搜索signsafe,发现uri是sendsmscode的,继续看看另外一个包(猜测:算法应该一样的,直接扣这个应该也可以)
发现只要带有signsafe的都是p赋值的,直接在p赋值的地方打上断点,然后继续发送请求包分析
认真看一下js代码,发现是url进行了HmacSHA1加密,密钥是常量D23ABC@#56,直接使用python改写
signsafe加密代码
1234567891011import base64import hmacfrom hashlib import sha1def hash_hmac(key, code): hmac_code = hm ...
【原创】某查查协议头参数272a7bfd6c84f9233ae1逆向加密代码
环境:node.js(V8)
逆向过程略,代码如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319 ...
【原创】某易云音乐params和encSecKey参数逆向
环境:
Python 3.8.5node v16.11.1npm 8.0.0Google Chrome 95.0.4638.54PyCharm 2021.2.2
本示例以评论为例,其他接口一样可以使用
使用了ajax技术请求,所以可以使用跟栈的方式找到加密点,但使用全局搜索的方式更快
点进去下断点,确定是我们加密参数,因为params和encSecKey都来自bUM9D,所以我们在bUM9D的位置下断点
点击下一页断点确实断住了,而且是我们要的数据
看到了一个asrsea方法,但这个方法不熟悉,应该是js给加到window了,先看看参数
通过控制台输出,i8a可能就是要加密的数据;
bsB3x([“流泪”, “强”])、bsB3x(WX6R.md)、bsB3x([“爱心”, “女孩”, “惊恐”, “大笑”])这三个参数应该是固定的,使用了混淆,如果不是固定的我们取js代码就行
现在来看看asrsea函数,(我再写文章的时候才搜的,原本想水一下,结果。。。。没窥屏!!!)
继续,继续,继续
跟进去window.asrsea函数,可以在控制台直接输入window.asrs ...
Node.Js运行AES RSA加密缺少window的解决方法
Js逆向中,会遇到很多环境问题,比如navigator、document、window这些只有浏览器才有的,然后代码扣下来浏览器可以运行,在一些调试工具也可以运行,但是nodejs就是运行不了。
问过很多大佬, 他们说缺什么补什么,document和navigator就给一个空对象,window就给this,这样很多调试工具都可以用了,但是nodejs就是运行不了,报上面的错误。
在我不经意中居然解决了该问题,测试过nodejs和execjs都可以执行,就是window使用global变量
但是在js调试工具中报错:
总结如下:在调试工具中,window=this,在nodejs中,window=global。
电信光猫TEWA-708G超级管理密码破解
先把U盘插到光猫USB接口,然后登录普通账号,账号密码在光猫后面有写,网址:http://192.168.1.1:8080/login.html
登录成功以后按键盘的F12打开开发者工具,然后输入`http://192.168.1.1:8080/usbbackup.cmd?action=backupeble&sessionKey=${sessionKey}`
点击链接打开,不要管我的前后sessionKey不一样
如果 备份配置 按钮点击不了,把鼠标放在 备份配置 上右键检查
然后双击 disabled 点删除键就行(回车上面第二个键),打错字删除那个键,不是delete键
这时候可以点击 备份配置 了,点了以后直接会跳转到一个空白页面,url是这样的:http://192.168.1.1:8080/usbbackup.cmd?action=backup&subarea=usb1_1&set1_sessionKey=set1_sessionKey_214
这时候不要管,直接把U盘拔下来插上电脑,然后u盘里多了一个叫 e8_Confi ...
Django会话学习
HTTP被设计为”⽆态”,也就是俗称“脸盲”。 这⼀次请求和下⼀次请求 之间没有任何状态保持,我们⽆法根据请求的任何⽅⾯(IP地址,⽤户代理等)来识别来⾃同⼀⼈的连续请求。实现状态保持的⽅式:在客户端或服务器端存储与会话有关的数据(客户端与服务器端的⼀次通信,就是⼀次会话),所以引入以下技术:
cookie
session
不同的请求者之间不会共享这些数据,cookie和session与请求者⼀⼀对应。
cookiecookie是什么cookies 是浏览器为 Web 服务器存的⼀小信息。 每次浏览器从某个服务器请求页面时,都会自动带上以前收到的cookie。cookie保存在客户端,安全性较差,注意不要保存敏感信息。典型应用:网站登录
设置CookieDjango使用HttpResponse的set_cookie方法来设置对象,使用redirect重定向指定一个地址,用法:
123response = redirect(reverse('admin:index'))response.set_cookie(cookie名称, value='cookie ...
Python实现验证码发送
APP、⽹站注册账号,向⼿机下发验证码; 登录账户、异地登录时的安全提醒; 找回密码时的安全验证; ⽀付认证、身份校验、⼿机绑定等。本例采⽤阿里云短信验证
开通阿里云短信服务登录控制台阿里云:https://www.aliyun.com/
登录阿里云后点击右上角的控制台,点击阿里云logo旁边的菜单按钮,选择””产品与服务”,在搜索框输入”短信”,在”云通信”列表中点击”短信服务”进入短信服务控制台
开通短信服务首次进入短信服务阿里云会提示你开通短信服务,短信服务按量收费,你不用就不会收费。
申请签名个人用户只能申请一个签名,审核时间过长(2小时左右),我没法做演示。
进入控制台后选择”国内消息”,之后选择签名管理,点击添加签名按照要求填写内容即可,签名名称要是有个准确的应用名称,不能出现测试之类的词汇。
审核通过的签名
申请模板模板是你短信内容的格式,格式为:【签名名称】模板内容
进入控制台后选择”模板管理”,之后点击”添加模板”,按照填写要求填写模板即可,”${code}”是有个验证码变量,”code”是变量名,调用的使用要对应你得模板变量名。
创建AccessKey ...
Django模型学习
模型使用流程
配置数据库
定义模型类
激活模型
使用模型
数据库配置Django默认使⽤的是sqlite,但在⽣产环境中⼀般会⽤mysql、postgrsql、oracle 等关系型数据库。
在开发环境中,安装mysql的数据库驱动mysqlclient,mysqlclient是连接mysql的驱动,不能提供数据库服务,需要单独安装mysql。
1pip install mysqlclient
在项⽬的 settings.py ⽂件中找到 DATABASES 配置项,将其信息修改为:
12345678910DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #mysql数据库引擎 'NAME': 'test', #数据库名 'HOST':'localhost', #数据库服务器地址 'USER': 'test ...
Django晋级学习
Django 带参数的路由path对象Django使用path对象来定义路由列表,path有四个参数:
模式串:匹配用户请求路径的字符串
视图函数:匹配上用户请求路径后调用的视图函数
kwaergs:可选参数,需要额外传递的参数,是一个字典
名称(name):给路由命名,在代码中可以使用name进行方向解析(由name获取用户请求路径)
当path中模式串不能满足你的路由规则,还可以使用re_path对象,re_path对象中模式串是正则表达式,其他三个参数和path对象一致。
path注意
Django从上往下进行匹配,一旦匹配成功就返回
一个视图函数可以有多个模式匹配
模式前面不需要加’/‘
如果匹配失败,则引起异常,Django会调用错误处理视图函数(关闭DEBUG模式)
path匹配规则
str 字符串参数可以匹配除/和空字符的其他字符串
int 匹配0和整整数,视图函数的参数将得到一个整型值
slug 匹配由数字、字母、和_组成的字符串参数
path 匹配任何非空字符串,包括/
str写法:path('user/',inc ...
Django基础学习
Django 简介基本介绍Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。
使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
低耦合
开发快捷
部署方便
可重用性高
维护成本低
…
Python 加 Django 是快速开发、设计、部署网站的最佳组合。
特点
强大的数据库功能
自带强大的后台功能
优雅的网址
MVC 与 MTV模型MVC 模型MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC 以一种插件式的、松耦合的方式连接在一起。
模型(M)- 编写程序应有的功能,负责业务对象与数据库的映射(ORM) ...