成理信安協會部分PHP偽協議題目
阿新 • • 發佈:2020-10-11
PHP偽協議,是簡單而又重要的知識點。這裡奉上幾道協會裡的出的PHP偽協議題目,加深一下印象。
BACK DOOR
上原始碼
<?php if(isset($_GET['show_source'])) highlight_file(__file__); $sandbox = 'sandbox/'.md5($_SERVER['REMOTE_ADDR']).'/'; @mkdir($sandbox); chdir($sandbox); $filename =@$_POST['filename'] ?: ""; $code = @$_POST['code'] ?: ""; $code = "<?php die('嘿嘿嘿,我就喜歡你看不慣但又幹不掉我的樣子');?>".$code; // I added it if($filename) { if(file_put_contents($filename, $code)) { echo $sandbox.$filename; } }
程式碼審計
- POST傳filename和code,然後就會寫入。但是很煩的是你要傳的code前面要被加個,在執行你的一句話之前就結束了。
- 所以主要是兩個考點,一個是用PHP偽協議把一句話寫進去,另一個是把如何繞過die()這個函式。
這裡直接奉上p神的部落格,仔細讀讀就都懂了。
https://www.leavesongs.com/PENETRATION/php-filter-magic.html#_1