天天看點

WebGoat--general+Access Control Flaws

WebGoat是基于WEB實驗漏洞的Java靶場程式,跨站點腳本攻擊(XSS),通路控制,線程安全,操作隐藏字段,操縱參數,弱會話cookie,SQL盲注,數字型SQL注入,字元串型SQL注入,web服務、Open Authentication失效,危險的HTML注釋等

0xx1 General

  1. HTTP相應

主要是了解HTTP送出,輸入框輸入之後點選送出就行

  1. HTTP拆分
    1. 判斷,重定向裡邊的Location參數恰好是送出的參數chinese,這樣,就存在HTTP應答拆分的可能
WebGoat--general+Access Control Flaws
    1. 在http://yehg.net/encoding/進行URL編碼,将URL編碼後送出

               China

              Content-Length: 0

               HTTP/1.1 200 OK

              Content-Type: application/x-www-form-urlencoded

              Content-Length: 47

              <html>Gogoing</html>

URL編碼為:

China%0AContent-Length%3A%200%0A%0AHTTP%2F1.1%20200%20OK%0AContent-Type%3A%20application%2Fx-www-form-urlencoded%0AContent-Length%3A%2047%0A%3Chtml%3EGogoing%3C%2Fhtml%3E%0A

如果某行的内容是Content-Length:0,則浏覽器響應隊列會認為這個響應已經結束.浏覽器向重定向位址發送請求後會把Content-Length:0之後的内容當成下一個響應,進而顯示<html>Gogoing</html>頁面内容

  1. 在這個基礎上可以改進攻擊方式讓它更有威脅.在構造的請求中加入Last-modify字段,并設定一個将來的值比如2020年1月1日.意思是伺服器告訴浏覽器,這個網頁最後一次修改是在2020年1月1日.如果浏覽器不清除緩存,下一次請求這個頁面會加上if-modify-since字段,值是2020年1月1日,也就是說浏覽器會問伺服器,這個網頁在2020年1月1日之後修改過嘛?當然伺服器是人的話肯定會對這個問法莫名其妙,怎麼會傳過來一個未來的值?但是因為是程式,伺服器會比對最後一次修改時間和傳過來的時間,發現傳過來的時間較新,就會回送304即Not Modified,表示這個網頁沒有被修改過.浏覽器接受到了這個響應會從本地緩存讀取網頁,當然是之前注入的錯誤網頁.如果浏覽器不清除緩存,再也别想讀取到正确的網頁資訊了.這就是HTTP的Cache Poisoning(緩存毒化)。
  2. china

    Content-Length: 0

    HTTP/1.1 200 OK

    Content-Type: application/x-www-form-urlencoded

    Last-Modified: Mon, 27 Oct 2222 14:50:18 GMT

    Content-Length: 47

    URL編碼:

    china%0AContent-Length%3A%200%0A%0AHTTP%2F1.1%20200%20OK%0AContent-Type%3A%20application%2Fx-www-form-urlencoded%0ALast-Modified%3A%20Mon%2C%2027%20Oct%202222%2014%3A50%3A18%20GMT%0AContent-Length%3A%2047

    WebGoat--general+Access Control Flaws
    0xx2 Access Control Flaws(通路控制缺陷)

         1. Using an Access Control Matrix(使用通路控制矩陣)

             這個就比較簡單了,找到對應權限就OK

         2. Bypass a Path Based Access Control Scheme(繞過基于路徑的通路控制方案)

             我們需要找到對應的.xml檔案來通關,由于啟動方式的不同,檔案路徑也不一定相同

             首先,先确定一下目前路徑和目标路徑(經查證,我這裡的目标路徑給錯了,應該是tomcat6/conf/tomcat-user.xml)

WebGoat--general+Access Control Flaws
WebGoat--general+Access Control Flaws

然後使用Burpsuite抓包,然後修改一下File部分,修改為: ../../../../../../../../../var/lib/tomcat6/conf/tomcat-users.xml(注意自己的路徑,此處不唯一)

WebGoat--general+Access Control Flaws
WebGoat--general+Access Control Flaws
下一篇: OWASP-安裝

繼續閱讀