1. 程式人生 > 實用技巧 >攻防世界-web2

攻防世界-web2

實驗準備:

firefox瀏覽器、php執行環境(比如phpstudy)

開啟實驗:

程式碼分析:

  • $_o=strrev($str); 對$str字串進行 字元反轉(比如 abc = cba)
  • 第二部分 for{……} 就是對 $str字串 每個字元+1,(如:a=b、c=d)
  • returnstr_rot13(strrev(base64_encode($_))); 括號具有優先順序,裡面優先順序最高,所以,按順序:base64_encode 先對 for迴圈後的字串 進行base64

加密,strrev 對字串進行反轉,str_rot13 對字串進行ROT13編碼,return 返回值為:$miwen

編寫解密程式碼:定義一個decode方法,依次對字串進行 ROT13解碼 -> 字串反轉 -> base64解密 -> for{……} 每個字元減一 -> 字串反轉 -> 輸出flag

<?php
$str = 'a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws';
function decode($str){
$_o = base64_decode(strrev(str_rot13($str)));
for($_0=0;$_0<strlen($_o);$_0++){


$_c=substr($_o,$_0,1);
$__=ord($_c)-1;
$_c=chr($__);
$_=$_.$_c;
}
return strrev($_);
}
echo decode($str);
?>

執行PHP檔案需要開啟apache服務(我用的是PhpStudy),當然思路清楚了,用python等其他語言寫也ok。