用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 先熟悉...