python之js破解qq邮箱登录

本文详细介绍了如何使用Python解析并破解QQ邮箱登录过程中JS加密密码的方法,包括找到js文件,分析pt.plogin.salt,理解h函数,修改js文件使其独立运行,拼接登录参数,以及处理btoa加密问题。整个过程通过监听事件、调试js代码和自定义Python函数实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  1. 请勿用于商业用途,仅供学习
  2. 该登录方式为账号-密码登录,只能登录经常登录的账号,登录他人账号,只能进行扫码
  3. 感谢这个博客的帮助 https://blog.csdn.net/illbehere/article/details/53262033
  4. qq邮箱登录地址

正文

1 找到js文件,打断点

在这里插入图片描述
输入账号和错误的密码,可以看到有两个请求,一个check,一个login。check会根据账号返回一些参数,这些参数会使用在login里。
在这里插入图片描述
采用xhr的方式寻找js文件,你会发现然并卵,不会有断点停住的。
正确的寻找js文件,是监听登录按钮的点击事件。
在这里插入图片描述
一步一步往下执行的结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个i.p就是login登录里面的参数p,也就是加密后的密码,是重点要破解获取的。
在这里插入图片描述

2 寻找pt.plogin.salt

分析这个函数的参数

i.p = $.Encryption.getEncryption(n, pt.plogin.salt, i.verifycode, pt.plogin.armSafeEdit.isSafe)

n:是密码明文
pt.plogin.salt:暂时不明是个啥
i.verifycode:是check返回的参数之一
pt.plogin.armSafeEdit.isSafe:无意义,undefined

pt.plogin.salt全局搜索一下,可以看到调用了uin2hex的函数,参数是不带@qq.com的账号。跟进去,可以看到该函数的具体实现。
在这里插入图片描述
在这里插入图片描述
可以试验一下,这个函数是否正确,使用Snippets,查看控制台输入是否跟断点显示的一样。
在这里插入图片描述

3 分析h函数

所需参数分析完了,进入getEncryption函数,可以看到h函数,h函数是加密密码的主函数
在这里插入图片描述
主函数里面有各种函数的调用栈,非常复杂繁琐,一层跟进又一层,我原本尝试着一层一层跟进去,取出里面所涉及到的方法,后来分析到rsa_encrypt这个函数,彻底放弃了,方法太多,我取函数名都取得晕晕的,担心函数撞名,毕竟人家混淆后用abcd来命名,我们跟着这么命名会重复的,而且万一哪里出错了,你还得一个一个去核对函数是否正确。最后我发现所有涉及的函数都在c_login_2.js里面,所以我全部复制黏贴了,放到了sublime里面去查看
在这里插入图片描述
放到sublime里面一看,有4653行,还好不算很多。里面有很多方式是用不到的,所以接下来我们要取出主要涉及登录的函数部分。
首先 根据 function h(e, i, n, o),判断包含这个函数的函数是需要的,往上翻,可以看到h函数是存在$.Encryption = $pt.Encryption = function() 这里的,然后把这个函数全部复制黏贴下来。
在这里插入图片描述
然后看看h函数里面有涉及到哪些函数。仔细分析下h函数,看红色框框,凡是这种t,g,r这样的,都是跟h函数是同一个函数体下面的,刚刚已经复制黏贴了,不用管了。看看蓝色框框,有个TEA,不知道是哪个啥,全局搜索找到TEA的函数体,然后复制黏贴下来。之后同理找到黄色框框RSA涉及到的函数体。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找到之后,复制黏贴发现才1000行,之后我们要保证,这些js代码,能够脱离单独运行。在一个新的窗口打开,新建一个snippet文件。不要在qq邮箱登录地址的窗口打开,因为它的js文件已经加载了,你运行js代码,是不会报任何错的。
在这里插入图片描述
接下来就进行js文件修改,让它可以脱离原本的js文件加载运行起来。

4 修改js文件

前面有个uin2hex的函数,这个函数也复制进去,我们要获取salt,然后调用h函数看看,会不会报什么错。
在这里插入图片描述
4.1 $pt is not defined
$pt我觉得只是一个指明,代号这样的,完全可以删除,把所有涉及到的 $pt.XX全部删掉,涉及到 $pt的调用,改为 $.xx的调用,比如 var h = $.RSA.rsa_encrypt(g(u + c));改完之后再运行,控制台输入了一串
在这里插入图片描述
把这个复制黏贴,跟抓包里面的p比一下长度,发现是一模一样的,而且我们基本没有改动关键代码,我们有理由相信,这个就是我们要的加密后的密码。之后我们放进python中,看能不能直接调用这个js。在js里面写个函数getPassword,写个py文件调用这个函数,看打印效果。

function getPassword() {
   
    var n = "qerewtwret123214"
    var salt = getSalt(123456789)
    var verticode = "!C90"
    var safe = undefined
    return $.Encryption.getEncryption(n, salt,verticode , safe)
}
经常有人加我,问我怎么破解邮箱密码,开始的时候我还乐意回答,但是多了就会觉得不耐烦了,现在做一个教程让大家知道如何破解邮箱密码.. (现在做这个教程,只是为了让大家了解一下破解邮箱的原理以及操作,希望大家可以尊重下我,别加我Q之后叫我破这个破那个..说得不客气一点,我不会帮你破!)大家按照这个思路想下去吧! 废话少说:下面开始! 要准备的工具有 1:远程控制软件 2:键盘-记录 (包括远程-键盘-记录,在线-键盘-记录,离线-键盘-记录)这个要看在什么的情况下使用,具体操作请看下面 首先我们要找到需要破解的对象,为了节省时间,我一早已经准备好所需要破解的人了!(捉人方法自己在baidu找,其实我建议是google.com里找,呵呵,我对百度有点意见,这个度娘,69的时候做得太过份了. 开始吧! 首先打开对方的屏幕, 因为我这鸡的关系不一般,为了节省时间,我就直接叫他打开邮箱吧, 我直接用在线键盘记录记录密码就行了..(或者你会问 如果我要破解邮箱密码的话需要等到什么时候啊? (上面我已经介绍了远程-键盘-记录,在线-键盘记录,离线-键盘记录 3个记录记录方法,其他自己在google.com找答案) 然后打开在线键盘记录,- 大家请留意键盘记录 好了密码出来了... 帐号是:fanheizhongxin@***.com 密码是:****** 现在我们登陆一下 ....................好了成功登陆了!! 好了相信大家都已经了解了如何破解一个邮箱密码了..自己按照这个思路吧! 送你们几个搜索关键字方便大家查找. 远程控制软件 远程-键盘-记录 离线-键盘-记录 好了教程就到这里,下回见 更见教程请到我们的网站 88 教程下载地址:http://www.9742292.com/?product/all/1276514790.html
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值