大家好,欢迎来到IT知识分享网。
JS逆向之RSA(一)
难度: ⭐️
网站:https://beijing.tuitui99.com/denglu.html
介绍:表单提交的RSA,很简单
开始
首先确定我们想要逆向的值
可以看到是个表单提交
直接定位到表单提交触发的方法
全局搜一下
加密的地方很明显了
然后发现进了加密的库文件里,上下滑滑发现是RSA
那就很好办了,我们直接复制这个文件出来就可以了,而且很贴心的把我们把这个对象导出来了
但是我们知道RSA是有公钥的,那么我们找找设置公钥的地方,发现直接定位到了
好了已经没有难度了,重新提交一下,就可以拿到公钥了
那么我们就可以写出加密的方法
function encrypt() {
var encrypt = new JSEncrypt();
public_key = "-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAbfx4VggVVpcfCjzQ+nEiJ2DLnRg3e2QdDf/m/qMvtqXi4xhwvbpHfaX46CzQznU8l9NJtF28pTSZSKnE/791MJfVnucVcJcxRAEcpPprb8X3hfdxKEEYjOPAuVseewmO5cM+x7zi9FWbZ89uOp5sxjMnlVjDaIczKTRx+7vn2wIDAQAB-----END PUBLIC KEY-----";
encrypt.setPublicKey(public_key);
var encrypted = encrypt.encrypt("123456");
return encrypted;
}
看下结果,成功~
注意点
要注意公钥不一定是不变的,对于服务端渲染来说这个值可能是动态的,这种情况下就不能写死了,要通过xpath提取出来
另一种导出方式
在这个例子中对于加密的函数我们是不需要做操作的,文件里已经导出了
那么如果我们想自己导出呢,可以这样子
首先是定位到我们要导出的函数
翻到最下面加上jiami = JSEncrypt;
手动导出
修改一下我们写的加密方法
function encrypt() {
var encrypt = new jiami();
public_key = "-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAbfx4VggVVpcfCjzQ+nEiJ2DLnRg3e2QdDf/m/qMvtqXi4xhwvbpHfaX46CzQznU8l9NJtF28pTSZSKnE/791MJfVnucVcJcxRAEcpPprb8X3hfdxKEEYjOPAuVseewmO5cM+x7zi9FWbZ89uOp5sxjMnlVjDaIczKTRx+7vn2wIDAQAB-----END PUBLIC KEY-----";
encrypt.setPublicKey(public_key);
var encrypted = encrypt.encrypt("123456");
return encrypted;
}
调用,没有问题~
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15430.html