計算機網絡安全復習


1、網絡安全目標:(可用性,完整性,機密性)安全三要素,可靠性,不可抵賴性,可控性

可用性:網絡信息可被授權實體訪問並按需求使用的特性。(網絡環境下拒絕服務、破壞網絡和有關系統的正常運行)

可靠性:網絡信息系統能夠在規定條件下和規定時間內,實現規定功能的特性。

機密性:網絡信息不被泄露給非授權用戶和實體、或供其利用的特性

完整性:網絡信息未經授權不能進行改變的特性

不可抵賴性:即可審查性,通信雙方在通信過程中,對自己所發送或接收的信息不可抵賴(不可否認)

可控性:對網絡信息的內容及其傳播具有控制能力的特性。

2、IIS用來干什么的

用來構造服務器的。

3、掃描工具namp

Nmap可以完成以下任務:

  • 主機探測
  • 端口掃描
  • 版本檢測
  • 系統檢測
  • 支持探測腳本的編寫
  •  

     

    例1:判斷10.1.1.100的操作系統:nmap -O -T5 10.1.1.100

    例2:在測試中為了不在服務器10.1.1.100上留下連接痕跡,可以采用半開掃描(即非TCP三次握手連接):nmap -sS 10.1.1.100

    3)掃描目標主機10.1.1.100所有端口(1-65535):

namp是開放源碼的網絡探測和安全掃描工具,主要用來快速掃描大型網絡,namp可以查找到網絡上有哪些主機,它們提供什么服務(端口),運行什么操作系統,過濾防火牆使用哪些類型的數據包等。

nmap是一個網絡探測和安全掃描程序,系統管理者和個人可以使用這個軟件掃描大型的網絡,獲取主機正在運行以及提供什么服務等信息。nmap支持很多掃描技術,例如:UDP、TCP connect()、TCP SYN(半開掃描)、ftp代理(bounce攻擊)、反向標志、ICMP、FIN、ACK掃描、聖誕樹(Xmas Tree)、SYN掃描和null掃描。從掃描類型一節可以得到細節。nmap還提供了一些高級的特征,例如:通過TCP/IP協議棧特征探測操作系統類型,秘密掃描,動態延時和重傳計算,並行掃描,通過並行ping掃描探測關閉的主機,誘餌掃描,避開端口過濾檢測,直接RPC掃描(無須端口影射),碎片掃描,以及靈活的目標和端口設定。

 

 

 4、數據備份策略

完全備份:按備份周期對整個系統的所有文件(數據)進行備份

增量備份:每次備份的數據只是相當於上一次備份后增加和修改過的內容,即備份的都是已更新過的數據

差別備份:在完全備份后將新增加或修改過的數據進行備份,與增量備份的區別是每次備份都是把上次完全備份后更新過的數據進行備份

按需備份:隨時對所需數據進行備份的方式進行數據備份(除正常備份外,額外進行的備份操作)

5、傳統密碼技術:替代密碼、移位密碼、一次一密鑰密碼都是對稱密碼

6、RSA算法

四、生成密鑰對:
既然公鑰是(E,N),私鑰是(D,N),所以密鑰對即為(E,D,N),但密鑰對是怎樣生成的?步驟如下:

求N
求L(L為中間過程的中間數)
求E
求D
4.1 求N:

准備兩個互質數p,q。這兩個數不能太小,太小則會容易破解,將p乘以q就是N。如果互質數p和q足夠大,那么根據目前的計算機技術和其他工具,至今也沒能從N分解出p和q。換句話說,只要密鑰長度N足夠大(一般1024足矣),基本上不可能從公鑰信息推出私鑰信息。

N = p * q

4.2 求L:

L 是 p-1 和 q-1的最小公倍數,可用如下表達式表示

L = lcm(p-1,q-1)

4.3 求E:

E必須滿足兩個條件:E是一個比1大比L小的數,E和L的最大公約數為1;

用gcd(X,Y)來表示X,Y的最大公約數則E條件如下:

RSA加密算法原理_張維鵬的博客-CSDN博客_rsa加密算法原理

 

1 < E < L

gcd(E,L)=1

之所以需要E和L的最大公約數為1,是為了保證一定存在解密時需要使用的數D。現在我們已經求出了E和N也就是說我們已經生成了密鑰對中的公鑰了。

4.4 求D:

數D是由數E計算出來的,數D必須保證足夠大。D、E和L之間必須滿足以下關系:

1 < D < L

E*D mod L = 1

只要D滿足上述2個條件,則通過E和N進行加密的密文就可以用D和N進行解密。簡單地說條件2是為了保證密文解密后的數據就是明文。

現在私鑰自然也已經生成了,密鑰對也就自然生成了。

小結:

求N N= p * q ;p,q為質數
求L L=lcm(p-1,q-1) ;L為p-1、q-1的最小公倍數
求E 1 < E < L,gcd(E,L)=1;E,L最大公約數為1(E和L互質)
求D 1 < D < L,E*D mod L = 1

 

五、實踐:
為了計算方便,p q 的值取小一旦,假設:p = 17,q = 19,

則:

(1)求N:N = p * q = 323;

(2)求L:L = lcm(p-1, q-1)= lcm(16,18) = 144,144為16和18對最小公倍數;

(3)求E:1 < E < L ,gcd(E,L)=1,即1 < E < 144,gcd(E,144) = 1,E和144互為質數,E = 5顯然滿足上述2個條件,故E = 5,此時公鑰= (E,N)=(5,323);

(4)求D:求D也必須滿足2個條件:1 < D < L,E*D mod L = 1,即1 < D < 144,5 * D mod 144 = 1,顯然當D= 29 時滿足上述兩個條件。1 < 29 < 144,5*29 mod 144 = 145 mod 144 = 1,此時私鑰=(D,N)=(29,323);

(5)加密:准備的明文必須是小於N的數,因為加密或者解密都要 mod N,其結果必須小於N。

假設明文 = 123,則 密文=(123的5次方)mod 323=225

(6)解密:明文=(225的29次方)mod 323 =123,所以解密后的明文為123。

RSA加密算法原理_張維鵬的博客-CSDN博客_rsa加密算法原理

7、什么是數字簽名?

附加在數據單元上的一些數據,或是對數據單元所作的密碼變換,這種數據和變換允許數據單元的接收者用以確認數據單元來源和數據單元的完整性,並保護數據,防止被人(例如接收者)進行偽造。

簽名認證是對非對稱加密技術與數字摘要技術的綜合運用,指的是將通信內容的摘要信息使用發送者的私鑰進行加密,然后將密文與原文一起傳輸給信息的接收者,接收者通過發送者的公鑰解密被加密的摘要信息,然后使用與發送者相同的摘要算法,對接收到的內容采用相同的方式產生摘要串,與解密的摘要串進行對比,如果相同,則說明接收到的內容是完整的,在傳輸過程中沒有受到第三方篡改,否則說明通信內容已被第三方修改。

數字簽名的過程:

①發送方利用單向散列函數從報文文本中生成一個128位的散列值(信息摘要)

②發送方用自己的私鑰對這個散列值進行加密來形成發送方的數字簽名

③該數字簽名將作為報文的附件和報文一起被發送給接收方

④接收方從收到的原始報文中計算出128位的散列值(信息摘要)

⑤接收方用發送方的公鑰對報文附加的數字簽名進行解密得到原散列值,如果這兩個散列值相同。則接收方就能確認該數字簽名是發送方的。

 

 

 8、SSL協議

①SSL協議是一種在客戶端和服務器端之間建立安全通道的協議。②SSL主要提供用戶和服務器的合法性認證、數據加密解密和數據的完整性功能。③SSL協議采用公開密鑰技術。其目的是保證發收兩端通信的保密性和可靠性。④SSL協議的后續協議TLS協議用於在兩個應用程序之間提供信息的機密性和數據完整性。

9、SSH協議

①SSH協議是由IETF網絡工作組制定、建立在應用層和傳輸層基礎上的安全協議②是一種在不安全網絡上提供安全遠程登錄及其他安全網絡服務的協議。

③通過使用SSH協議,用戶可以對所有傳輸的數據進行加密,這樣可防止“中間人”方式的攻擊,同時也能防止DNS欺騙和IP欺騙。

10、中間人攻擊

所謂“中間人”攻擊,就是“中間人”冒充真正的服務器接收用戶傳送給服務器的數據,然后再冒充用戶把數據傳送給真正的服務器。(服務器和用戶之間傳送的數據會被“中間人"做手腳)

11、SSH和TELNET的區別

首先,telnet和ssh都是連接遠程計算機的連接協議,可以完成對完成計算機的控制,方便維護。其次,他們都是基於TCP/IP協議下的,所以連接時都需要知道目標機的網址或者域名,第三,他們都是與遠程主機連接的通道,完成的目的是一樣的,只不過手段不一樣而已。

telnet連接的時候直接建立TCP連接,所有傳輸的數據都是明文傳輸,所以是一種不安全的方式。

SSH 為Secrue Shell的縮寫,SSH 為建立在應用層基礎上的安全協議,是比較可靠安全的協議。

1,本質:telnet是明碼傳輸,ssh是加密傳輸。telnet通過TCP/IP協議來訪問遠程計算機來控制你的設備,其傳輸的數據和口令是明文形式的。這樣攻擊者就很容易得到你的口令和數據。其方式也很簡單,他以中間人的身份冒充你的設備截取你的數據,然后再把假數據再傳給你的遠程設備,從而達到攻擊的目的。SSH是替代Telnet和其他遠程控制台管理應用程序的行業標准。SSH命令是加密的並以幾種方式進行保密。SSH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提供一個安全的“通道”。

2,端口區別:telnet是23 ssh是22

3,ssh分分ssh1和ssh2。兩者是不兼容的版本,使用不同的協議。SSH1又分為1.3和1.5兩個版本。SSH1采用DES、3DES、Blowfish和RC4等對稱加密算法保護數據安全傳輸,而對稱加密算法的密鑰是通過非對稱加密算法(RSA)來完成交換的。SSH1使用循環冗余校驗碼(CRC)來保證數據的完整性,但是后來發現這種方法有缺陷。SSH2避免了RSA的專利問題,並修補了CRC的缺陷。SSH2用數字簽名算法(DSA)和Diffie-Hellman(DH)算法代替RSA來完成對稱密鑰的交換,用消息證實代碼(HMAC)來代替CRC。同時SSH2增加了AES和Twofish等對稱加密算法。
12、Kerberos協議

Kerberos協議是一種提供網絡認證服務的系統,其設計目的是通告密鑰系統為客戶/服務器應用程序提供強大的認證服務,

Kerberos協議是為TCP/IP網絡系統設計的一種基於對稱密鑰密碼體制的第三方認證協議

13、防火牆、包過濾技術

防火牆(Firewall)是一項協助確保信息安全的設備,會依照特定的規則,允許或是限制傳輸的數據通過。防火牆可以是一台專屬的硬件也可以是架設在一般硬件上的一套軟件。

      防火牆是用來阻擋外部不安全因素影響的內部網絡屏障,其目的就是防止外部網絡用戶未經授權的訪問。它是一種計算機硬件和軟件的結合,使Internet與Intranet之間建立起一個安全網關(Security Gateway),從而保護內部網免受非法用戶的侵入。

防火牆安裝在內網和外網的唯一通道,掃面源、目的地址和端口

 包過濾技術(在網絡的出入口如:路由器)檢查數據流中每個數據包的源地址、目的地址、所用的端口號、協議狀態或它們的組合

14、計算機病毒的特征

繁殖性:可以像生物病毒一樣進行繁殖,也可以進行運行和自身復制,是判斷是否為計算機病毒的首要條件

傳染性:是病毒的本質特征,是判斷是否為計算機病毒的重要依據

 破壞性:對系統和應用程序進行破壞

隱蔽性和潛伏性:會有潛伏期的存在,不易發現

可觸發性:有一定的觸發條件才會發作

不可預見性:對未來的病毒的類型、特點及破壞性等均難預測

15、蠕蟲病毒

蠕蟲病毒是通過網絡傳播的

特點:①利用網絡系統漏洞進行主動攻擊②傳播迅速、難以清除③傳播方式多樣④隱蔽性強⑤危害性和破壞性更大⑥與黑客技術相結合

防范:軟件缺陷需要軟件廠商和用戶共同配合,不斷升級軟件來解決

企業:①加強網絡管理員的安全管理水平,提高安全意識②建立病毒檢測系統③建立應急響應機制,將風險減少到最低,。③建立備份和容災系統

個人:①購買合適的殺毒軟件②經常升級病毒庫③提高防殺病毒的意識④不隨意查看陌生郵件,尤其是帶有附件的郵件

 16、什么是后門

木馬是隱藏在正常程序中的具有特殊功能惡意代碼,是具備破壞,刪除和修改文件,發送密碼,記錄鍵盤,實施Dos攻擊甚至完全可能告知計算機等特殊功能的后門程序。它隱藏在目標計算機里,可以隨計算機自動啟動並在某一端口監聽來自控制端的控制信息。

后門是攻擊者在入侵了計算機以后為了以后能方便的進入該計算機而進行的系統設置或安裝的一類軟件,一般是指那些繞過安全性控制而獲取對程序或系統訪問權的程序或方法,要求有很強的隱蔽性。其用途在於潛伏在電腦中,從事搜集信息或便於黑客進入的動作,它是一種登錄系統的方法,不僅繞過系統已有的安全設置,而且還能挫敗系統上各種增強的安全設置。簡單的后門可能只是建立一個新的賬號,或者接管一個很少使用的賬號;復雜的后門利用系統服務或其他工具,可能會繞過系統的安全認證而對系統有安全存取權。

 木馬攻擊流程

1配置木馬2 傳播木馬3 啟動木馬4 建立連接 5遠程控制

1、通過下載文件、安裝軟件等途徑入侵電腦。

2、修改系統文件並后台運行。

3、遠程木馬病毒IP上線

4、遠程主控端連接上線,然后就可以后台遠程控制、監控中毒的電腦和達到下載上傳文件等目的了。

防范措施:

①不隨意打開來歷不明的郵件,阻塞可疑郵件②不隨意下載來歷不明的軟件③及時修補漏洞和關閉可疑端口④盡量少用共享文件夾⑤運用實時監控程序⑥經常升級系統和更新病毒庫⑦限制使用不必要的具有傳輸能力的文件。

17、網絡攻擊的手段

①端口掃描②口令破解③拒絕服務④緩沖區溢出⑤網絡嗅探⑥漏洞掃描

緩沖區溢出:

緩沖區溢出是指當計算機向緩沖區內填充數據時超過了緩沖區本身的容量,溢出的數據覆蓋在合法數據上。理想的情況是:程序檢查數據長度並不允許輸入超過緩沖區長度的字符,但是絕大多數程序都會假設數據長度總是與所分配的儲存空間相匹配,這就為緩沖區溢出埋下了隱患。

    操作系統所使用的緩沖區,又被稱為"堆棧"。在各個操作進程之間,指令會被臨時儲存在“堆棧”中,“堆棧”也會出現緩沖區溢出。

防范:

①編寫正確的代碼②非執行緩沖區保護③數組邊界檢查④程序指針完整性檢查

18、端口掃描

常見端口:FTP:21;Telnet:23;SMTP:25;DNS:53;HTTP:80;POPHTTP:110;SSH:22

19、入侵檢測功能

①監視網絡系統的運行狀態,查找非法用戶的訪問和合法用戶的越權操作②對系統的構造和弱點進行審計③識別分析攻擊的行為特征並報警④評估重要系統和數據文件的完整性⑤對操作系統進行跟蹤審計,並識別用戶違反安全策略行為⑥容錯功能,即使系統發生崩潰,也不會丟失數據,或在系統重啟后重建自己的信息庫

20、ARP電子欺騙

原理:主機A要向主機B發送報文,會查詢A本地的ARP緩存表,找到B的IP地址對應的MAC地址后,就會進行數據傳輸。如果未找到,則A廣播一個ARP請求報文(攜帶主機A的IP地址Ia——物理地址Pa),請求IP地址為Ib的主機B回答物理地址Pb。網上所有主機包括B都收到ARP請求,但只有主機B識別自己的IP地址,於是向A主機發回一個ARP響應報文。其中就包含有B的MAC地址,A接收到B的應答后,就會更新本地的ARP緩存。接着使用這個MAC地址發送數據(由網卡附加MAC地址)。因此,本地高速緩存的這個ARP表是本地網絡流通的基礎,而且這個緩存是動態的。

局域網中的主機1與主機2通信,主機1會先發送ARP請求包(請求包中有2的IP地址),2發送ARP響應包給1,1獲得主機A的MAC地址,1利用MAC地址給2傳輸數據。這里主機A通過使用Abel&cain軟件,主動給目標B發送ARP回應包(數據包中攜帶IP為網關的IP,MAC是A主機的MAC),讓目標B更新自己的ARP緩存表。更新后B本地ARP表中網關的MAC地址就是主機A的MAC地址,在主機B看來網關就是A,達到欺騙局域網中某個特定目標的目的。

ARP欺騙就是一種更改ARP Cache的技術。Cache 中含有IP和MAC地址的對應表(映射關系),如果攻擊者更改了ARP Cache中IP的MAC地址,來自目標的額響應數據包就能將信息發送到攻擊者的MAC地址,因此根據映射信息,目標主機已經信任攻擊者的機器。

怎樣發現局域網中存在的ARP欺騙。MAC地址變成了主機的地址

防范:

①不要把網絡的安全信任關系僅建立在IP基礎上或MAC基礎上,而是應該建立在IP+MAC基礎上(即將IP和MAC兩個地址綁定在一起)

②設置靜態的MAC地址到IP地址對應表,不要讓主機刷新設定好的轉換表

③除非很有必要,否則停止使用ARP,將ARP作為永久條目保存在對應表中

④使用ARP服務器,通過該服務器查找自己的ARP轉換器來響應其他機器的ARP廣播,確保這台ARP服務器不被攻擊

⑤使用proxy代理IP的傳輸

⑥使用硬件屏蔽主機,設置好路由,確保IP地址能到達合法的途徑

⑦管理員應定期從響應的IP包中獲得一個ARP請求,然后檢查ARP響應的真實性

⑧管理員要定期輪詢,檢查主機上的ARP緩存

⑨使用防火牆連續監控網絡

21、DNS電子欺騙和域名劫持

DNS電子欺騙原理:如果可以冒充域名服務器,然后把受害者查詢域名的IP地址設為攻擊者的IP地址,這樣的話,用戶上網就訪問域名時就會訪問攻擊者的主頁,而不是用戶想要取得的網站的主頁了,這就是DNS欺騙的基本原理。DNS欺騙其實並不是真的“黑掉”了對方的網站,而是冒名頂替、招搖撞騙罷了

域名劫持的基本原理是用戶輸入要訪問的域名,請求DNS服務器遍歷DNS數據庫,查找該域名對應的IP地址,將其結果返回給用戶。在DNS服務器遍歷DNS數據庫時,如果修改了該域名對應的IP,便實現了域名劫持。簡單來說就是:本來一個域名對應一個IP,當這個域名對應到別的IP上就稱為域名劫持。如果知道該域名的真實IP地址,則可以直接用此IP代替域名后進行訪問。

防范:斷開本地連接再啟動本地連接

TCP3次握手,4次斷開

 

 IPC是什么?

IPC

IPC(Inter-Process Communication) 進程間通信,是共享"命名管道"的資源,它是為了讓進程間通信而開放的命名管道,通過提供可信任的用戶名和口令,連接雙方可以建立安全的通道並以此通道進行加密數據的交換,從而實現對遠程計算機的訪問。IPC是NT/2000的一項新功能,它有一個特點,即在同一時間內,兩個IP之間只允許建立一個連接。NT/2000在提供了IPC功能的同時,在初次安裝系統時還打開了默認共享,即所有的邏輯共享(C,D,E……)和系統目錄winnt或windows(admin)共享。

空會話

空會話是在沒有信任的情況下與服務器建立的會話,對於一個空會話,LSA提供的令牌的SID(空會話的SID)是S-1-5-7,用戶名是:ANONYMOUS LOGON(系統內置的帳號),該訪問令牌包含下面偽裝的組:Everyone和Network。

IPC建立的過程

1.會話請求者(客戶)向會話接收者(服務器)傳送一個數據包,請求安全隧道的建立;

2.服務器產生一個隨機的64位數(實現挑戰)傳送回客戶;

3.客戶取得這個由服務器產生的64位數,用試圖建立會話的帳號的口令打亂它,將結果返回到服務器(實現響應);

4.服務器接受響應后發送給本地安全驗證(LSA),LSA通過使用該用戶正確的口令來核實響應以便確認請求者身份。

LIUNIX 日志路徑,賬號路徑。

Linux下的賬戶系統文件

Linux下的帳戶系統文件主要有/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow 4個。

(1)/etc/passwd文件中每行定義一個用戶帳號,一行中又划分為多個不同的字段定義用戶帳號的不同屬性,各字段用“:”隔開。

    各字段定義如下:

    用戶名:用戶登錄系統時使用的用戶名,它在系統中是唯一的。

    口令:此字段存放加密的口令。在此文件中的口令是x,這表示用戶的口令是被/etc/shadow文件保護的,所有加密口令以及和口令有關的設置都保存在/etc/shadow中。

    用戶標識號:是一個整數,系統內部用它來標識用戶。每個用戶的UID都是唯一的。root用戶的UID是0,1~499是系統的標准帳戶,普通用戶從500開始。

    組標識號:是一個整數,系統內部用它來標識用戶所屬的組。

    注釋性描述:例如存放用戶全名等信息。

    自家目錄:用戶登錄系統后進入的目錄。

    命令解釋器:批示該用戶使用的shell,Linux默認為bash。

(2)/etc/passwd文件對任何用戶均可讀,為了增加系統安全性,用戶的口令通常用shadow passwords保護。/etc/shadow只對root用戶可讀。在安裝系統時,會詢問用戶是否啟用shadow passwords功能。在安裝好系統后也可以用pwconv命令和pwunconv來啟動或取消shadow passwords保護。經過shadow passwords保護的帳戶口令和相關設置信息保存在/etc/shadow文件里。

    各字段意義如下:

    用戶名:用戶的帳戶名

    口令:用戶的口令,是加密過的

    最后一次修改時間:從1970年1月1日起,到用戶最后一次更改口令的天數

    最小時間間隔:從1970年1月1日起,到用戶可以更改口令的天數

    最大時間間隔:從1970年1月1日起,到用戶必須更改口令的天數

    警告時間:在用戶口令過期之前多少天提醒用戶更新

    不活動時間:在用戶口令過期之后到禁用帳戶的天數

    失效時間:從1970年1月1日起,到帳戶被禁用的天數

    標志:保留位

(3)/etc/group文件。將用戶分組是Linux中對用戶進行管理及控制訪問權限的一種手段。當一個用戶同時是多個組的成員時,在/etc/passwd中記錄的是用戶所屬的主組,也就是登錄時所屬的默認組,而其他的組稱為附加組。用戶要訪問附加組的文件時,必須首先使用newgrp命令使自己成為所要訪問的組的成員。組的所有屬性都存放在/etc/group中,此文件對任何用戶均可讀。

     各字段意義如下:

     組名:該組的名稱

     組口令:用戶組口令,由於安全性原因,已不使用該字段保存口令,用“x”占位

    GID:組的識別號,和UID類似,每個組都有自己獨有的ID號,不同組的GID不會相同

    組成員:屬於這個組的成員

(4)/etc/gshadow文件用於定義用戶組口令、組管理員等信息,該文件只有root用戶可以讀取。

    各字段意義如下:

    組名:用戶組名稱,該字段與group文件中的組名稱對應

    組口令:用戶組口令,該字段用於保存已加密的口令

    組的管理員帳號:組的管理員帳號,管理員有權對該組添加、刪除帳號

    組成員:屬於該組的用戶成員列表,用“,”分隔

linux系統各種日志存儲路徑和詳細介紹_kongjunlongaa的博客-CSDN博客
怎么防御彩虹表爆破,實驗最后

①“加鹽”:彩虹表只能通過有限密碼集合生成查找表——當密碼集合擴大,彩虹表占用的空間將以指數速度增加。因此目前最常用的方式是將用戶密碼添加一段字符串(鹽化)后再做散列。

      saltedhash(password) =hash(password+salt)

      如果將用戶密碼后添加一段隨機字符串,然后將隨機字符串和散列后的哈希值存儲在密碼數據庫中。彩虹表將不得不計算出鹽化后的密碼,而鹽化后的密碼會大大增加散列前的長度,從而使密碼集合過大而變得不可能生成彩虹表。

      示例:我們直接在之前‘3839’的md5值后面增加’aaaa’的鹽值,試試能不能通過彩虹表破解。

②已知彩虹表是應用於主流的哈希算法的,那么通過對哈希算法進行修改,自然能夠防御彩虹表破解。
SQL注入的原理,怎么測試漏洞,id=1and 1=1

什么是SQL注入?:所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意的)SQL命令注入到后台數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。

 

 

通過添加單引號來判斷頁面是否存在SQL注入,是因為我們添加的單引號被傳到了SQL語句中,破壞了原本的SQL語句,還造成了語法錯誤,所以SQL語句執行,頁面返回跟正常的時候會有不同。

      而通過and 1=1 、 and 1=2來判斷頁面是否存在注入,是因為我們修改了原本的SQL語句邏輯,當添加and 1=1的時候,這個條件永遠成立,所以頁面一定返回正常(需要該頁面存在注入),但是當添加and 1=2的時候,這個條件永遠不成立,所以如果該頁面存在注入,必然不會返回任何數據。所以就會說,如果添加and 1=1頁面返回正常,添加and 1=2頁面返回不正常或者錯誤,就說明頁面存在SQL注入。當然這只能大概判斷,而不是說明該頁面一定存在注入,其他情況在后面的實驗里說。

      提交的參數,改變了原來SQL語句的含義,並且被服務器當成SQL語句執行了,這就是SQL注入!


如何讓防范SQL注入
獲取網頁參數,基本代碼含義

並啟用下面幾行,如下:

#var HOME_NET any

var HOME_NET 10.1.1.0/24

#

#var HOME_NET any

# Set up the external network addresses as well. A good start may be "any"

#var EXTERNAL_NET any

var EXTERNAL_NET !$HOME_NET
什么意思

常見HTTP錯誤代碼大全 - 知乎 (zhihu.com)

 狀態代碼有三位數字組成,第一個數字定義了響應的類別,且有五種可能取值:

      1xx:指示信息--表示請求已接收,繼續處理

      2xx:成功--表示請求已被成功接收、理解、接受

      3xx:重定向--要完成請求必須進行更進一步的操作

      4xx:客戶端錯誤--請求有語法錯誤或請求無法實現

      5xx:服務器端錯誤--服務器未能實現合法的請求

      常見狀態代碼、狀態描述、說明:

      200 OK      //客戶端請求成功

      400 Bad Request  //客戶端請求有語法錯誤,不能被服務器所理解

      401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用

      403 Forbidden  //服務器收到請求,但是拒絕提供服務

      404 Not Found  //請求資源不存在,eg:輸入了錯誤的URL

      500 Internal Server Error //服務器發生不可預期的錯誤

      503 Server Unavailable  //服務器當前不能處理客戶端的請求,一段時間后可能恢復正常

      在上圖中還可以看到304,304表示自從上次請求后,請求的網頁未修改過。服務器返回此響應時,不會返回網頁內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM