码迷,mamicode.com
首页 > Web开发 > 详细

bugku web PHP_encrypt_1(ISCCCTF)

时间:2020-02-09 23:43:15      阅读:108      评论:0      收藏:0      [点我收藏+]

标签: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 < $len; $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 < $len; $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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!