bugku web PHP_encrypt_1(ISCCCTF)

2021-04-17 20:27

阅读:628

标签:temp   加密   opened   pwd   hot   onclick   key   pre   open   

这道题没有题目链接。

在题目界面有一个文件,下载下来发现是一段PHP的代码。

技术图片技术图片
  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 ?>
View Code

没有学过python,但还是尝试写了一下脚本。

技术图片技术图片
  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)
View Code

得到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


评论


亲,登录后才可以留言!