日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络安全、Web安全、渗透测试之笔经面经总结(二)

發(fā)布時間:2024/10/12 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络安全、Web安全、渗透测试之笔经面经总结(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這篇文章涉及的知識點有如下幾方面:

1.SSL Strip(SSp)攻擊到底是什么?

2.中間人攻擊——ARP欺騙的原理、實戰(zhàn)及防御

3會話劫持原理

4.CC攻擊

5.添加時間戳防止重放攻擊

6.淺析HTTPS中間人攻擊與證書校驗

7.什么是HttpOnly?

8.如何設(shè)計相對安全的cookie自動登錄系統(tǒng)

9. SSH

10.服務(wù)器操作系統(tǒng)的安全防范

11. 日志文件查看

12.localStorage和sessionStorage區(qū)別

13.簡單的查找旁站

?

?

?

1.SSL Strip(SSp)攻擊到底是什么?

SSL協(xié)議(Secure Socket Layer,安全套接層)主要是使用公開密鑰體制和X.509數(shù)字證書技術(shù)保護信息傳輸?shù)臋C密性和完整性,它不能保證信息的不可抵賴性,主要適用于點對點之間的信息傳輸,常用Web Server方式。

詳細解釋http://hover.blog.51cto.com/258348/218841

2.中間人攻擊——ARP欺騙的原理、實戰(zhàn)及防御

什么是網(wǎng)關(guān)

首先來簡單解釋一下什么是網(wǎng)關(guān),網(wǎng)關(guān)工作在OSI七層模型中的傳輸層或者應(yīng)用層,用于高層協(xié)議的不同網(wǎng)絡(luò)之間的連接,簡單地說,網(wǎng)關(guān)就好比是一個房間通向另一個房間的一扇門。

?ARP協(xié)議是什么

ARP(Address Resolution Protocol)地址轉(zhuǎn)換協(xié)議,工作在OSI模型的數(shù)據(jù)鏈路層,在以太網(wǎng)中,網(wǎng)絡(luò)設(shè)備之間互相通信是用MAC地址而不是IP地址,ARP協(xié)議就是用來把IP地址轉(zhuǎn)換為MAC地址的。而RARP和ARP相反,它是反向地址轉(zhuǎn)換協(xié)議,把MAC地址轉(zhuǎn)換為IP地址。

假設(shè)A(192.168.1.2)與B(192.168.1.3)在同一局域網(wǎng),A要和B實現(xiàn)通信。A首先會發(fā)送一個數(shù)據(jù)包到廣播地址(192.168.1.255),該數(shù)據(jù)包中包含了源IP(A)、源MAC、目的IP(B)、目的MAC,這個數(shù)據(jù)包會被發(fā)放給局域網(wǎng)中所有的主機,但是只有B主機會回復(fù)一個包含了源IP(B)、源MAC、目的IP(A)、目的MAC的數(shù)據(jù)包給A,同時A主機會將返回的這個地址保存在ARP緩存表中。

ARP欺騙原理

上面提到過了ARP緩存表,在每臺主機都有一個ARP緩存表,緩存表中記錄了IP地址與MAC地址的對應(yīng)關(guān)系,而局域網(wǎng)數(shù)據(jù)傳輸依靠的是MAC地址。

假設(shè)主機 A 192.168.1.2,B 192.168.1.3,C 192.168.1.4; 網(wǎng)關(guān) G 192.168.1.1; 在同一局域網(wǎng),主機A和B通過網(wǎng)關(guān)G相互通信,就好比A和B兩個人寫信,由郵遞員G送信,C永遠都不會知道A和B之間說了些什么話。但是并不是想象中的那么安全,在ARP緩存表機制存在一個缺陷,就是當請求主機收到ARP應(yīng)答包后,不會去驗證自己是否向?qū)Ψ街鳈C發(fā)送過ARP請求包,就直接把這個返回包中的IP地址與MAC地址的對應(yīng)關(guān)系保存進ARP緩存表中,如果原有相同IP對應(yīng)關(guān)系,原有的則會被替換。

這樣C就有了偷聽A和B的談話的可能,繼續(xù)思考上面的例子:

C假扮郵遞員,首先要告訴A說:“我就是郵遞員” (C主機向A發(fā)送構(gòu)造好的返回包,源IP為G 192.168.1.1,源MAC為C自己的MAC地址),愚蠢的A很輕易的相信了,直接把“C是郵遞員”這個信息記在了腦子里;

C再假扮A,告訴郵遞員:“我就是A” (C向網(wǎng)關(guān)G發(fā)送構(gòu)造好的返回包,源IP為A 192.168.1.2,源MAC地址為自己的MAC地址),智商捉急的郵遞員想都沒想就相信了,以后就把B的來信送給了C,C當然就可以知道A和B之間聊了些什么

上面ABCG的故事就是ARP雙向欺騙的原理了

ARP單向欺騙就更好理解了,C只向A發(fā)送一個返回包,告訴A:G 192.168.1.1 的MAC地址為 5c-63-bf-79-1d-fa(一個錯誤的mac地址),A把這個信息記錄在了緩存表中,而G的緩存表不變,也就是說,A把數(shù)據(jù)包給了C,而G的包還是給A,這樣就是ARP單向欺騙了。

3會話劫持原理

什么是會話劫持

在現(xiàn)實生活中,比如你去市場買菜,在交完錢后你要求先去干一些別的事情,稍候再來拿菜;如果這個時候某個陌生人要求把菜拿走,賣菜的人會把菜給陌生人嗎?!當然,這只是一個比喻,但這恰恰就是會話劫持的喻意。所謂會話,就是兩臺主機之間的一次通訊。例如你Telnet到某臺主機,這就是一次Telnet會話;你瀏覽某個網(wǎng)站,這就是一次HTTP會話。而會話劫持(Session?Hijack),就是結(jié)合了嗅探以及欺騙技術(shù)在內(nèi)的攻擊手段。例如,在一次正常的會話過程當中,攻擊者作為第三方參與到其中,他可以在正常數(shù)據(jù)包中插入惡意數(shù)據(jù),也可以在雙方的會話當中進行簡聽,甚至可以是代替某一方主機接管會話。我們可以把會話劫持攻擊分為兩種類型:1)中間人攻擊(Man?In?The?Middle,簡稱MITM),2)注射式攻擊(Injection);并且還可以把會話劫持攻擊分為兩種形式:1)被動劫持,2)主動劫持;被動劫持實際上就是在后臺監(jiān)視雙方會話的數(shù)據(jù)流,叢中獲得敏感數(shù)據(jù);而主動劫持則是將會話當中的某一臺主機“踢”下線,然后由攻擊者取代并接管會話,這種攻擊方法危害非常大,攻擊者可以做很多事情,比如“cat etc/master.passwd”(FreeBSD下的Shadow文件)。圖1為會話劫持示意圖。

?

MITM攻擊簡介

這也就是我們常說的“中間人攻擊”,在網(wǎng)上討論比較多的就是SMB會話劫持,這也是一個典型的中間人攻擊。要想正確的實施中間人攻擊,攻擊者首先需要使用ARP欺騙或DNS欺騙,將會話雙方的通訊流暗中改變,而這種改變對于會話雙方來說是完全透明的。關(guān)于ARP欺騙黑客防線介紹的比較多,網(wǎng)上的資料也比較多,我就不在多說了,我只簡單談?wù)凞NS欺騙。DNS(Domain Name System),即域名服務(wù)器,我們幾乎天天都要用到。對于正常的DNS請求,例如在瀏覽器輸入www.hacker.com.cn,然后系統(tǒng)先查看Hosts文件,如果有相對應(yīng)的IP,就使用這個IP地址訪問網(wǎng)站(其實,利用Hosts文件就可以實現(xiàn)DNS欺騙);如果沒有,才去請求DNS服務(wù)器;DNS服務(wù)器在接收到請求之后,解析出其對應(yīng)的IP地址,返回給我本地,最后你就可以登陸到黑客防線的網(wǎng)站。而DNS欺騙則是,目標將其DNS請求發(fā)送到攻擊者這里,然后攻擊者偽造DNS響應(yīng),將正確的IP地址替換為其他IP,之后你就登陸了這個攻擊者指定的IP,而攻擊者早就在這個IP中安排好了惡意網(wǎng)頁,可你卻在不知不覺中已經(jīng)被攻擊者下了“套”……DNS欺騙也可以在廣域網(wǎng)中進行,比較常見的有“Web服務(wù)器重定向”、“郵件服務(wù)器重定向”等等。但不管是ARP欺騙,還是DNS欺騙,中間人攻擊都改變正常的通訊流,它就相當于會話雙方之間的一個透明代理,可以得到一切想知道的信息,甚至是利用一些有缺陷的加密協(xié)議來實現(xiàn)。

?

注射式攻擊簡介

這種方式的會話劫持比中間人攻擊實現(xiàn)起來簡單一些,它不會改變會話雙方的通訊流,而是在雙方正常的通訊流插入惡意數(shù)據(jù)。在注射式攻擊中,需要實現(xiàn)兩種技術(shù):1)IP欺騙,2)預(yù)測TCP序列號。如果是UDP協(xié)議,只需偽造IP地址,然后發(fā)送過去就可以了,因為UDP沒有所謂的TCP三次握手,但基于UDP的應(yīng)用協(xié)議有流控機制,所以也要做一些額外的工作。對于IP欺騙,有兩種情況需要用到:1)隱藏自己的IP地址;2)利用兩臺機器之間的信任關(guān)系實施入侵。在Unix/Linux平臺上,可以直接使用Socket構(gòu)造IP包,在IP頭中填上虛假的IP地址,但需要root權(quán)限;在Windows平臺上,不能使用Winsock,需要使用Winpacp(也可以使用Libnet)。例如在Linux系統(tǒng),首先打開一個Raw Socket(原始套接字),然后自己編寫IP頭及其他數(shù)據(jù)。

4.CC攻擊

攻擊者借助代理服務(wù)器生成指向受害主機的合法請求,實現(xiàn)DDOS,和偽裝就叫:CC(ChallengeCollapsar)。

CC主要是用來攻擊頁面的。大家都有這樣的經(jīng)歷,就是在訪問論壇時,如果這個論壇比較大,訪問的人比較多,打開頁面的速度會比較慢,訪問的人越多,論壇的頁面越多,數(shù)據(jù)庫就越大,被訪問的頻率也越高,占用的系統(tǒng)資源也就相當可觀。

一個靜態(tài)頁面不需要服務(wù)器多少資源,甚至可以說直接從內(nèi)存中讀出來發(fā)給你就可以了,但是論壇就不一樣了,我看一個帖子,系統(tǒng)需要到數(shù)據(jù)庫中判斷我是否有讀帖子的權(quán)限,如果有,就讀出帖子里面的內(nèi)容,顯示出來——這里至少訪問了2次數(shù)據(jù)庫,如果數(shù)據(jù)庫的數(shù)據(jù)容量有200MB大小,系統(tǒng)很可能就要在這200MB大小的數(shù)據(jù)空間搜索一遍,這需要多少的CPU資源和時間?如果我是查找一個關(guān)鍵字,那么時間更加可觀,因為前面的搜索可以限定在一個很小的范圍內(nèi),比如用戶權(quán)限只查用戶表,帖子內(nèi)容只查帖子表,而且查到就可以馬上停止查詢,而搜索肯定會對所有的數(shù)據(jù)進行一次判斷,消耗的時間是相當?shù)拇蟆?/p>

CC就是充分利用了這個特點,模擬多個用戶(多少線程就是多少用戶)不停的進行訪問(訪問那些需要大量數(shù)據(jù)操作,就是需要大量CPU時間的頁面).這一點用一個一般的性能測試軟件就可以做到大量模擬用戶并發(fā)。

5.添加時間戳防止重放攻擊

如過客戶端在向服務(wù)端接口進行請求,如果請求信息進行了加密處理,被第三方截取到請求包,雖然第三方無法解密獲取其中的數(shù)據(jù),但是可以使用該請求包進行重復(fù)的請求操作。如果服務(wù)端不進行防重放攻擊,就會參數(shù)服務(wù)器壓力增大,數(shù)據(jù)紊亂的后果。而使用添加時間戳的方式可以解決這一問題。。

6.淺析HTTPS中間人攻擊與證書校驗

http://www.2cto.com/article/201607/523509.html

證書是https里非常重要的主體,可用來識別對方是否可信,以及用其公鑰做密鑰交換。可以看見證書里面包含證書的頒發(fā)者,證書的使用者,證書的公鑰,頒發(fā)者的簽名等信息。其中Issuer Name是簽發(fā)此證書的CA名稱,用來指定簽發(fā)證書的CA的可識別的唯一名稱(DN, Distinguished Name),用于證書鏈的認證,這樣通過各級實體證書的驗證,逐漸上溯到鏈的終止點,即可信任的根CA,如果到達終點在自己的信任列表內(nèi)未發(fā)現(xiàn)可信任的CA則認為此證書不可信。

https握手過程的證書校驗環(huán)節(jié)就是為了識別證書的有效性唯一性等等,所以嚴格意義上來說https下不存在中間人攻擊,存在中間人攻擊的前提條件是沒有嚴格的對證書進行校驗,或者人為的信任偽造證書,下面一起看下幾種常見的https“中間人攻擊”場景。

證書未校驗

由于客戶端沒有做任何的證書校驗,所以此時隨意一張證書都可以進行中間人攻擊,可以使用burp里的這個模塊進行中間人攻擊。

通過瀏覽器查看實際的https證書,是一個自簽名的偽造證書。

部分校驗

做了部分校驗,例如在證書校驗過程中只做了證書域名是否匹配的校驗,可以使用burp的如下模塊生成任意域名的偽造證書進行中間人攻擊。

實際生成的證書效果,如果只做了域名、證書是否過期等校驗可輕松進行中間人攻擊(由于chrome是做了證書校驗的所以會提示證書不可信任)。

證書鏈校驗

如果客戶端對證書鏈做了校驗,那么攻擊難度就會上升一個層次,此時需要人為的信任偽造的證書或者安裝偽造的CA公鑰證書從而間接信任偽造的證書,可以使用burp的如下模塊進行中間人攻擊。

可以看見瀏覽器是會報警告的,因為burp的根證書PortSwigger CA并不在瀏覽器可信任列表內(nèi),所以由它作為根證書簽發(fā)的證書都是不能通過瀏覽器的證書校驗的,如果將PortSwigger CA導(dǎo)入系統(tǒng)設(shè)置為可信任證書,那么瀏覽器將不會有任何警告。

手機客戶端Https數(shù)據(jù)包抓取

上述第一、二種情況不多加贅述,第三種情況就是我們經(jīng)常使用的抓手機應(yīng)用https數(shù)據(jù)包的方法,即導(dǎo)入代理工具的公鑰證書到手機里,再進行https數(shù)據(jù)包的抓取。導(dǎo)入手機的公鑰證書在android平臺上稱之為受信任的憑據(jù),

可以看見是Issuer和Subject一樣的自簽名CA公鑰證書,另外我們也可以通過證書類型就可以知道此為公鑰證書,crt、der格式的證書不支持存儲私鑰或證書路徑(有興趣的同學(xué)可查找證書相關(guān)信息)。導(dǎo)入CA公鑰證書之后,參考上文的證書校驗過程不難發(fā)現(xiàn)通過此方式能通過證書鏈校驗,從而形成中間人攻擊,客戶端使用代理工具的公鑰證書加密隨機數(shù),代理工具使用私鑰解密并計算得到對稱加密密鑰,再對數(shù)據(jù)包進行解密即可抓取明文數(shù)據(jù)包。

中間人攻擊原理

一直在說中間人攻擊,那么中間人攻擊到底是怎么進行的呢,下面我們通過一個流行的MITM開源庫mitmproxy來分析中間人攻擊的原理。中間人攻擊的關(guān)鍵在于https握手過程的ClientKeyExchange,由于pre key交換的時候是使用服務(wù)器證書里的公鑰進行加密,如果用的偽造證書的公鑰,那么中間人就可以解開該密文得到pre_master_secret計算出用于對稱加密算法的master_key,從而獲取到客戶端發(fā)送的數(shù)據(jù);然后中間人代理工具再使用其和服務(wù)端的master_key加密傳輸給服務(wù)端;同樣的服務(wù)器返回給客戶端的數(shù)據(jù)也是經(jīng)過中間人解密再加密,于是完整的https中間人攻擊過程就形成了,一圖勝千言,來吧。

App證書校驗

通過上文第一和第二部分的說明,相信大家已經(jīng)對https有個大概的了解了,那么問題來了,怎樣才能防止這些“中間人攻擊”呢?

app證書校驗已經(jīng)是一個老生常談的問題了,但是市場上還是有很多的app未做好證書校驗,有些只做了部分校驗,例如檢查證書域名是否匹配證書是否過期,更多數(shù)的是根本就不做校驗,于是就造成了中間人攻擊。做證書校驗需要做完全,只做一部分都會導(dǎo)致中間人攻擊,對于安全要求并不是特別高的app可使用如下校驗方式:

查看證書是否過期 服務(wù)器證書上的域名是否和服務(wù)器的實際域名相匹配, 校驗證書鏈。

7什么是HttpOnly?

?如果您在cookie中設(shè)置了HttpOnly屬性,那么通過js腳本將無法讀取到cookie信息,這樣能有效的防止XSS攻擊

8如何設(shè)計相對安全的cookie自動登錄系統(tǒng)

http://blog.sina.com.cn/s/blog_90cbd0ab0101ew0p.html

這種技術(shù)其實就是基于 cookie的自動登錄,用戶登錄的時候會把需要驗證的token寫到cookie里面,當用戶session失效的時候,token會通過cookie 發(fā)送給服務(wù)器端,服務(wù)器端解析token判斷是否已經(jīng)登錄;這里面的token如何設(shè)計是關(guān)鍵,到底存什么數(shù)據(jù)才能保證系統(tǒng)的安全性呢?

有些新手可能會想,把用戶id和password直接md5加密存到cookie,這樣做是最糟糕的設(shè)計,用戶的敏感信息直接暴露出來,黑客可以偽造別人的id進行嘗試性登錄,可以想象黑客知道了admin賬號的id,試過幾千幾萬次,密碼和加密算法很可能破解出來。

token要相對安全,不應(yīng)該是簡單的用戶名和密碼md5加密,用戶密碼其實完全可以不用存進去,分兩步來做:

1)token 是一些信息的組合,用戶id+用戶名+expires過期時間+ip地址+salt,具體加密算法最好自己寫,不能使是常見的加密函數(shù)(md5),當然這 個加密函數(shù)必須可逆,這個token我們同時要保存在用戶表數(shù)據(jù)庫里面,set cookie的時候記得http only;

2) 服務(wù)器端拿到cookie之后,進行逆解析,這個時候我們要驗證如下信息:cookie是否過期、ip地址是否發(fā)生變化、用戶id和用戶名是否存在;用戶 存在之后,我們再拿這個token跟第一步存在數(shù)據(jù)庫中的token進行比較,看是否相等,如果不等說明token已經(jīng)過期,這樣做可保證每次用戶登錄之 后token值都不一樣,之前用過的token都會失效;

9 SSH

SSH 為?Secure Shell?的縮寫,由 IETF 的網(wǎng)絡(luò)小組(Network Working Group)所制定;SSH 為建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。SSH 是目前較可靠,專為遠程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用 SSH 協(xié)議可以有效防止遠程管理過程中的信息泄露問題。

10服務(wù)器操作系統(tǒng)的安全防范

停止運行不需要的軟件;(很可能成為外部攻擊的入口)

定期實施漏洞防范措施;(選定軟件時確認軟件的升級狀況,確定打補丁方式,關(guān)注各種漏洞信息,確認漏洞后調(diào)查補丁狀況以及防范對策,并制定對應(yīng)計劃)

對不需要對外公開的端口或者服務(wù)加以訪問限制;(通過端口掃描確認各端口服務(wù)狀態(tài))

提高認證強度。

11 日志文件查看

windows7的日志信息文件存放在C:windows-》System32-》winevt-》Logs文件夾下,對應(yīng)的日志文件也有很多,并且文件格式都是evtx格式的文件,直接用Eventvwr.msc這個命令啟用事件查看器來查看即可。

或者點擊開始然后單擊控制面板進入win7控制面板,單擊“系統(tǒng)和安全”選項。在右下方找到“查看事件日志”進入windows系統(tǒng)日志查看器。

在日志查看器左側(cè)可以選擇查看不同類型日志,一般系統(tǒng)報錯應(yīng)該在“windows日志/系統(tǒng)”中找相關(guān)信息。雙擊單條日志可以查看詳細信息,而右側(cè)欄可以對日志進行刪除、復(fù)制等操作。

12.localStorage和sessionStorage區(qū)別

http://www.cnblogs.com/tylerdonet/p/4833681.html

http://www.2cto.com/article/201505/401601.html

localStorage和sessionStorage一樣都是用來存儲客戶端臨時信息的對象。

他們均只能存儲字符串類型的對象(雖然規(guī)范中可以存儲其他原生類型的對象,但是目前為止沒有瀏覽器對其進行實現(xiàn))。

localStorage生命周期是永久,這意味著除非用戶顯示在瀏覽器提供的UI上清除localStorage信息,否則這些信息將永遠存在。

sessionStorage生命周期為當前窗口或標簽頁,一旦窗口或標簽頁被永久關(guān)閉了,那么所有通過sessionStorage存儲的數(shù)據(jù)也就被清空了。

不同瀏覽器無法共享localStorage或sessionStorage中的信息。相同瀏覽器的不同頁面間可以共享相同的 localStorage(頁面屬于相同域名和端口),但是不同頁面或標簽頁間無法共享sessionStorage的信息。這里需要注意的是,頁面及標 簽頁僅指頂級窗口,如果一個標簽頁包含多個iframe標簽且他們屬于同源頁面,那么他們之間是可以共享sessionStorage的。

13簡單的查找旁站

百度 域名查找IP 打開可行的網(wǎng)頁,在里面輸入目標域名,搜索出服務(wù)器的IP,然后百度 IP反查域名 選擇一個可行的網(wǎng)頁打開,輸入剛剛查詢到的IP,旁站就通通出來了。
目標站沒法子入侵不代表旁站也一樣。

?

轉(zhuǎn)載于:https://www.cnblogs.com/christychang/p/6593163.html

總結(jié)

以上是生活随笔為你收集整理的网络安全、Web安全、渗透测试之笔经面经总结(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。