-
-
[原创]CTF2019Q2第六题:消失的岛屿
-
2019-6-11 14:23 2157
-
这个程序把输入的序列号跟个性化base64编码后又加密处理的字符串!NGV%,$h1f4S3%2P(hkQ94==
比较,相同才是正确的序列号。
根据加密代码,写出一个解密的代码
#include <stdio.h> int main() { int i; for(i='A';i<='Z';i++) printf("%c",0x9b-i); for(i='a';i<='z';i++) printf("%c",i-0x40); for(i=0x30;i<=0x39;i++) printf("%c",i+'2'); printf("wy\n"); return 0; }
加密前后的64个字符
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
ZYXWVUTSRQPONMLKJIHGFEDCBA!"#$%&'()*+,-./0123456789:bcdefghijkwy
解密!NGV%,$h1f4S3%2P(hkQ94
得到aMTEeld6q4tHserKh69Jyt
#include <stdio.h> #include <string.h> int main() { char enc[25]="aMTEeld6q4tHserKh69Jyt"; char b64m[65]="tuvwxTUlmnopqrs7YZabcdefghij8yz0123456VWXkABCDEFGHIJKLMNOPQRS9+/"; char b64[65]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; int i, j; for(i=0;i<=22;i++) { for(j=0;j<=64;j++) { if(enc[i]==b64m[j]) { printf("%c",b64[j]); j = 80; } } } printf("==\n"); return 0; }
获取其标准base64编码,得到S2FuWHVlMjAxOWN0Zl9zdA==
执行下面的命令,获得序列号
$ echo S2FuWHVlMjAxOWN0Zl9zdA== | base64 -d KanXue2019ctf_st$
[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。
赞赏
他的文章
看原图