GXYCTF2019 禁止套娃 WP

2021-10-23 10:10:08 字數 1878 閱讀 1616

用githack.py跑一下得到原始碼index.php

<?php 

include

"flag.php"

;echo

"flag在**呢?";

if(isset

($_get

['exp'])

)else

}else

}else

}// highlight_file(__file__);

?>

其中有三個過濾,第乙個過濾了常見的php偽協議。

第二個這種正則,就是我們說的無引數函式的校驗。

比如:a(b());可以通過校驗

但是a(b(『exp』)); b函式中帶了引數,那麼就不能通過這個正則。

第三個過濾就是不能用帶有這些片語的函式了。

scandir()函式可以掃瞄當前目錄下的檔案

<?php 

print_r

(scandir

('.'))

;?>

可以本地實驗一下。但是scandir中的.引數是題目不允許的。於是用getcwd()獲得當前目錄,scandir(getcwd())可以獲得當前目錄檔案。如果要獲得上層目錄可以用dirname(),使用scandir(dirname(getcwd()))。但是et被過濾,必須找別的辦法。

current(localeconv())的返回值是個.

然後通過運算元組的方法,next() 將內部指標指向陣列中的下乙個元素並輸出

next(array_reverse(scandir(pos(localeconv())))) 就得到了 flag.php

et被ban了,所以不能使用file_get_contents(),但是可以可以使用readfile()或highlight_file()以及其別名函式show_source()

))))

));

view-source:

)))))))

;

session_id(session_start())

使用session之前需要通過session_start()告訴php使用session,php預設是不主動使用session的。

session_id()可以獲取到當前的session id。

參考:

GXYCTF2019 禁止套娃

剛開始不知道幹嘛,就註冊做題思路,掃目錄,抓包,都沒上面思路,後面嘗試了下,git 洩露用githack掃一下 githack.py得到index.php include flag.php echo flag在 呢?if isset get exp else else else highlight ...

刷題 GXYCTF2019 禁止套娃

開啟 發現很簡單,只有flag在 的字樣。檢視原始碼,常用後台目錄,robots.txt,都未發現有任何東西。直接拉進掃瞄器一掃,發現 思考可能是git原始碼洩露,可能可以恢復原始碼。github上有很多優秀的git恢復工具。在這裡推薦兩款 git extract 和githack。都支援diffe...

GXYCTF2019 禁止套娃 無引數RCE

復現一下buuctf上的 gxyctf2019 禁止套娃 buuctf增設了waf 所以fuzz都不能用了.git洩露,不知道為啥我的githack掃不到呢?頭大 echo flag在 呢?if isset get exp else else else highlight file file 先熟悉...