JS逆向笔记-记录某测试论坛的js逆向练习
这个网站应该是专门练习的,因为有个地方说不太通,在此只能算是练习,记录下,方便以后进行查阅。
首先访问主页:
他会设置一个cookie值,并且会把加密的salt
带出来。还有个叫lt的东西也会用html的形式传出来。
这个lt,会在发送请求的时候带出去。
输入用户名密码后,点击登录,发送的是这样的body:
username=admin888&password=H1uFJjwe8ZoS04VFZBOCBfma9qdoxrSd%2FND4gBK3%2F8YlVJaQ4ZJFSIO5PLjgZdYTkrgjILDmfXADSDtWJQpZCp%2FOUSX3nOo5zz6fuVHd%2FuU%3D&captchaResponse=hppx<=LT-3032376-qI7M4Pc15tRwukqt4nKojGlPuUL5gx1646621586496-mdSp-cas&dllt=userNamePasswordLogin&execution=e1s1&_eventId=submit&rmShown=1
这里重新刷新了下页面,上面的salt和lt会改变,下面来分析下这个password。关键代码已经定位到此处,下个断点:
function _gas(data, key0, iv0) {key0 = key0.replace(/(^\s+)|(\s+$)/g, "");var key = CryptoJS.enc.Utf8.parse(key0);var iv = CryptoJS.enc.Utf8.parse(iv0);var encrypted = CryptoJS.AES.encrypt(data, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});return encrypted.toString();
}
function encryptAES(data, _p1) {if (!_p1) {return data;}var encrypted = _gas(_rds(64) + data, _p1, _rds(16));return encrypted;
}
function _ep(p0, p1) {try {return encryptAES(p0, p1);} catch (e) {}return p0;
}
var $_chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
var _chars_len = $_chars.length;
function _rds(len) {var retStr = '';for (i = 0; i < len; i++) {retStr += $_chars.charAt(Math.floor(Math.random() * _chars_len));}return retStr;
}
从中可以知道密码加密是这样的
加密字符串:64位随机数+密码;
密钥:登录首页时服务器给的16位字符串。
偏移量:16位随机的字符串。
加密方式:CBC;
填充:pkcs7
比如这样的:
他的data是:fa7B3ixA4EP7YBQfjPtbn6PX8THKAYSWD6ncB8RhrNxy5aAcdQWc63PnkGbf8w5padmin888
key0是:Jaj2b6QTiljjdd6J
iv0是:XMZb5i5FEfP4YjSA
用在线AES加密试下:
GPUjEIFA0wavbfPL9xVlVPE0C/Id2lZfZtiuNfc0Dk4+nA2UD9syrng7xn3PhFrhVRiTI4sMrqfrd+x7Um6REyHwxvyJI38ZoykQAC+SelQ=
看下程序他跑出来是多少
发现是一样的。看看发的包是不是一样的:
username=admin888&password=GPUjEIFA0wavbfPL9xVlVPE0C%2FId2lZfZtiuNfc0Dk4%2BnA2UD9syrng7xn3PhFrhVRiTI4sMrqfrd%2Bx7Um6REyHwxvyJI38ZoykQAC%2BSelQ%3D&captchaResponse=apcf<=LT-3032840-P9cGjCTq3ciu0bTqOitzoL2nzmTLRv1646622551540-mdSp-cas&dllt=userNamePasswordLogin&execution=e1s3&_eventId=submit&rmShown=1
从中可以看到是一样的,只是转成了URI。
注:这里服务器在解码时,必须要偏移量,而从这提交的包中,没有看到对偏移量相关的加密等。在此感觉,这个站点仅仅是个测试站点。但对我也很有启发,后面一篇博文,用这种方式,实现密钥和偏移量的交换。
JS逆向笔记-记录某测试论坛的js逆向练习相关推荐
- WPS—JS宏笔记记录
前言:本方法需要一定的JS基础,这边不会赘述,0基础者可先自学JS 文章目录 官方参考文档 壹--excel表格篇 一.创建新的表格输入内容并保存关闭 ThisWorkbook: Applicatio ...
- 【android逆向笔记】(一)简单登录逆向
简单的登录逆向 因为是简单的学习过程,所以这里直接进行逆向,就不进行android代码的演示了.apk是直接借用了被人写好的app来进行学习的. ###(1)使用APK改之理对apk进行编译. ### ...
- 【Node.js学习笔记一】什么是Node.js?[概念总结]
什么是Node.js? 一个 "编码就绪" 服务器 Node.js是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩 ...
- Android逆向笔记-通过配置文件设置全屏(逆向开发与正向开发)
这里就是最简单的项目: 源码打包下载: https://github.com/fengfanchen/AndroidReverse/tree/master/CrakDemo3 这里首先用逆向改配置文件 ...
- 【tensorflow.js学习笔记(1)】tf.js环境搭建及曲线拟合例子
月初TensorFlow开发者大会上,谷歌正式发布了TensorFlow的JS版本tensorflow.js,并演示了几个很有意思的demo,展现了浏览器环境下也能进行深度学习任务的能力.tensor ...
- 千锋Node.js学习笔记
千锋Node.js学习笔记 文章目录 千锋Node.js学习笔记 写在前面 1. 认识Node.js 2. NVM 3. NPM 4. NRM 5. NPX 6. 模块/包与CommonJS 7. 常 ...
- 遇见 vue.js --------阿文的vue.js学习笔记(4)------模板语法
** 新学习新征程,我们一起踏上学习 vue.js的新长征 遇见 vue.js --------阿文的vue.js学习笔记(1)-----初识vue.js 遇见 vue.js --------阿文的v ...
- node.js学习笔记5——核心模块1
node.js学习笔记5--核心模块1 Node.js核心模块主要内容包括:(1)全局对象 (2)常用工具 (3)事件机制 (4)文件系统访问 (5)HTTP服务器与客户端 一: 全局对象 Node. ...
- Vue.js 学习笔记 二,一些输出指令
Vue的一些输出指令 {{字段}},v-text指令,v-html指令 <html> <head><meta name="viewport" cont ...
最新文章
- 链表的基本操作 java_详细实现单链表的基本操作【Java版】
- vue-router的hash模式和history模式,
- 如何使用 HttpReports 监控 .NET Core 应用程序
- SpringCloud(二) 生产者、消费者工程搭建与调用(下)
- Qemu之CPU mode介绍
- libvirt/qemu特性之快照
- VB在XP/2K 任务管理器的进程列表中隐藏当前进程
- [linux] 查看目录/文件字节数
- mysql建立索引_MySQL 索引及优化实战(一)
- npy文件转换成png
- 个人名片+微信名片二维码 VUE
- 数据结构——图的概述
- vector详解以及一些问题(C++)
- Win10管理员用户被禁用,无法登陆系统
- Istio的Ingress与Egress网关
- 程序员撩妹,你得看我教你的小技巧
- Vue判断IE浏览器版本并提示
- c++和c语言之间有什么区别
- 网友戏说电影公司片头动画
- 容斥定理与鸽巢定理(抽屉定理)