瀏覽器:瀏覽器即客戶端,提供客戶端和伺服器端的數據信息交互。
http:客戶端與web伺服器進行交互時就存在web請求,這種請求都基於統一的應用層協議——HTTP協議來交互數據。http屬於輕量級協議,無需連接,提供了對通信錯誤的容錯性。中間件:中間件是位於平臺(硬體和作業系統)和應用之間的通用服務。Server容器:Server容器負責解析用戶請求和腳本語言,類似的有Tomcat,JBoss等。我們訪問網頁看到是web容器處理後的內容。資料庫:動態頁面可提供交互式的信息查詢服務,主要依賴於web資料庫的實現,對外提供包含 表單的Web頁面作為訪問接口,查詢結果也以包含數據列表的Web頁面形式返回給用戶。當然除了這些數據也有可能流向不些不可見的第三方服務商。下圖就展示了數據的傳輸流程,以及不同階段經常出現的漏洞及其原因:我們常見的Web漏洞類型主要有SQL注入、XSS、遠程命令執行以及越權等。以下我們分別用舉例的形式為大家介紹這幾種漏洞。所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙伺服器執行惡意的SQL命令。select * from username = ____ and password=_____select * from username "test" or ""="" and password="123456"XSS則是攻擊者往Web頁面裡插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入Web裡面的Script代碼會被執行,從而達到惡意攻擊用戶的目的。<p style='color:red'>你好啊,尊敬的______<p><p style='color:red'>你好啊,尊敬的 xxx<script>alert(1)</script><p>而遠程命令執行,是用戶通過瀏覽器提交執行命令,由於伺服器端沒有針對執行函數做過濾,導致執行命令。ping www.baidu.com & wget xxxxxxxxxxx越權漏洞是比較常見的漏洞類型,越權漏洞可以理解為,一個正常的用戶A通常只能夠對自己的一些信息進行增刪改查,但是由於程式設計師的一時疏忽 ,對信息進行增刪改查的時候沒有進行一個判斷,判斷所需要操作的信息是否屬於對應的用戶,可以導致用戶A可以操作其他人的信息。再展示一個數據的傳輸流程圖,以便直觀清晰的看到,數據在各層中是怎樣運作的,以及可能發生的漏洞:了解了這幾個漏洞之後我們可以看到原理都有些類似,也很簡單,當然我們只要不再局限於概念名詞就會發現 web 安全的大部分漏洞都很簡單。更多時候,發現一個複雜的漏洞需要是只是耐心。 概念,不是一個神聖的東西,概念很多時候只是bullshit。很多概念的產生是因為需要認識和概括某種存在著的現象而不得已產生的,概念也許是必須的但並不是必然如此的。換句話說,概念僅可以被看做是一種努力嘗試描述後的結果之一。或者也可以說概念是提出這個概念的人自嗨的產物,跟其他人關係不大。甚至,有些概念是『別有用心』的發明來合理化某種其實不必合理化但是存在的現象。所以不要把自己拘泥於一個這樣的概念中來思考所面臨問題的實質。把概念忘了,你才可能看清楚你和事物本身的關係。完全沒有基礎該從哪下手? 完全沒有基礎學習 Web 安全是件比較難的事情,所以建議如下:先用 AWVS 掃幾個測試網站大體了解一下http://testphp.vulnweb.com/ http://testhtml5.vulnweb.com http://testasp.vulnweb.com http://testaspnet.vulnweb.com把掃到的漏洞復現,了解怎麼利用,主要了解:XSS、SQL 注入、遠程代碼執行使用 PHP 寫一個列目錄的腳本,可以通過參數列出任意目錄的列表使用 PHP 抓取一個網頁的內容並寫入到Mysql資料庫再輸出手工找 http://testphp.vulnweb.com/ 的漏洞,對比 AWVS 的結果書籍《黑客攻防---web安全實戰詳解》和《安全之路:Web滲透技術及實戰案例解析(第2版)》此外,這是一條堅持的道路,三分鐘的熱情勸君儘早放棄;多練多想,不要離開了教程什麼都不會了,最好看完教程自己獨立完成技術方面的開發。文章整合自:
https://www.zhihu.com/question/276408308/answer/1083103316
https://www.zhihu.com/question/276408308/answer/1083103316