14、4399网页Post登陆AES算法分析【Post/Js逆向笔记】

发布文章内容,只为自己自学逆向分析做一个记录,方便以后加以巩固学习逆向分析。
本人为逆向学习小白,所以发布的内容都是简单的逆向分析。大佬请高抬贵手!

 1、分析的登陆网站地址

http://www.4399.com/

2、使用工具

chrome浏览器
鬼鬼调试工具

3、Post抓包登陆分析

测试账号 Steven2020   测试密码  a123456

post请求数据

loginFrom: uframe
postLoginHandler: default
layoutSelfAdapting: true
externalLogin: qq
displayMode: popup
layout: vertical
appId: www_home
gameId: 
css: 
redirectUrl: 
sessionId: 
mainDivId: popup_login_div
includeFcmInfo: false
level: 0
regLevel: 4
userNameLabel: 4399用户名
userNameTip: 请输入4399用户名
welcomeTip: 欢迎回到4399
sec: 1
password: U2FsdGVkX19YFAsLRgevHGPDmepyljKyqx7DCR3LGFs=
username: Steven2020

多次抓包可以发现,只有password 加密,其余的可以固定

4、password解密

 

 打开开发者工具,全局搜索 password  搜索到很多的包含password的js文件;

通过一个个的排查,发现,定义password或者使用的password的地方都没有加密的代码出现;

再一次观察发现一个点,在请求登陆的后,会有一个 cryptojs-aes.js  文件出现,明显可以看到是 AES的加密;

那么换一种方式去搜索,搜索  encryptAES   或者 AES 等关键词,最终在  validation.js 中找到  加密的点

怪不得搜搜不到,_psdv  才是最终的password的变量;然后进入 encryptAES 函数 

发现这个是定义的地方,接着  进入 CryptoJS.AES.encrypt 中;

可以看到 整个文件名 为cryptojs-aes.js   那么整体的文件都是和AES 有关的;

偷个懒,就不去分析AES里面的 是什么加密模式 和  IV的偏移 了;

直接全部复制到调试工具中,然后 把原先 定义encryptAES  函数的也扣过来;

调试测试  返回数据为 U2FsdGVkX18xgeNVkSQZKifFRzoHpOKkxVx5Zp9iktE=

数据一致,齐活!

然后在易语言中调试测试

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Kotlin/JS中,可以使用JavaScript的原生XMLHttpRequest对象来发送GET和POST请求。以下是一个简单的示例: 首先,需要在Gradle中添加以下依赖: ```groovy implementation 'org.jetbrains.kotlin:kotlin-stdlib-js' ``` 然后,可以编写一个包含发送GET和POST请求的类: ```kotlin import org.w3c.xhr.XMLHttpRequest import kotlin.js.json class Http { companion object { fun get(url: String, callback: (String) -> Unit) { val xhr = XMLHttpRequest() xhr.open("GET", url) xhr.onload = { if (xhr.status == 200.toShort()) { callback(xhr.responseText) } else { // handle error } } xhr.send() } fun post(url: String, data: Map<String, String>, callback: (String) -> Unit) { val xhr = XMLHttpRequest() xhr.open("POST", url) xhr.setRequestHeader("Content-Type", "application/json") xhr.onload = { if (xhr.status == 200.toShort()) { callback(xhr.responseText) } else { // handle error } } xhr.send(JSON.stringify(data)) } } } ``` 这个类包含两个静态方法:`get`和`post`。这些方法接受一个URL和一个回调函数。在回调函数中,可以处理服务器响应。 要发送GET请求,可以使用以下代码: ```kotlin Http.get("https://example.com/api/data", { response -> console.log(response) }) ``` 要发送POST请求,可以使用以下代码: ```kotlin val data = mapOf("name" to "John", "age" to "30") Http.post("https://example.com/api/data", data, { response -> console.log(response) }) ``` 在这个示例中,POST请求发送了一个包含"name"和"age"字段的JSON对象。服务器可以使用这些值来处理请求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值