bugku web PHP_encrypt_1(ISCCCTF)
2021-04-17 20:27
标签:temp 加密 opened pwd hot onclick key pre open 这道题没有题目链接。 在题目界面有一个文件,下载下来发现是一段PHP的代码。 没有学过python,但还是尝试写了一下脚本。 得到flag,最后要以Flag:{}的形式提交。 bugku web PHP_encrypt_1(ISCCCTF) 标签:temp 加密 opened pwd hot onclick key pre open 原文地址:https://www.cnblogs.com/truthilia-12580/p/12289211.html 1 php
2 function encrypt($data,$key)
3 {
4 $key = md5(‘ISCC‘);//获得ISCC的md5
5 $x = 0;
6 $len = strlen($data);
7 $klen = strlen($key);
8 for ($i=0; $i 9 if ($x == $klen)
10 {
11 $x = 0;
12 }
13 $char .= $key[$x];
14 $x+=1; //从第0位开始取md5的值放入char,到最后以为则返回开头,char与data长度相等
15 }
16 for ($i=0; $i 17 $str .= chr((ord($data[$i]) + ord($char[$i])) % 128);
18 } //将data第i位与char第i位的ascii值相加取128的余数
19 return base64_encode($str);//str以base64加密
20 }
21 ?>
1 import base64
2 code="fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA="
3 b64d=base64.b64decode(code)
4 blen=len(b64d)
5 md5="729623334f0aa2784a1599fd374c120d"
6 mlen=len(md5)
7 x=0
8 key=""
9 for i in range(0,blen):
10 if x==mlen:
11 x=0
12 key=key+md5[x]
13 x+=1
14 #print(key)
15 pwd=""
16 for i in range(0,blen):
17 temp=b64d[i]-ord(key[i])
18 temp+=128
19 pwd=pwd+chr(temp)
20 print(pwd)
文章标题:bugku web PHP_encrypt_1(ISCCCTF)
文章链接:http://soscw.com/index.php/essay/76117.html