真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

WEB安全滲透測試中代碼審計的知識點有哪些

今天小編給大家分享一下WEB安全滲透測試中代碼審計的知識點有哪些的相關知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:空間域名、虛擬主機、營銷軟件、網(wǎng)站建設、霍林郭勒網(wǎng)站維護、網(wǎng)站推廣。

代碼審計

1.5.1. 簡介

代碼審計是找到應用缺陷的過程。其通常有白盒、黑盒、灰盒等方式。白盒指通過對源代碼的分析找到應用缺陷,黑盒通常不涉及到源代碼,多使用模糊測試的方式,而灰盒則是黑白結(jié)合的方式。

1.5.2. 常用概念

1.5.2.1. 輸入

應用的輸入,可以是請求的參數(shù)(GET、POST等)、上傳的文件、網(wǎng)絡、數(shù)據(jù)庫等用戶可控或者間接可控的地方。

1.5.2.2. 處理函數(shù)

處理數(shù)據(jù)的函數(shù),可能是過濾,也可能是編解碼。

1.5.2.3. 危險函數(shù)

又常叫做Sink Call、漏洞點,是可能觸發(fā)危險行為如文件操作、命令執(zhí)行、數(shù)據(jù)庫操作等行為的函數(shù)。

1.5.3. 自動化審計

一般認為一個漏洞的觸發(fā)過程是從輸入經(jīng)過過濾到危險函數(shù)的過程,而審計就是尋找這個鏈條的過程。

1.5.3.1. 危險函數(shù)匹配

白盒審計最常見的方式是通過搜尋危險函數(shù)與危險參數(shù)定位漏洞,比較有代表性的工具是Seay開發(fā)的審計工具。這種方法誤報率相當高,這是因為這種方法沒有對程序的流程進行深入分析,另一方面,這種方式通常是孤立地分析每一個文件,忽略了文件之間復雜的調(diào)用關系。  

具體的說,這種方式在一些環(huán)境下能做到幾乎無漏報,只要審計者有耐心,可以發(fā)現(xiàn)大部分的漏洞,但是在高度框架化的代碼中,能找到的漏洞相對有限。

1.5.3.2. 控制流分析

在后來的系統(tǒng)中,考慮到一定程度引入AST作為分析的依據(jù),在一定程度上減少了誤報,但是仍存在很多缺陷。 

而后,Dahse J等人設計了RIPS,該工具進行數(shù)據(jù)流與控制流分析,結(jié)合過程內(nèi)與過程間的分析得到審計結(jié)果,相對危險函數(shù)匹配的方式來說誤報率少了很多,但是同樣的也增加了開銷。

1.5.3.3. 灰盒分析

國內(nèi)安全研究員fate0提出了基于運行時的分析方式,解決了控制流分析實現(xiàn)復雜、計算路徑開銷大的問題。

1.5.4. 手工審計方式

● 拿到代碼,確定版本,確定能否正常運行

找歷史漏洞

找應用該系統(tǒng)的實例

● 簡單審計,運行審計工具看是否有漏洞

● 大概看懂整個程序是如何運行的

文件如何加載

類庫依賴

有沒有加載waf

● 數(shù)據(jù)庫如何連接

MySQL/mysqli/pdo

有沒有用預編譯

● 視圖如何形成 

能不能xss

能不能模版注入

● SESSION如何處理

文件

數(shù)據(jù)庫

內(nèi)存

● Cache如何處理

文件cache可能寫shell

數(shù)據(jù)庫cache可能注入

memcache

● 看賬戶體系

● 管理員賬戶的密碼

加密方式

泄漏數(shù)據(jù)后能不能爆破密碼

重置漏洞

● 修改密碼漏洞

修改其他人密碼

● 普通用戶的帳號

能否拿到普通用戶權限

普通用戶帳號能否盜號

重點找沒有帳號的情況下可以訪問的頁面

是不是OAuth

● 攻擊SQLi

看全局過濾能否bypass

看是否有直接執(zhí)行sql的地方

 看是用的什么驅(qū)動,mysql/mysqli/pdo

如果使用PDO,看是否是直接執(zhí)行的地方

● 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應用防火墻)是通過執(zhí)行一系列針對HTTP/HTTPS的安全策略來專門為Web應用提供加固的產(chǎn)品。  在市場上,有各種價格各種功能和選項的WAF。在一定程度上,WAF能為Web應用提供安全性,但是不能保證完全的安全。

1.6.1.2. 常見功能

● 檢測異常協(xié)議,拒絕不符合HTTP標準的請求

● 對狀態(tài)管理進行會話保護

● Cookies保護

● 信息泄露保護

● DDoS防護

● 禁止某些IP訪問

● 可疑IP檢查

● 安全HTTP頭管理

X-XSS-Protection

X-Frame-Options

● 機制檢測

CSRF token

HSTS

1.6.1.3. 布置位置

按布置位置,WAF可以分為云WAF、主機防護軟件和硬件防護。云WAF布置在云上,請求先經(jīng)過云服務器而后流向主機。主機防護軟件需要主機預先安裝對應軟件,如mod_security、ngx-lua-waf等,對主機進行防護。硬件防護指流量流向主機時,先經(jīng)過設備的清洗和攔截。

1.6.2. 防護方式

WAF常用的方法有關鍵字檢測、正則表達式檢測、語法分析、行為分析、聲譽分析、機器學習等。 

基于正則的保護是最常見的保護方式。開發(fā)者用一些設定好的正則規(guī)則來檢測載荷是否存在攻擊性?;谡齽t的防護較為簡單,因此存在一些缺點。例如只能應用于單次請求,而且正則很難應用到一些復雜的協(xié)議上。  

基于語法的分析相對正則來說更快而且更準確,這種分析會把載荷按照語法解析成的符號組,然后在符號組中尋找危險的關鍵字。這種方式對一些載荷的變式有較好的效果,但是同樣的,對解析器要求較高。 

基于行為的分析著眼的范圍更廣一些,例如攻擊者的端口掃描行為、目錄爆破、參數(shù)測試或者一些其他自動化或者攻擊的模式都會被納入考慮之中。  

基于聲譽的分析可以比較好的過濾掉一些可疑的來源,例如常用的VPN、匿名代理、Tor節(jié)點、僵尸網(wǎng)絡節(jié)點的IP等。  

基于機器學習的WAF涉及到的范圍非常廣,效果也因具體實現(xiàn)和場景而較為多樣化。  

除了按具體的方法分,也可以根據(jù)白名單和黑名單的使用來分類?;诎酌麊蔚腤AF適用于穩(wěn)定的Web應用,而基于黑名單則適合處理已知問題。

1.6.3. 掃描器防御

● 基于User-Agent識別 

● 基于攻擊載荷識別 

● 驗證碼

1.6.4. WAF指紋

● 額外的Cookie 

● 額外的Header

● 被拒絕請求時的返回內(nèi)容

● 被拒絕請求時的返回響應碼

● IP

1.6.5. 繞過方式

1.6.5.1. 基于架構(gòu)的繞過

● 站點在WAF后,但是站點可直連 

● 站點在云服務器中,對同網(wǎng)段服務器無WAF

1.6.5.2. 基于資源的繞過

● 使用消耗大的載荷,耗盡WAF的計算資源

1.6.5.3. 基于解析的繞過

● 字符集解析不同 

● 協(xié)議覆蓋不全 

● 協(xié)議解析不正確 

● 站點和WAF對https有部分不一致

● WAF解析與Web服務解析不一致

● 同一個參數(shù)多次出現(xiàn),取的位置不一樣

● HTTP Parameter Pollution (HPP)

● HTTP Parameter Fragmentation (HPF)

1.6.5.4. 基于規(guī)則的繞過

● 等價替換

等價函數(shù)

等價變量

關鍵字拆分

字符串操作

● 大小寫變換 

select => sEleCt 

● 字符編碼

URL編碼

十六進制編碼

Unicode解析

Base64 HTML

JSFuck

其他編碼格式

● 字符干擾

注釋

● 空字符

NULL (x00)

空格

回車 (x0d)

換行 (x0a)

垂直制表 (x0b)

水平制表 (x09)

換頁 (x0c)

● 特殊符號

注釋符

引號(反引號、單引號、雙引號)

● 利用服務本身特點

● 替換可疑關鍵字為空

selselectect => select

● 少見特性未在規(guī)則列表中

2.1

域名信息

2.1.1. Whois

Whois 可以查詢域名是否被注冊,以及注冊域名的詳細信息的數(shù)據(jù)庫,其中可能會存在一些有用的信息,例如域名所有人、域名注冊商、郵箱等。

2.1.2. 搜索引擎搜索

搜索引擎通常會記錄域名信息,可以通過 site:agesec.com 的語法來查詢。

2.1.3. 第三方查詢

網(wǎng)絡中有相當多的第三方應用提供了子域的查詢功能,下面有一些例子,更多的網(wǎng)站可以在 8.1 工具列表 中查找。  

● DNSDumpster

● Virustotal

● CrtSearch

● threatminer

● Censys

2.1.4. ASN信息關聯(lián)

在網(wǎng)絡中一個自治系統(tǒng)(Autonomous System, AS)是一個有權自主地決定在本系統(tǒng)中應采用何種路由協(xié)議的小型單位。這個網(wǎng)絡單位可以是一個簡單的網(wǎng)絡也可以是一個由一個或多個普通的網(wǎng)絡管理員來控制的網(wǎng)絡群體,它是一個單獨的可管理的網(wǎng)絡單元(例如一所大學,一個企業(yè)或者一個公司個體)。 

一個自治系統(tǒng)有時也被稱為是一個路由選擇域(routing domain)。一個自治系統(tǒng)將會分配一個全局的唯一的16位號碼,這個號碼被稱為自治系統(tǒng)號(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. 域名相關性

同一個企業(yè)/個人注冊的多個域名通常具有一定的相關性,例如使用了同一個郵箱來注冊、使用了同一個備案、同一個負責人來注冊等,可以使用這種方式來查找關聯(lián)的域名。一種操作步驟如下:  

● 查詢域名注冊郵箱

● 通過域名查詢備案號

● 通過備案號查詢域名

● 反查注冊郵箱

● 反查注冊人

● 通過注冊人查詢到的域名在查詢郵箱

● 通過上一步郵箱去查詢域名

● 查詢以上獲取出的域名的子域名

2.1.6. 網(wǎng)站信息利用

網(wǎng)站中有相當多的信息,網(wǎng)站本身、各項安全策略、設置等都可能暴露出一些信息。  

網(wǎng)站本身的交互通常不囿于單個域名,會和其他子域交互。對于這種情況,可以通過爬取網(wǎng)站,收集站點中的其他子域信息。這些信息通常出現(xiàn)在JavaScript文件、資源文件鏈接等位置。  

網(wǎng)站的安全策略如跨域策略、CSP規(guī)則等通常也包含相關域名的信息。有時候多個域名為了方便會使用同一個SSL/TLS證書,因此有時可通過證書來獲取相關域名信息。

2.1.7. 證書透明度

為了保證HTTPS證書不會被誤發(fā)或偽造,CA會將證書記錄到可公開驗證、不可篡改且只能附加內(nèi)容的日志中,任何感興趣的相關方都可以查看由授權中心簽發(fā)的所有證書。因此可以通過查詢已授權證書的方式來獲得相關域名。

2.1.8. 域傳送漏洞

DNS域傳送(zone transfer)指的是冗余備份服務器使用來自主服務器的數(shù)據(jù)刷新自己的域(zone)數(shù)據(jù)庫。這是為了防止主服務器因意外不可用時影響到整個域名的解析。  

一般來說,域傳送操作應該只允許可信的備用DNS服務器發(fā)起,但是如果錯誤配置了授權,那么任意用戶都可以獲得整個DNS服務器的域名信息。這種錯誤授權被稱作是DNS域傳送漏洞。

2.1.9. Passive DNS

Passive DNS被動的從遞歸域名服務器記錄來自不同域名服務器的響應,形成數(shù)據(jù)庫。利用Passive DNS數(shù)據(jù)庫可以知道域名曾綁定過哪些IP,IP曾關聯(lián)到哪些域名,域名最早/最近出現(xiàn)的時間,為測試提供較大的幫助。Virustotal、passivetotal、CIRCL等網(wǎng)站都提供了Passive DNS數(shù)據(jù)庫的查詢。

2.1.10. SPF記錄

SPF(Sender Policy Framework)是為了防止垃圾郵件而提出來的一種DNS記錄類型,是一種TXT類型的記錄,用于登記某個域名擁有的用來外發(fā)郵件的所有IP地址。通過SPF記錄可以獲取相關的IP信息。

2.1.11. cdn

2.1.11.1. CDN驗證

可通過多地ping的方式確定目標是否使用了CDN,常用的網(wǎng)站有 http://ping.chinaz.com/https://asm.ca.com/en/ping.php 等。

2.1.11.2. 域名查找

使用了CDN的域名的父域或者子域名不一定使用了CDN,可以通過這種方式去查找對應的IP。

2.1.11.3. 歷史記錄查找

CDN可能是在網(wǎng)站上線一段時間后才上線的,可以通過查找域名解析記錄的方式去查找真實IP。

2.1.12. 子域爆破

在內(nèi)網(wǎng)等不易用到以上技巧的環(huán)境,或者想監(jiān)測新域名上線時,可以通過批量嘗試的方式,找到有效的域名。

以上就是“WEB安全滲透測試中代碼審計的知識點有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


名稱欄目:WEB安全滲透測試中代碼審計的知識點有哪些
當前路徑:http://weahome.cn/article/gjsjei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部