前言
本日進度:
Lab-login
題目很好心把他會查詢的指令列出來了,可以發現他都有用 ()
包起來,所以截斷的時候要注意要把 )
也帶上,就能順利
Injection 了。
Image
Image
Dig Arguments
他有提供網站的原始碼,是用 flask 建的,下面這個是主要邏輯
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| @app.route("/", methods=["GET", "POST"]) def dig(): dig_result = None if request.args.get("debug"): return send_file(__name__ + ".py") if request.method == "POST": hostname1 = request.form["hostname1"] hostname2 = request.form["hostname2"] process = subprocess.Popen( ["dig", hostname1, hostname2], stdout=subprocess.PIPE, stderr=subprocess.PIPE, ) output, _ = process.communicate() dig_result = output.decode()
return render_template("index.html", request=request, dig_result=dig_result)
|
["dig", hostname1, hostname2]
這樣的寫法會讓我們打算
injection
講師給了一個 酷酷網站
,可以查到很多利用一些本來應該不是用來讀檔或執行指令的
的指令來 bypass 的方法,就找到了這個東東,按照這個方法就可以讀到 flag
了。
Image
Image
參考資料