攻防世界xctf writeup ics 07

2021-10-05 06:53:40 字數 2683 閱讀 3629

審計**

瀏覽頁面 發現了view-source鏈結 ,接下來審計**

if(!

isset

($_get

[page]))

if(isset

($_get

[page])&&

$_get

[page]

!='index.php'

)else

?>

關鍵**

if (isset($_get[id]) && floatval($_get[id]) !== '1' && substr($_get[id], -1) === '9')***floatval***函式:獲取出引數的浮點數形式

<?php 

$var

='122.34343the'

;$float_value_of_var

= floatval (

$var);

print

$float_value_of_var

;// 列印出 122.34343

?>

substr函式substr ( stringstr

ing『

,int

『string` , int `

string

『,in

t『start[, int$length] ) : string

$rest

=substr

("abcdef",-

1);// 返回 "f"

php弱型別===比較兩個變數的值和型別;==比較兩個變數的值,不比較資料型別

<?phpif (

isset

($_get

[id])&&

floatval

($_get

[id]

)!==

'1'&&

substr

($_get

[id],-

1)==='9'

)elseif(

!$result

)die("

something wae wrong ! ")

;if($result

)?>

***所以可以構建payload如下:***:

id=1' -- +9

其實只要1和9之間是任何字元都可

mysql_real_escape_string ( stringune

scap

edst

ring

『[,r

esou

rce『

unescaped_string` [, resource `

unesca

peds

​tri

ng『[

,res

ourc

e『link_identifier= null ] ) : string

本函式將unescaped_string中的特殊字元轉義,並計及連線的當前字符集

上面構造了id已經獲取了admin許可權

審計寫入檔案**

<?phpif (

$_session

['admin'])

else

}?>

此處關鍵的是如何繞過正規表示式

if(preg_match('/.+\.ph(p[3457]?|t|tml)$/i', $filename)

以上匹配的是:php php3 php4 php5 php7 phpt phptml

繞過方法有:filename.php/.../filename.php/.

原因是:檔名中不允許帶有/ 因為/表示目錄的分割符 在php中,如果儲存的檔案中含有/ 會自動省略/後面的內容,/後面的.是為了達到匹配最後乙個.的效果,

前者直接在/uploaded/backup/檔案下 ,後者則是直接繞過了chdir函式

檔案在/uploaded/

構造最後的payload

下可以看到構造的檔案

菜刀連線的到webshell

攻防世界mfw 攻防世界 Web mfw

題目資訊 image.png 工具 githack,dirsearch 知識點 git漏洞 審計 開啟題目場景,檢查 發現這樣乙個頁面 image.png 訪問.git目錄,疑似存在git原始碼洩露 image.png 再用dirsearch掃瞄,發現git原始碼洩露 使用 githack獲取原始碼...

攻防世界Web lottery

開心!雖然第一次遇到git原始碼洩露寫了好久,但是寫出來了就很開心 開啟介面我們知道,要拿到flag,就要贏到足夠的錢,其實一開始我以為可以找到乙個地方直接修改餘額什麼的,把網頁源 中的檔案看了幾個都沒發現突破口 然後又沒思路了 嘗試了一下robots.txt,想看看有沒有什麼檔案,然後發現了 瞬間...

攻防世界 xctf Guess writeup

本題的解析官網上有,這裡是乙個自動化的指令碼,完成的是自動上傳乙個ant.jpg的檔案 ant.jpg是乙個ant.zip壓縮包重新命名的檔案,裡面是乙個ant.php的一句話木馬 執行返回的是在web後台這個檔案重新命名後的檔案的url。可通過zip偽協議訪問這個木馬。指令碼如下 import r...