1. 程式人生 > >過狗一句話(bugku)

過狗一句話(bugku)

       昨天寫了個關於一句話木馬的題,今天上午百度了一個上午理解一句話木馬,感jio還是有點懵逼,於是想寫一下題來理解一下下……不過雖然這道題題目叫過狗一句話,但似乎跟我想象的不大一樣emmmmm

----------------------------------------------------------不廢話不廢話----------------------我是分割線分割線-----------------------------------------

題目中給了一小段php程式碼:

然後我經歷了點開題目連結、檢視原始碼、掃描目錄後也並沒有發現其他的hint,於是……老老實實分析這段程式碼:

這裡explode函式把字串poc按#分隔開並映到poc_1陣列中去;

然後poc_2再把他們連線起來,總的來說就是把poc中的#去掉,變成一個新的字串賦值給poc_2;

可以看出,poc_2是assert,然後我們來看最後一句話,它現在變成了一個函式,即:

    assert($_GET['s'])

而assert函式功能跟eval類似,可以把裡面的內容當作程式碼來執行,考慮掃描目錄下的檔案,構造payload:

?s=print_r(scandir('./'));可以把當前目錄下的檔案或者目錄以陣列的形式顯示出來;

其中123.php、index.php、test.php都是用御劍掃描出來過並沒有發現什麼東西的,但是有一個十分可疑的f14g.txt,於是訪問:得到flag: