• 當前位置:首頁 > IT技術 > 編程語言 > 正文

    pythonSSTI(0)
    2022-04-29 13:56:58

    這些寫的很好了,懶得自己寫了,就看吧

    https://blog.csdn.net/weixin_41603028/article/details/107865253

    https://www.cnblogs.com/hackxf/p/10480071.html

    "模板"初步

    PHP中很少有模板

    在之前PHP的學習中,很少遇到模板的概念,因為PHP是一個腳本語言,可以寫在HTML里,對于html需要和后端交互的內容直接處理。

    比如這樣:

    對于前端表單上傳的文件,底下的PHP腳本直接對其進行處理(并可能進行存儲)。

    python模板(以flask為例)

    但是python就不一樣了,它不能寫在html中。要通過python web制造交互效果,一般是通過模板框架)實現。python框架一般是一個庫,可以從前端表單中接收處理數據,并且通過調用函數對前端進行渲染。相應的,在前端的html中,需要使用一些控制語句,功能語句來支持渲染。

    像這樣:

    有很多顯眼的控制語句;【{% xxxx %}】

    這里面也有功能語句,img src里的{{ url_for('static',filename='img/cover.jpeg') }}" 這個就是。url_for是一個python_flask里的函數;具體以后再講。

    Python_flask初步

    一個樣例

    給出一個最基礎的、安全的flask小程序。

    app.run()運行該web項目;參數可以填套接字;如果不填,默認127.0.0.1:5000.

    再次強調,如果要出網(你有一個公網ip),記得不要填公網ip,而是填本地任意地址0.0.0.0 。

    app是一個裝飾器;@app.route('xxx')后一定要跟一個函數,它的作用是將函數內容和參數url綁定。裝飾器 可以理解為 裝飾某個url對應的網頁。它必須有返回值,必須為一個渲染的模板 或 字符串。

    render_template系列函數負責具體的渲染。小程序中的render_template_string直接使用字符串template渲染網頁根目錄【/】,并且將用戶可控的參數在函數中傳入。如果我們不是把要渲染的東西寫在一個python字符串中,而是將其寫成了單獨的帶控制、功能語句的html,那么,我們就要使用render_template函數。像這樣:

    return render_template('search.html', genres = genres)
    

    獲取參數

    python_flask提供三類參數獲取方法:

    request.form,request.args,request.value

    查閱資料時,許多內容的經常提到“表單”這個詞;但我覺得他們說得“表單”的定義非常模糊,此處反而不利于區分這些方法。

    我先將他們與PHP中的全局變量對應理解:

    request.args.get('xxx')====>$_GET['xxx']

    request.form.get('xxx')====>$_POST['xxx']

    request.value.get('xxx')====>$_REQUEST['xxx']

    SSTI漏洞

    給出一個基礎的,不安全的flask小程序:

    from flask import Flask,request,render_template_string
    
    app=Flask(__name__)
    
    @app.route('/',methods={"POST","GET"})
    def hello_world():
        person='who?'
        if request.values.get("name"):
            person=request.values.get("name")
        template='<h1>Hi, %s</h1>' %person
        return render_template_string(template)
    
    if __name__=='__main__':
        app.run()
    

    用格式化字符串拼接參數的后果就是,用戶可以通過輸入{{}}進行命令執行。

    本文摘自 :https://www.cnblogs.com/

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码