Owaspのやられサイトで勉強してみた。
KBID 1 - Path traversal (LFI)
#やられサイトの構築
requirements.txtでパッケージを一括でインストールする。
$ pip3 install -r requirements.txt
pythonでLFIをたちあげる。
$ python3 LFI.py
#Reconnaissance
Intro, Chapter 1とChapter 2を選択するプルダウンメニューがある。
filename
パラメータはシステム内のファイルからコンテンツを取得するために利用されている。
filename
をユーザーが操作できる状態にあるため、想定外の機密情報を盗まれる可能性がある。
LFI.py
@app.route("/home", methods=['POST'])
def home():
filename = request.form['filename']
if filename == "":
filename = "text/default.txt"
f = open(filename,'r')
read = f.read()
return render_template("index.html",read = read)
#Exploitation
text/default.txtを../../../../../etc/passwdに書き換える。
ペネトレーションテストではLFIの証明によく/etc/passwdを取得しようとする。らしい。