MENU

Catalog

    安全微课自动学习(登录JS脚本解密)

    September 12, 2020 • Read: 4683 • Web

    最近学校要搞新生安全微课,有80节课要完成,如果一个一个看的话大概要三四个小时吧。
    但是作为祖国的花朵,不研究一下怎么能行呢? 安排!

    首先是登录账号
    软件有两种登录模式,一种是二维码登录,一种是账号密码登录,两种模式虽然都能达到想要的结果。
    二维码登录.png
    账号登录.png

    本来是想直接上二维码登录的,简单快速也方便大家使用,但是在抓包的时候这个引起了我的兴趣。
    加密.png
    居然登录有加密,那么就一定要瞧一瞧这个加密是怎么完成的。搜索关键词:“login.do”,看看有没有相关的包。
    这里要提一个事情,chrome的开发者工具在之前是不能全局搜素关键词的,现在居然可以了(或许之前我不知道)。
    搜索login.do.png
    好家伙,就在"app.cb64b205792606ca95b3.js”文件中,而且看样子像是混淆过了。
    那我们就在Sources中根据url目录找到这个文件的地址,然后把每个有关键词的地方都下一个断点。
    然后进入网页中点击登录。
    调试界面1.png
    进入上一层后
    调试界面2.png
    既然看不出来加密位数,但是由于看到他有一个 alloc(16),所以猜测他密码是16位,数据块是128位。
    我们来到网站上按照猜测解密试试看,首先复制提交的加密数据,然后再把“-”和“_”进行替换,提交到网站上
    AES解密.png
    果然成功了。

    文章里看起来似乎很简单,但其实我经过了长时间的尝试,其实如果不是要研究的话,可以考虑直接把整个加密的js拉下来,然后和网页中的代码一样调用。

    还有就是,我使用的在线AES加密网站,设置128位后,如果密码不到16位,就会用00进行填充,这是我尝试得出的,而且网站实际上也是用00进行填充的。

    文章到这里就结束了,本来是想记录全过程的,但是实在是太复杂就懒得写了,这里算是最难的一个点吧,其他地方都是繁琐。

    不过还有一些我自己遇到的坑想提一下。
    关于这个验证码系统,我刚开始以为所有的时间戳都是随机生成的,没有什么实质性的作用。结果这个猜测导致了验证一直不通过。直到后来才发现原来,验证码访问传入的时间戳和登录传入的时间戳要一样,而且验证码生成的网址的时间戳如果不传入就直接报错了。所以我这里猜测了一下,结果发现了一个不太算是漏洞的漏洞,也就是验证码如果不重新访问,就可以一直用同一个验证码进行访问。也就是这个验证码就是摆设。
    关于AES加密,我现在还是不太了解,只是大概知道这个是一个对称加密方式。
    有括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB。这些加密模式,其中ECB是不用提供偏移量的,其他都是需要。
    其中CBC模式中还存在着随机的字符,也就是同一个秘钥,同一个加密内容,生成的内容会不一样。

    目前是网络空间安全专业,如果有机会,还蛮想学习一下这些加密方式的原理的(虽然不一定能懂)。

    另附我写的程序,源码就不放了,C#写的没加壳就和开源差不多。

    一分钟完成新生安全微课攻略

    Last Modified: November 6, 2020
    Archives QR Code
    QR Code for this page
    Tipping QR Code
    Leave a Comment

    3 Comments
    1. 南某人 南某人

      大佬,能不能更新一波,貌似不能用了,感激不尽

    2. nb

    3. 魔王的骑士 魔王的骑士

      今年的貌似是64个课和考试,挺恶心的