一街图、漏洞挖掘心理學(xué)
安全的木桶理論
找到最薄弱的那個(gè)點(diǎn);
有一個(gè)漏洞的站點(diǎn)金吗,很可能還會(huì)有更多的漏洞
開發(fā)人員的安全意識(shí)問題十兢;
存在于一個(gè)站點(diǎn)的漏洞,還可能存在于其他站點(diǎn)
業(yè)務(wù)的代碼復(fù)用摇庙;
通用型漏洞(wordpress插件漏洞旱物,Discuz 更新不及時(shí));
修復(fù)了的漏洞不一定就全部修復(fù)完整了
指哪修哪跟匆;
繞過修復(fù)异袄;
學(xué)會(huì)找掃描器掃不到/其他白帽子難發(fā)現(xiàn)的漏洞
需要深度交互/認(rèn)證;
存儲(chǔ)XSS/CSRF/越權(quán)/邏輯漏洞玛臂;
挖掘漏洞的過程
通常需要先找到危險(xiǎn)函數(shù)烤蜕,然后回溯函數(shù)的調(diào)用過程,最終看在整個(gè)調(diào)用的過程中用戶是否有可能控制輸入迹冤;
繞waf的一般思路
1). 預(yù)處理利用:即設(shè)法繞過 WAF的輸入驗(yàn)證讽营,比如 HTTP頭( X-Originating-IP 、XForwarded-For 泡徙、X-Remote-IP 橱鹏、 X-Remote-Addr)的處理,就曾多次被用于繞過公司W(wǎng)AF 的SQL 注入防護(hù),或者 HTTP方法頭 GET/POST 的篡改莉兰、換行符的處理等等方式挑围;
2). 致阻斷失配:利用前后端數(shù)據(jù)處理的差異,使得無法匹配到黑名單里的規(guī)則糖荒,通常結(jié)合一些參數(shù)污染杉辙、字符編碼、注釋符等多種方式繞過捶朵;
3). 規(guī)則集繞過:通過暴力枚舉出 WAF的攔截規(guī)則蜘矢,或者逆向 WAF程序獲取規(guī)則,然后再設(shè)法繞過综看。
權(quán)限與繞過思路
二品腹、常用的瀏覽器插件(Firefox)
Firebug
強(qiáng)大的網(wǎng)站調(diào)試工具,同時(shí)可以用來簡(jiǎn)單抓包
Tamper data
抓包修改功能
Hackbar
手工測(cè)試SQL注入/XSS的利器红碑,有編碼功能
LiveHttpHeader
抓包工具舞吭,使用方便,常用于測(cè)試CSRF
三句喷、常用的WEB安全工具
AWVS
全能的Web安全漏洞掃描器镣典,并附帶有很多實(shí)用的工具
如果電腦本身需要通過代理訪問外網(wǎng),那么也需要設(shè)置下 application settings--application updates 設(shè)置 proxy server
NetSparker
對(duì)SQL注入唾琼,XSS兄春,LFI等漏洞掃描效果不錯(cuò)的漏洞掃描器
BurpSuite
功能全面,個(gè)人常用于暴破锡溯,抓包赶舆,CSRF測(cè)試等等
需要設(shè)置瀏覽器代理為8080,才能捕獲數(shù)據(jù)包祭饭,抓取https 包需要瀏覽器訪問?http://burp?下載證書并導(dǎo)入芜茵。
有時(shí)電腦本身需要設(shè)置代理才能訪問外網(wǎng),則需要設(shè)置 Burp options--connections--upstream proxy servers
Layer
子域名/IP段收集倡蝙,同時(shí)可過濾過出存活主機(jī)
Fiddler
常用的抓包工具九串,有XSS自動(dòng)化掃描插件
打開fiddle,默認(rèn)會(huì)設(shè)置瀏覽器的代理為fiddle 監(jiān)聽的8888端口寺鸥,而fiddle 自己則從系統(tǒng)代理出口(也可以自己設(shè)置一個(gè)代理如 http=10.2.2.1:80)出去猪钮;需要設(shè)置一下才會(huì)攔截?cái)?shù)據(jù)包,否則只是快照一下胆建。
注意:pc 端軟件發(fā)出的http/https請(qǐng)求也會(huì)被捕獲烤低,但私有協(xié)議(即應(yīng)用層自定義包體)是抓不到的,可以用wireshark 抓到此類的包笆载。
客戶端軟件發(fā)出的http/https請(qǐng)求有兩種情況扑馁。一種類似內(nèi)嵌了一個(gè)瀏覽器來解析html涯呻、執(zhí)行js事件等,比如一個(gè)功能點(diǎn)腻要,進(jìn)來的原始頁面(抓包)中可以搜到此功能點(diǎn)的一些關(guān)鍵字复罐,往往就是以內(nèi)嵌瀏覽器的方式執(zhí)行js 來完成此功能,直接把入口頁面復(fù)制到瀏覽器訪問雄家,然后console 搜索keyword市栗。
另一種是客戶端直接請(qǐng)求的服務(wù)端cgi,這在進(jìn)來的原始頁面(甚至沒有入口)是找不到功能點(diǎn)的關(guān)鍵字的咳短。
Sqlmap.py
數(shù)據(jù)庫注入神器
owasp 漏洞掃描全集
四、github安全類repo 收集子域名爆破
主機(jī)指紋蛛淋,第三方應(yīng)用發(fā)現(xiàn)
目錄爆破咙好,文件發(fā)現(xiàn)
敏感文件、信息泄漏
弱口令掃描
數(shù)據(jù)庫注入
源代碼審計(jì)(僅針對(duì)開發(fā)本身)
源代碼審計(jì)(針對(duì)第三方庫依賴)
五褐荷、一些雜項(xiàng)
修復(fù)Firefox 的Live HTTP headers 無法 replay 的問題:
在firfox 地址欄輸入:about:support勾效,然后進(jìn)入配置文件夾
找到Live HTTP headers插件的目錄,我的在~/.mozilla/firefox/df0j3s9g.default/extensions/{8f8fe09b-0bd3-4470-bc1b-8cad42b8203a}/chrome叛甫,可以看到有l(wèi)ivehttpheaders.jar這樣一個(gè)文件层宫,用解壓工具打開,進(jìn)入content 目錄其监,找到 LiveHTTPReplay.js萌腿,解壓此文件,并修改抖苦。大概在32行左右毁菱,修改:
document.getElementById("livehttpheaders.replay.headers").value = args[4];
替換為:
document.getElementById("livehttpheaders.replay.headers").value = args[4] + "If-Modified-Since: *\n";
修改完成后,繼續(xù)用解壓工具打開剛才的 livehttpheaders.jar锌历,將修改后的LiveHTTPReplay.js 替換 livehttpheaders.jar 里的 LiveHTTPReplay.js贮庞,由于文件被修改,導(dǎo)致 jar 簽名改變究西,高級(jí)版本的 firefox 會(huì)禁止加載 livehttpHeaders窗慎,對(duì)此可以 在Firefox 配置編輯器 (about:config 頁面)中,更改首選項(xiàng) xpinstall.signatures.required 為 false 即可卤材。完成后重啟 Firfox遮斥,replay 功能就可以使用了。
爬蟲
爬蟲最基本的功能就是從一個(gè)頁面進(jìn)入商膊,獲取到url伏伐,再進(jìn)一步遞歸訪問此頁面的所有url,遞歸多少次可以稱為層數(shù)晕拆。
url基本存在形式:在本域以標(biāo)簽形式嵌入/拼接藐翎、在本域內(nèi)以事件類被調(diào)用材蹬、在外域被以事件類調(diào)用
手工正向查找(chrome):
進(jìn)入某頁面,inspect 某標(biāo)簽吝镣、查看某標(biāo)簽綁定的事件(可以在 console search event keyword)
進(jìn)入某頁面堤器,觸發(fā)某些按鍵,觀察 Network 一欄發(fā)出的請(qǐng)求末贾,注意看 refer 是否是當(dāng)前頁面
進(jìn)入某頁面闸溃,打開抓包軟件,觸發(fā)某些按鍵拱撵,觀察發(fā)出的請(qǐng)求
反向驗(yàn)證查找與正向查找類似辉川,但可以更便捷,進(jìn)入某頁面拴测,直接在 console search url keyword
對(duì)于完全沒有入口乓旗,沒有被調(diào)用,或者被調(diào)用時(shí)需要一些前置步驟的情況集索,爬蟲是沒辦法爬到此url 的屿愚。
在f12 出來的左側(cè)第二欄有個(gè) toggle device toolbar 可以模擬客戶端訪問網(wǎng)頁的請(qǐng)求(即修改了user-agent等字段),此時(shí)某些網(wǎng)站會(huì)跳到為手機(jī)客戶端訪問的網(wǎng)頁务荆,如?http://fun.qq.com/m/?或者?http://m.fun.qq.com?等形式妆距。
burpsuite 顯示界面亂碼問題
如果是中文亂碼的話,解決方法:options->display->font 調(diào)成微軟雅黑等中文字體就可以函匕。
linux下中文亂碼娱据,沒有微軟xx字體,下載文泉驛字體盅惜,即可解決吸耿。
js 調(diào)試
在瀏覽器(chrome)產(chǎn)生跳轉(zhuǎn)的情況下,第一次返回的內(nèi)容可能看不到酷窥,這時(shí)候借助抓包工具就能看到每次請(qǐng)求的返回情況咽安,當(dāng)然也可以在請(qǐng)求的瞬間按下ESC 鍵,停在第一次請(qǐng)求返回的頁面上蓬推,然后在 source 那里設(shè)置下斷點(diǎn)妆棒,F(xiàn)5 刷新一下,就可以跟蹤調(diào)試了沸伏。preserve log 選中時(shí)有可能部分請(qǐng)求返回的數(shù)據(jù)沒有顯示出來糕珊。
console 左側(cè)有個(gè)豎立的省略號(hào),點(diǎn)開有個(gè)search 功能很好用毅糟,可以查找到 source 里面的關(guān)鍵詞红选,即當(dāng)前頁面引用的所有js 文本都可以搜索到,對(duì)于查找ajax姆另、事件類等才會(huì)拼接發(fā)起請(qǐng)求的 url 有很大幫助喇肋,同時(shí)觀察下Network 一欄發(fā)出的請(qǐng)求坟乾。
如果想自己本地改js 代碼調(diào)試,最好 ctrl+s 保存 Html 后瀏覽器打開文件進(jìn)行調(diào)試蝶防。
注意:form action甚侣、Location header、js 中window.location.href 等最終請(qǐng)求時(shí)瀏覽器地址欄會(huì)變化间学;而 ajax 請(qǐng)求時(shí)地址欄不會(huì)變化殷费,ajax 返回的數(shù)據(jù)一般比較少,往往只是一些狀態(tài)信息低葫。
客戶端app 抓包
1).筆記本電腦和手機(jī)連的同個(gè)wifi详羡,筆記本開著 burp 監(jiān)聽 8888 端口,手機(jī)點(diǎn)擊連接的wifi嘿悬,高級(jí)設(shè)置中設(shè)置代理為筆記本ip:8888殷绍,這樣手機(jī)的網(wǎng)絡(luò)請(qǐng)求也會(huì)先通過 burp。
2).筆記本電腦自己使用獵豹wifi 等軟件開啟一個(gè)wifi鹊漠,手機(jī)連接此wifi,且把代理設(shè)置為此wifiip:8888
同理茶行,抓不到私有協(xié)議的包躯概,抓取https的包需要手機(jī)訪問?http://筆記本ip:8888?導(dǎo)入證書,不同設(shè)備需要重新導(dǎo)入證書(一般在設(shè)置--安全選項(xiàng))畔师,有些手機(jī)暫時(shí)不支持der 格式娶靡,只能識(shí)別cer 格式,使用火狐瀏覽器轉(zhuǎn)看锉,導(dǎo)入并導(dǎo)出下 adb push 到手機(jī)目錄就可以了姿锭。
3). 在 android 手機(jī)上安裝 google chrome 瀏覽器,開啟 usb 調(diào)試選項(xiàng)伯铣,在 桌面版chrome 輸入 chrome://inspect/ 可以看到 列出來的設(shè)備如 Che2-UL00 #DU2WKN14BS004912呻此,以及此設(shè)備通過谷歌瀏覽器正在訪問的網(wǎng)頁,點(diǎn)擊 inspect 就可以在電腦上調(diào)試手機(jī)訪問的頁面腔寡。
tips:下載app 時(shí)先不要掛代理焚鲜,否則可能下不動(dòng)。
外網(wǎng)代理掃描和端口掃描
網(wǎng)絡(luò)設(shè)備就只有acl控制放前,沒有iptables類似的功能忿磅,不能把端口封掉,只能對(duì)ip做權(quán)限控制凭语。
網(wǎng)絡(luò)做了acl控制葱她,但是端口依然開放;nmap udp掃描會(huì)發(fā)個(gè)空udp包似扔,如果響應(yīng)icmp的回包吨些,說明端口開放搓谆,所以做好控制,namp依然會(huì)掃出來锤灿。
影響:網(wǎng)絡(luò)設(shè)備也存在被入侵的風(fēng)險(xiǎn)挽拔,黑客可能通過網(wǎng)絡(luò)設(shè)備入侵到內(nèi)網(wǎng)。
解決方法:
網(wǎng)絡(luò)設(shè)備應(yīng)當(dāng)用獨(dú)立與nmap的高危端口掃描模塊但校,開發(fā)單獨(dú)模塊獨(dú)立掃描螃诅。
網(wǎng)絡(luò)設(shè)備主要是udp協(xié)議掃描出來的,分為ntp和snmp服務(wù)状囱;
a)ntp服務(wù)可用ntpdata命令執(zhí)行檢測(cè)
b)snmp可用snmpwalk命令執(zhí)行檢測(cè)
代理掃描:從外網(wǎng)ip 通過代理請(qǐng)求 內(nèi)網(wǎng)web頁面术裸,如果能夠獲取頁面內(nèi)容說明代理能夠訪問內(nèi)網(wǎng),存在風(fēng)險(xiǎn)