您好,登錄后才能下訂單哦!
今天小編給大家分享一下WEB安全滲透測試中代碼審計的知識點有哪些的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
代碼審計
1.5.1. 簡介
代碼審計是找到應用缺陷的過程。其通常有白盒、黑盒、灰盒等方式。白盒指通過對源代碼的分析找到應用缺陷,黑盒通常不涉及到源代碼,多使用模糊測試的方式,而灰盒則是黑白結合的方式。
1.5.2. 常用概念
1.5.2.1. 輸入
應用的輸入,可以是請求的參數(GET、POST等)、上傳的文件、網絡、數據庫等用戶可控或者間接可控的地方。
1.5.2.2. 處理函數
處理數據的函數,可能是過濾,也可能是編解碼。
1.5.2.3. 危險函數
又常叫做Sink Call、漏洞點,是可能觸發危險行為如文件操作、命令執行、數據庫操作等行為的函數。
1.5.3. 自動化審計
一般認為一個漏洞的觸發過程是從輸入經過過濾到危險函數的過程,而審計就是尋找這個鏈條的過程。
1.5.3.1. 危險函數匹配
白盒審計最常見的方式是通過搜尋危險函數與危險參數定位漏洞,比較有代表性的工具是Seay開發的審計工具。這種方法誤報率相當高,這是因為這種方法沒有對程序的流程進行深入分析,另一方面,這種方式通常是孤立地分析每一個文件,忽略了文件之間復雜的調用關系。
具體的說,這種方式在一些環境下能做到幾乎無漏報,只要審計者有耐心,可以發現大部分的漏洞,但是在高度框架化的代碼中,能找到的漏洞相對有限。
1.5.3.2. 控制流分析
在后來的系統中,考慮到一定程度引入AST作為分析的依據,在一定程度上減少了誤報,但是仍存在很多缺陷。
而后,Dahse J等人設計了RIPS,該工具進行數據流與控制流分析,結合過程內與過程間的分析得到審計結果,相對危險函數匹配的方式來說誤報率少了很多,但是同樣的也增加了開銷。
1.5.3.3. 灰盒分析
國內安全研究員fate0提出了基于運行時的分析方式,解決了控制流分析實現復雜、計算路徑開銷大的問題。
1.5.4. 手工審計方式
● 拿到代碼,確定版本,確定能否正常運行
找歷史漏洞
找應用該系統的實例
● 簡單審計,運行審計工具看是否有漏洞
● 大概看懂整個程序是如何運行的
文件如何加載
類庫依賴
有沒有加載waf
● 數據庫如何連接
mysql/mysqli/pdo
有沒有用預編譯
● 視圖如何形成
能不能xss
能不能模版注入
● SESSION如何處理
文件
數據庫
內存
● Cache如何處理
文件cache可能寫shell
數據庫cache可能注入
memcache
● 看賬戶體系
● 管理員賬戶的密碼
加密方式
泄漏數據后能不能爆破密碼
重置漏洞
● 修改密碼漏洞
修改其他人密碼
● 普通用戶的帳號
能否拿到普通用戶權限
普通用戶帳號能否盜號
重點找沒有帳號的情況下可以訪問的頁面
是不是OAuth
● 攻擊SQLi
看全局過濾能否bypass
看是否有直接執行sql的地方
● 看是用的什么驅動,mysql/mysqli/pdo
如果使用PDO,看是否是直接執行的地方
● XSS
全局bypass
直接echo
看視圖是怎么加載的
● FILE
上傳下載覆蓋刪除
● 包含
LFI
RFI
全局找include, require
● 正常上傳
看上傳是如何確定能否上傳文件的
● RCE
call_user_func
eval
assert
preg_replace /e
XXE
CSRF
SSRF
反序列化
● 變量覆蓋
extract
parse_str
array_map
LDAP
XPath
Cookie偽造
● 過濾
● 找WAF
看waf怎么過濾的,相應的如何繞過
1.6
WAF
1.6.1. 簡介
1.6.1.1. 概念
WAF(Web Application Firewall,Web應用防火墻)是通過執行一系列針對HTTP/HTTPS的安全策略來專門為Web應用提供加固的產品。 在市場上,有各種價格各種功能和選項的WAF。在一定程度上,WAF能為Web應用提供安全性,但是不能保證完全的安全。
1.6.1.2. 常見功能
● 檢測異常協議,拒絕不符合HTTP標準的請求
● 對狀態管理進行會話保護
● Cookies保護
● 信息泄露保護
● DDoS防護
● 禁止某些IP訪問
● 可疑IP檢查
● 安全HTTP頭管理
X-XSS-Protection
X-Frame-Options
● 機制檢測
CSRF token
HSTS
1.6.1.3. 布置位置
按布置位置,WAF可以分為云WAF、主機防護軟件和硬件防護。云WAF布置在云上,請求先經過云服務器而后流向主機。主機防護軟件需要主機預先安裝對應軟件,如mod_security、ngx-lua-waf等,對主機進行防護。硬件防護指流量流向主機時,先經過設備的清洗和攔截。
1.6.2. 防護方式
WAF常用的方法有關鍵字檢測、正則表達式檢測、語法分析、行為分析、聲譽分析、機器學習等。
基于正則的保護是最常見的保護方式。開發者用一些設定好的正則規則來檢測載荷是否存在攻擊性。基于正則的防護較為簡單,因此存在一些缺點。例如只能應用于單次請求,而且正則很難應用到一些復雜的協議上。
基于語法的分析相對正則來說更快而且更準確,這種分析會把載荷按照語法解析成的符號組,然后在符號組中尋找危險的關鍵字。這種方式對一些載荷的變式有較好的效果,但是同樣的,對解析器要求較高。
基于行為的分析著眼的范圍更廣一些,例如攻擊者的端口掃描行為、目錄爆破、參數測試或者一些其他自動化或者攻擊的模式都會被納入考慮之中。
基于聲譽的分析可以比較好的過濾掉一些可疑的來源,例如常用的VPN、匿名代理、Tor節點、僵尸網絡節點的IP等。
基于機器學習的WAF涉及到的范圍非常廣,效果也因具體實現和場景而較為多樣化。
除了按具體的方法分,也可以根據白名單和黑名單的使用來分類。基于白名單的WAF適用于穩定的Web應用,而基于黑名單則適合處理已知問題。
1.6.3. 掃描器防御
● 基于User-Agent識別
● 基于攻擊載荷識別
● 驗證碼
1.6.4. WAF指紋
● 額外的Cookie
● 額外的Header
● 被拒絕請求時的返回內容
● 被拒絕請求時的返回響應碼
● IP
1.6.5. 繞過方式
1.6.5.1. 基于架構的繞過
● 站點在WAF后,但是站點可直連
● 站點在云服務器中,對同網段服務器無WAF
1.6.5.2. 基于資源的繞過
● 使用消耗大的載荷,耗盡WAF的計算資源
1.6.5.3. 基于解析的繞過
● 字符集解析不同
● 協議覆蓋不全
● 協議解析不正確
● 站點和WAF對https有部分不一致
● WAF解析與Web服務解析不一致
● 同一個參數多次出現,取的位置不一樣
● HTTP Parameter Pollution (HPP)
● HTTP Parameter Fragmentation (HPF)
1.6.5.4. 基于規則的繞過
● 等價替換
等價函數
等價變量
關鍵字拆分
字符串操作
● 大小寫變換
select => sEleCt
<sCrIpt>alert(1)</script>
● 字符編碼
URL編碼
十六進制編碼
Unicode解析
Base64 HTML
JSFuck
其他編碼格式
● 字符干擾
注釋
● 空字符
NULL (x00)
空格
回車 (x0d)
換行 (x0a)
垂直制表 (x0b)
水平制表 (x09)
換頁 (x0c)
● 特殊符號
注釋符
引號(反引號、單引號、雙引號)
● 利用服務本身特點
● 替換可疑關鍵字為空
selselectect => select
● 少見特性未在規則列表中
2.1
域名信息
2.1.1. Whois
Whois 可以查詢域名是否被注冊,以及注冊域名的詳細信息的數據庫,其中可能會存在一些有用的信息,例如域名所有人、域名注冊商、郵箱等。
2.1.2. 搜索引擎搜索
搜索引擎通常會記錄域名信息,可以通過 site:agesec.com 的語法來查詢。
2.1.3. 第三方查詢
網絡中有相當多的第三方應用提供了子域的查詢功能,下面有一些例子,更多的網站可以在 8.1 工具列表 中查找。
● DNSDumpster
● Virustotal
● CrtSearch
● threatminer
● Censys
2.1.4. ASN信息關聯
在網絡中一個自治系統(Autonomous System, AS)是一個有權自主地決定在本系統中應采用何種路由協議的小型單位。這個網絡單位可以是一個簡單的網絡也可以是一個由一個或多個普通的網絡管理員來控制的網絡群體,它是一個單獨的可管理的網絡單元(例如一所大學,一個企業或者一個公司個體)。
一個自治系統有時也被稱為是一個路由選擇域(routing domain)。一個自治系統將會分配一個全局的唯一的16位號碼,這個號碼被稱為自治系統號(ASN)。因此可以通過ASN號來查找可能相關的IP,例如:
whois -h whois.radb.net -- '-i origin AS111111' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq
nmap --script targets-asn --script-args targets-asn.asn=15169
2.1.5. 域名相關性
同一個企業/個人注冊的多個域名通常具有一定的相關性,例如使用了同一個郵箱來注冊、使用了同一個備案、同一個負責人來注冊等,可以使用這種方式來查找關聯的域名。一種操作步驟如下:
● 查詢域名注冊郵箱
● 通過域名查詢備案號
● 通過備案號查詢域名
● 反查注冊郵箱
● 反查注冊人
● 通過注冊人查詢到的域名在查詢郵箱
● 通過上一步郵箱去查詢域名
● 查詢以上獲取出的域名的子域名
2.1.6. 網站信息利用
網站中有相當多的信息,網站本身、各項安全策略、設置等都可能暴露出一些信息。
網站本身的交互通常不囿于單個域名,會和其他子域交互。對于這種情況,可以通過爬取網站,收集站點中的其他子域信息。這些信息通常出現在JavaScript文件、資源文件鏈接等位置。
網站的安全策略如跨域策略、CSP規則等通常也包含相關域名的信息。有時候多個域名為了方便會使用同一個SSL/TLS證書,因此有時可通過證書來獲取相關域名信息。
2.1.7. 證書透明度
為了保證HTTPS證書不會被誤發或偽造,CA會將證書記錄到可公開驗證、不可篡改且只能附加內容的日志中,任何感興趣的相關方都可以查看由授權中心簽發的所有證書。因此可以通過查詢已授權證書的方式來獲得相關域名。
2.1.8. 域傳送漏洞
DNS域傳送(zone transfer)指的是冗余備份服務器使用來自主服務器的數據刷新自己的域(zone)數據庫。這是為了防止主服務器因意外不可用時影響到整個域名的解析。
一般來說,域傳送操作應該只允許可信的備用DNS服務器發起,但是如果錯誤配置了授權,那么任意用戶都可以獲得整個DNS服務器的域名信息。這種錯誤授權被稱作是DNS域傳送漏洞。
2.1.9. Passive DNS
Passive DNS被動的從遞歸域名服務器記錄來自不同域名服務器的響應,形成數據庫。利用Passive DNS數據庫可以知道域名曾綁定過哪些IP,IP曾關聯到哪些域名,域名最早/最近出現的時間,為測試提供較大的幫助。Virustotal、passivetotal、CIRCL等網站都提供了Passive DNS數據庫的查詢。
2.1.10. SPF記錄
SPF(Sender Policy Framework)是為了防止垃圾郵件而提出來的一種DNS記錄類型,是一種TXT類型的記錄,用于登記某個域名擁有的用來外發郵件的所有IP地址。通過SPF記錄可以獲取相關的IP信息。
2.1.11. CDN
2.1.11.1. CDN驗證
可通過多地ping的方式確定目標是否使用了CDN,常用的網站有 http://ping.chinaz.com/https://asm.ca.com/en/ping.php 等。
2.1.11.2. 域名查找
使用了CDN的域名的父域或者子域名不一定使用了CDN,可以通過這種方式去查找對應的IP。
2.1.11.3. 歷史記錄查找
CDN可能是在網站上線一段時間后才上線的,可以通過查找域名解析記錄的方式去查找真實IP。
2.1.12. 子域爆破
在內網等不易用到以上技巧的環境,或者想監測新域名上線時,可以通過批量嘗試的方式,找到有效的域名。
以上就是“WEB安全滲透測試中代碼審計的知識點有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。