每日學習打卡計劃是信安之路知識星球開啟的每天讀書一小時,挑戰打卡一百天的活動,能夠堅持學習打卡 100 天的同學可以獲得信安之路提供的百分成就徽章和證書,學習書籍可以自選,主要目的是養成每日讀書學習的好習慣,並將自己的學習心得分享出來供大家學習,如下是本周打卡榜單:
打卡一:P77-88這部分內容都是在講 HTTP 協議,學習 web 安全,http 協議的知識必不可少,這部分內容適合根據實際的網站抓包之後對照的學習,光看不太行,這個內容也是成長平臺中的一個任務的要求,書中的內容還是比較全面的。
對於 http 協議,用的最多的關鍵詞是 cookie、x-forword-for、user-agent、GET、POST、Referer、HttpOnly、404、200、500 等。
以前做 web 滲透的時候,有個 cookie 注入,造成漏洞的原因是獲取參數使用 request 的方式,而不是 GET 或者 POST,但是在做安全防禦的時候,只監測 GET、POST 獲取的參數,而對於 COOKIE 中獲取的參數為做處理,所以就造成了 COOKIE 注入,當時是有一種很通用的防禦措施,還挺普遍。
這部分內容適合記憶,最好能夠將本章節的內容都記下來,抓到一個數據包之後能夠知道各個欄位都是什麼意思,比如 user-agent 是用來表示用戶的瀏覽器的,而很多爬蟲會把自己的 user-agent 改為搜尋引擎的,從而騙過反爬蟲的檢測,畢竟很多網站還是希望可以被搜尋引擎收錄,提升知名度。
還有就是 https 的問題,目前網站基本普及 https,很多雲服務商都可以免費申請單域名的證書,幾年前,https 不普及的時候,在內網大家都會用 arp 欺騙來進行內網抓包,有人在使用 http 協議做認證的時候還是可以抓到不少帳號密碼的,現在這種方式就比較難了,在內網儘量不要做這麼大的動作,很容易被發現,而且效果也不一定很好。
http 協議相關的其他內容還要大家親自動手,理解數據包中各個欄位的意思,剩下就看大家的了。
打卡二:P89-102前面的內容講了 web 應用的核心傳輸協議,協議是用戶與 web 應用的交互通道,而這幾頁的內容主要讓大家知道 web 應用是如何構成的,其中包含哪些組件,應用如何接受用戶的輸入等。
首先 web 應用接受用戶提交參數的方式包括:url 中的參數(GET)、請求主體(POST)、cookie、REST風格(URL 路徑),除了這些,user-agent 作為瀏覽器的標識,可以根據不同的 UA 展示不同風格的頁面。
關於 web 應用的構成,前端的 html+css+JavaScript 技術,如今的 nodejs 框架等;中間件伺服器的 IIS、Apache、Tomcat、nginx 等;後端語言的 PHP、Java、python、go、Asp.net 等;資料庫的 mysql、mssql、oracle、monogo、redis 等;還有其他的一些加速和防禦的組件,比如 CDN、Waf、負載均衡、文件系統、目錄服務(ldap)等;這些都是組成 web 應用的核心組件,也是可能存在安全問題的根源,都是我們要學習和了解的技術點。
這部分內容都 web 應用組成的各個組件做了簡單的介紹,更詳細的內容可以去網站上自行搜索擴展,了解各個組件在整個 web 應用框架中所處的位置,如何識別 web 應用使用哪些技術棧,這樣可以大大提升我們找出安全問題的效率。
打卡三:P103-108這部分內容主要講了跟 web 應用相關的幾種編碼方式,比如:URL 編碼、Unicode 編碼、HTML 編碼、Base64 編碼、十六進位編碼,對於這類基礎的編碼方式我們都是需要熟悉,能夠識別並且進行自定義編碼,有很多在線平臺可以進行各種編碼,比如站長工具:https://tool.chinaz.com/tools/urlencode.aspx
信安之路 unicode 編碼後:\u4fe1\u5b89\u4e4b\u8def
信安之路 url 編碼後:%e4%bf%a1%e5%ae%89%e4%b9%8b%e8%b7%af
<信安之路> html 編碼後:<信安之路>
信安之路十六進位編碼後:e4bfa1e5ae89e4b98be8b7af
信安之路 base64 編碼後:5L+h5a6J5LmL6Lev
還有很多其他的編碼格式,需要自行擴展,這裡提的幾種編碼方式都是比較容易識別的,各有各的特點。
在滲透測試的過程中會經常使用編碼來繞過安全防禦的策略,因為很多防禦和檢測規則都是基於正則表達式來的,所以繞過正則的檢測也就可以繞過防禦的措施。