Skip to content

Pwnable.kr crypto1

复制本地路径 | 在线编辑

源代码

源代码不写了。流程就是客户端用户首先输入 idpassword ,而且客户端存有一个我们不可见的 cookie ,客户端会以 id-password-cookie 这样方式将三者组合起来,进行 AES 加密。然后服务端解密,得到 idpasswordcookie ,最后判断 id==admin 以及 password==id+cookie ,成功就会通过。

流程分析

首先分析加密算法是否有问题,没有问题,使用了官方包。我们必须要知道 cookie 是多少,才能通过检测,但我们没有漏洞点找到 cookie 的值。然而很遗憾,程序的多次一举让它有了漏洞。多此一举在于它把 id-password-cookie 这种方式进行组合。

首先两个前提要知道:第一, AES 加密是通过 16 字节一段一段进行加密。第二,加密内容我们是可以知道的。这是肯定的,要是连加密内容都不能截获(本题是直接打印告诉我们了),那还谈什么破解啊。

想象一下,我们首先输入 id='-'*13 以及 pwd=NULL ,那么 AES 会先加密 '-'*15 + cookie[0] 这一段,我们获取加密的内容。

下面进行爆破,现在输入 id='-'*15 + obj ,其中 obj 就是我们爆破的字符,此时 AES 会加密 '-'*15 + obj 这一段,我们也可以获取这一段加密后的内容。然后两个比较即可,如果不一样,那就换字符,如果一样,那么 cookie[0] 就是当前这个字符了,其余字符同理。

总结知识