开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 6402|回复: 3
收起左侧

[技术专题] 【JS逆向】房天下登录RSA | 每日JS

[复制链接]
结帖率:100% (4/4)
发表于 2019-12-12 22:49:02 | 显示全部楼层 |阅读模式   安徽省亳州市

简书图片无法加载,看图可以去原帖:

https://www.jianshu.com/p/93a3eacac497

第三天

JavaScript逆向练习3

0x01 目标网址

https://passport.fang.com

0x02 定位JS

1. 随便输入账号密码,点击登录,查看提交的参数

可以看到,在登录包https://passport.fang.com/login.api里有加密过 的pwd参数。

2. Ctrl+Shift+F调出搜索面板,搜索pwd,结果中稍作分析,发现有一个像encrypt样子字眼(看多了就能一眼看出哪些是无关结果了)。

1.png

3. 直接在这里下一个断点,重新输入账号密码验证码,点击登录,JS被断了下来。

2.png

加密函数就在这里了,两个参数,第一个暂时不知道,等下搜搜看,第二个是明文密码。

F11跟进,或者直接搜函数名encryptedString,再或者鼠标悬停在断点处函数名上,点击弹出的内容,也能跳转进去。

加密函数的调用核心就是在这里。

4. 上一步进去之后,发现进入一个RSA.min.js,明显是RSA算法了,代码不长,直接全部拿下。

3.png

5. 这里还差一个参数key_to_encode,在console里搜一下看看。

4.png

一下就看到了,直接把script标签里的东西拿走就完事儿了。

0x03 改写JS

1. 仿照图2的位置,写一个调用函数。

function test(pass) {
    setMaxDigits(129);
    var key_to_encode = new RSAKeyPair("010001", "", "978C0A92D2173439707498F0944AA476B1B62595877DD6FA87F6E2AC6DCB3D0BF0B82857439C99B5091192BC134889DFF60C562EC54EFBA4FF2F9D55ADBCCEA4A2FBA80CB398ED501280A007C83AF30C3D1A142D6133C63012B90AB26AC60C898FB66EDC3192C3EC4FF66925A64003B72496099F4F09A9FB72A2CF9E4D770C41");
    //上面是从script标签里扣的代码,也就是第一个参数的定义
    var p = encryptedString(key_to_encode, pass)//传入明文密码pass
    return p
}

2. 再把扣出来的RSA.js放到上面,完事儿了。

此时就能正常运行了

0x04 Python代码

PS. 其实可以尝试直接调用Python的RSA加密库,如果这个JS没改过,结果应该是能用的(也就是另一个思路:JS功能可以通过所使用的语言直接实现)。

# -*- encoding: utf-8 -*-
'''
@File    :   0x03-passport.fang.com.py
home.php?mod=space&uid=116177    :   2019/12/09 17:25:25
@Author  :   独孤孤独嘟咕噜犊子
home.php?mod=space&uid=59980 :   1.0
home.php?mod=space&uid=95579    :   https://www.jianshu.com/u/6a4c6ef97be7
@Desc    :   房天下登录rsa
'''

# start

import execjs
import requests

# 初始化参数
HEADERS = {
    'User-Agent':
    'Mozilla/5.0 (Linux; Android 8.0; DUK-AL20 Build/HUAWEIDUK-AL20; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/6.2 TBS/044353 Mobile Safari/537.36 MicroMessenger/6.7.3.1360(0x26070333) NetType/WIFI Language/zh_CN Process/tools',
    'Referer': 'https://passport.fang.com/'
}
s = requests.Session()
s.headers.update(HEADERS)
loginURL = 'https://passport.fang.com/login.api'

# 登录参数
username = '15555555555'
password = 'ermao6@qq.com'

# 加载js
with open('js/0x03-passport.fang.com.js') as f:  # 坑0x01 相对路径前面不带/,带/不报错但读不出数据
    jscode = f.read()
ctx = execjs.compile(jscode)  # execjs载入js代码

def login(user, password):
    enPass = ctx.call('test', password)  # 通过call调用js代码里的函数
    data = {
        'uid': username,
        'pwd': enPass,
        'Service': 'soufun-passport-web',
        'AutoLogin': 1
    }
    result = s.post(loginURL, data=data).json()
    print(result)  # {'code': 10000} 登录成功
    return result

if __name__ == "__main__":
    login(username, password)

结帖率:0% (0/1)
发表于 2020-7-11 15:35:08 | 显示全部楼层   河北省承德市
支持原创/。
回复 支持 反对

使用道具 举报

发表于 2020-2-24 20:46:28 | 显示全部楼层   山东省济南市
6666666666
回复 支持 反对

使用道具 举报

结帖率:100% (25/25)

签到天数: 4 天

发表于 2019-12-13 00:03:45 | 显示全部楼层   湖北省武汉市
QQ截图20191212235512.png
QQ截图20191212235927.png
QQ截图20191212235916.png

房天下.txt (12.53 KB, 下载次数: 6)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表