攻防世界php2_攻防世界-web2
實驗準備:
firefox瀏覽器、php執行環境(比如phpstudy)
打開實驗:
代碼分析:
$_o=strrev($str);? 對$str字符串進行 字符反轉(比如 abc = cba)
第二部分 for{……} 就是對 $str字符串 每個字符+1,(如:a=b、c=d)
return?str_rot13(strrev(base64_encode($_)));? 括號具有優先級,里面優先級最高,所以,按順序:base64_encode 先對 for循環后的字符串 進行base64
加密,strrev 對字符串進行反轉,str_rot13 對字符串進行ROT13編碼,return 返回值為:$miwen
編寫解密代碼:定義一個decode方法,依次對字符串進行 ROT13解碼 -> 字符串反轉 -> base64解密 -> for{……} 每個字符減一 -> 字符串反轉 -> 輸出flag
$str = ‘a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws‘;
function decode($str){
$_o = base64_decode(strrev(str_rot13($str)));
for($_0=0;$_0
$_c=substr($_o,$_0,1);
$__=ord($_c)-1;
$_c=chr($__);
$_=$_.$_c;
}
return strrev($_);
}
echo decode($str);
?>
執行PHP文件需要打開apache服務(我用的是PhpStudy),當然思路清楚了,用python等其他語言寫也ok。
總結
以上是生活随笔為你收集整理的攻防世界php2_攻防世界-web2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rpython求随机数代码4段5个字符_
- 下一篇: jni java_JNI 常见用法