導(dǎo)語
??? 什么是 Web 安全?我又該如何入門學(xué)習(xí)它呢?學(xué)習(xí)過程中又應(yīng)注意哪些問題呢?...
??? 或許你的心中有著這樣的疑問、不過別著急,本文會(huì)為你一一解答這些問題。
正文
定義
Web 安全,顧名思義便是由保障 Web 應(yīng)用能夠持續(xù)安全運(yùn)行而衍生出的一個(gè)分支領(lǐng)域。
Web 應(yīng)用指的是一個(gè)網(wǎng)站的前端頁面到后端服務(wù),可以粗略的理解為一個(gè)網(wǎng)站及其配套的相關(guān)服務(wù),該領(lǐng)域中常見
漏洞有 SQL 注入漏洞,XSS 漏洞,CSRF 漏洞等等,漏洞種類多樣,趣味性強(qiáng),較為適合新手入門。
下面為你介紹 Web 安全方面的常見漏洞,以下講解主要從原理角度出發(fā),旨在幫助新手朋友更好的理解相關(guān)漏洞,具體技術(shù)細(xì)節(jié)暫不討論。
常見漏洞
SQL 注入(SQL Injection)
網(wǎng)站,也就是 web 應(yīng)用中往往會(huì)涉及到數(shù)據(jù)的查詢與修改,對數(shù)據(jù)進(jìn)行操作則需要用到 SQL 語言(結(jié)構(gòu)化查詢語言 (Structured Query Language) 簡稱 SQL,是一種特殊目的的編程語言)。
網(wǎng)站在使用 SQL 查詢數(shù)據(jù)時(shí),用戶輸入的信息或提交的參數(shù)(比如你在使用百度時(shí)輸入的 “關(guān)鍵詞”,登錄某些網(wǎng)站時(shí)提交的賬戶密碼..)將會(huì)參與到 SQL 數(shù)據(jù)查詢的過程中,一旦用戶提交了有害數(shù)據(jù),便有可能對網(wǎng)站運(yùn)行產(chǎn)生危害。
將有害數(shù)據(jù) “注入” 到 SQL 查詢過程之中,這也正是 “SQL 注入” 得名的緣由。
SQL 注入漏洞往往會(huì)導(dǎo)致數(shù)據(jù)泄露,例如前些年爆出的沸沸揚(yáng)揚(yáng)的” 社工庫 ",” 人 rou" 搜索,全球數(shù)十億密碼泄露等事件,他們的背后或多或少有著 SQL 注入的影子。
SQL 注入的定義為:
當(dāng) Web 應(yīng)用向后臺(tái)數(shù)據(jù)庫傳遞 SQL 語句進(jìn)行數(shù)據(jù)庫操作時(shí)。如果對用戶輸入的參數(shù)沒有經(jīng)過嚴(yán)格的過濾處理,那么攻擊者就可以構(gòu)造特殊的 SQL 語句,直接輸入數(shù)據(jù)庫進(jìn)行執(zhí)行,獲取或修改數(shù)據(jù)庫中的數(shù)據(jù)。
XSS 跨站腳本攻擊(Cross-Site Scripting,XSS)
?
同樣是由于網(wǎng)站對于用戶的輸入內(nèi)容沒有進(jìn)行嚴(yán)格的過濾處理,一些惡意的腳本代碼被用戶的瀏覽器執(zhí)行而引發(fā)了 XSS 漏洞。
一個(gè)網(wǎng)站的呈現(xiàn)是基于 HTML,CSS,JS 等腳本語言的,瀏覽器的作用是什么?簡單來說便是將只有計(jì)算機(jī)才能 “讀懂”的腳本語言及代碼渲染成我們所看到的的圖像與文字。
這里以百度為例。在與架設(shè)著網(wǎng)站的服務(wù)器通信時(shí),我們實(shí)際上收到的是使用 HTML 等語言編寫的源代碼,瀏覽器會(huì)將該源代碼 “翻譯”出來。
?
(瀏覽器將下方的源代碼 “翻譯” 成 “百度搜索” 的頁面)
如果我們能利用網(wǎng)站的某些缺陷,將自行構(gòu)造的惡意腳本代碼‘’注入” 到網(wǎng)站源代碼之中,在別的用戶在瀏覽網(wǎng)頁時(shí),我們構(gòu)造的惡意代碼便會(huì)被瀏覽器 “翻譯” 出來,造成危害(Cookie 泄露,鍵盤記錄等),這便形成了 XSS 漏洞。
CSRF 跨站請求偽造(Cross Site Request Forgery)
?
該漏洞往往不直接攻擊網(wǎng)站服務(wù)器,而是冒充用戶在站內(nèi)的正常操作以達(dá)到攻擊目的。我們在與網(wǎng)站進(jìn)行交互操作時(shí),絕大多數(shù)操作是基于瀏覽器與網(wǎng)站服務(wù)器的通信請求的,比如我們會(huì)在某些購物網(wǎng)站下商品訂單,給指定用戶轉(zhuǎn)賬,或者查詢自己的考試成績。
如果能夠在用戶沒有察覺的情況下,“悄無聲息” 通過瀏覽器偽造一些請求操作,進(jìn)而產(chǎn)生對用戶有害的攻擊行為,那么便形成了 CSRF 漏洞。
上文提到過,XSS 漏洞可以在用戶不知情的情況下執(zhí)行惡意操作,如果我們在 XSS 攻擊代碼中包含偽造好的特定請求呢?這便與 CSRF 漏洞不謀而合。所以,XSS 與 CSRF 常相配合使用,威力巨大。
防范 CSRF 漏洞,需要添加 token 或 referer 來防御,云影安全后續(xù)會(huì)對此進(jìn)一步講解。
DDOS 分布式拒絕攻擊 (Distributed Denial of Service)
?
起源于二十世紀(jì)九十年代,歷經(jīng)二十多年發(fā)展而經(jīng)久不衰,DDoS 攻擊已經(jīng)成為網(wǎng)絡(luò)安全領(lǐng)域影響最為深遠(yuǎn)的威脅之一。
嚴(yán)格地來講,DDOS 并不完全歸屬于 Web 安全的范疇,凡是對外提供服務(wù)的服務(wù)器或主機(jī)都存在被 DDOS 攻擊的風(fēng)險(xiǎn),但 DDOS 攻擊在 Web 領(lǐng)域較為常見且危害大,我們在這里加以講解。
那么什么是 DDOS 攻擊呢?如果多臺(tái)主機(jī)對目標(biāo)網(wǎng)站或服務(wù)器發(fā)送大量請求,超出了該網(wǎng)站或服務(wù)器的處理能力上限,導(dǎo)致服務(wù)癱瘓,這種行為便可以稱作 DDOS 攻擊。
舉一個(gè)較為經(jīng)典的例子,假設(shè)一個(gè)餐廳最多可以同時(shí)容納 50 人就餐,假設(shè)在極短時(shí)間內(nèi)該餐廳涌入成百上千的顧客,該餐廳的正常就餐秩序必然會(huì)受到毀滅性的沖擊。
DDOS 攻擊如今已發(fā)展出多種攻擊模式與手段,目前還沒有一個(gè)較為完美的應(yīng)對策略,關(guān)鍵點(diǎn)在于精心發(fā)動(dòng)的 DDOS攻擊往往會(huì)利用合理的服務(wù)請求來占用過多的服務(wù)資源,難與正常用戶的請求相區(qū)分,從而使服務(wù)器無法處理合法用戶的指令。
方法論
孤帆終究要起航,俠客也要去闖蕩。在你開始踏上 Web 安全之路前,我們愿與你分享一些在探索學(xué)習(xí)中可能會(huì)有所幫助的心得與經(jīng)驗(yàn)。
1. 親手實(shí)踐
- 紙上得來終覺淺,絕知此事要躬行。
- 在學(xué)習(xí)漏洞原理或是利用技巧時(shí),最好不要止步于只看懂技術(shù)文章。相關(guān)的介紹文章往往以講解思路為主,為保證文章整體的連貫性,部分技術(shù)細(xì)節(jié)會(huì)被忽略掉。例如程序的運(yùn)行環(huán)境,設(shè)備的網(wǎng)絡(luò)情況以及相關(guān)應(yīng)用組件的具體版本號(hào)。
- 然而對于初學(xué)者來說,這些技術(shù)細(xì)節(jié)同樣至關(guān)重要,如果沒有親手實(shí)踐過,親手復(fù)現(xiàn)出相同的漏洞或利用技巧,你永遠(yuǎn)不會(huì)接觸到那些被忽視的種種細(xì)節(jié)。而細(xì)節(jié)決定成敗,對漏洞利用過程的殘缺理解會(huì)對進(jìn)一步的學(xué)習(xí)探索造成難以估量的影響。
- 同時(shí),動(dòng)手操作也有利于鞏固對于所學(xué)知識(shí)的理解與記憶,加深印象。漏洞種類繁多,差異化的利用條件同樣決定著漏洞利用的成功與否,因此在動(dòng)手實(shí)踐復(fù)現(xiàn)漏洞的同時(shí),還需要完整的筆記記錄。
2. 構(gòu)建體系
- 什么是體系?體系的本質(zhì)是各個(gè)知識(shí)點(diǎn)的靈活串聯(lián)與應(yīng)用。在體系里,知識(shí)不再是孤零零散落在大腦各處信息點(diǎn),而是互相補(bǔ)充互相協(xié)作而成的系統(tǒng)化的有機(jī)整體。
- 其實(shí)這并不難理解。舉個(gè)簡單的例子,假如現(xiàn)在有一篇中文技術(shù)文檔放在面前,雖然我們并不是專業(yè)人士,但將這份文檔讀完還是可以做到的,但如果換一個(gè)不懂中文的外國人來看這篇文章,那么他連閱讀都無法完成。我們之所以可以將一篇不能完全理解的專業(yè)文章看完,是因?yàn)槲覀冇幸欢ǖ恼Z文基礎(chǔ)知識(shí)。
- 也就是說,在我們的大腦里,儲(chǔ)存著識(shí)字的能力。我們可以將這些已經(jīng)擁有的能力整合在知識(shí)體系中。這樣的話,當(dāng)我們?nèi)W(xué)習(xí)新知識(shí)時(shí),完全可以從構(gòu)建好的體系里,找到已經(jīng)形成的能力。
- 好處即,完全陌生的知識(shí)會(huì)被分解形成一些小的知識(shí)點(diǎn)。然后再聯(lián)系體系中已有的能力,去逐一攻克這些陌生的難題。
?
3. 分享交流
- 什么是黑客?真正的黑客可能與大多數(shù)人所理解的有所差異。黑客,由英語 Hacker 音譯出來的,狹義是指專門研究、發(fā)現(xiàn)計(jì)算機(jī)和網(wǎng)絡(luò)漏洞的計(jì)算機(jī)愛好者。根據(jù)黑客的原始定義,黑客對計(jì)算機(jī)有著狂熱的興趣和執(zhí)著的追求,不斷推動(dòng)著計(jì)算機(jī)和網(wǎng)絡(luò)的發(fā)展與完善。顯而易見,黑客與網(wǎng)絡(luò)安全緊密相關(guān)。
- 黑客精神是關(guān)于開放的精神。而黑客行為是基于團(tuán)隊(duì)的,只有開放才能讓參與者們發(fā)揮出最大的能量,去修補(bǔ),去改造?;ヂ?lián)網(wǎng)上最有價(jià)值行為就是「奉獻(xiàn)」,技術(shù)在奉獻(xiàn)中獲得了進(jìn)步,知識(shí)在共享中得到了豐富。“分享交流” 無疑是構(gòu)成互聯(lián)網(wǎng)這座大廈的基石,只有知識(shí)共享才能推動(dòng)我們不斷向前走。逛一逛社區(qū),分享些自我學(xué)習(xí)的心得,于人于己,都是大有裨益的。
網(wǎng)絡(luò)安全學(xué)習(xí)路線
第一階段:基礎(chǔ)操作入門,學(xué)習(xí)基礎(chǔ)知識(shí)
入門的第一步是學(xué)習(xí)一些當(dāng)下主流的安全工具課程并配套基礎(chǔ)原理的書籍,一般來說這個(gè)過程在1個(gè)月左右比較合適。
在這個(gè)階段,你已經(jīng)對網(wǎng)絡(luò)安全有了基本的了解。如果你學(xué)完了第一步,相信你已經(jīng)在理論上明白了上面是sql注入,什么是xss攻擊,對burp、msf、cs等安全工具也掌握了基礎(chǔ)操作。這個(gè)時(shí)候最重要的就是開始打地基!
所謂的“打地基”其實(shí)就是系統(tǒng)化的學(xué)習(xí)計(jì)算機(jī)基礎(chǔ)知識(shí)。而想要學(xué)習(xí)好網(wǎng)絡(luò)安全,首先要具備5個(gè)基礎(chǔ)知識(shí)模塊:
1.操作系統(tǒng)
2.協(xié)議/網(wǎng)絡(luò)
3.數(shù)據(jù)庫
4.開發(fā)語言
5.常見漏洞原理
學(xué)習(xí)這些基礎(chǔ)知識(shí)有什么用呢?
計(jì)算機(jī)各領(lǐng)域的知識(shí)水平?jīng)Q定你滲透水平的上限。
【1】比如:你編程水平高,那你在代碼審計(jì)的時(shí)候就會(huì)比別人強(qiáng),寫出的漏洞利用工具就會(huì)比別人的好用;
【2】比如:你數(shù)據(jù)庫知識(shí)水平高,那你在進(jìn)行SQL注入攻擊的時(shí)候,你就可以寫出更多更好的SQL注入語句,能繞過別人繞不過的WAF;
【3】比如:你網(wǎng)絡(luò)水平高,那你在內(nèi)網(wǎng)滲透的時(shí)候就可以比別人更容易了解目標(biāo)的網(wǎng)絡(luò)架構(gòu),拿到一張網(wǎng)絡(luò)拓?fù)渚湍茏约涸谀膫€(gè)部位,拿到以一個(gè)路由器的配置文件,就知道人家做了哪些路由;
【4】再比如你操作系統(tǒng)玩的好,你提權(quán)就更加強(qiáng),你的信息收集效率就會(huì)更加高,你就可以高效篩選出想要得到的信息
第二階段:實(shí)戰(zhàn)操作
1.挖SRC
挖SRC的目的主要是講技能落在實(shí)處,學(xué)習(xí)網(wǎng)絡(luò)安全最大的幻覺就是覺得自己什么都懂了,但是到了真的挖漏洞的時(shí)候卻一籌莫展,而SRC是一個(gè)非常好的技能應(yīng)用機(jī)會(huì)。
2.從技術(shù)分享帖(漏洞挖掘類型)學(xué)習(xí)
觀看學(xué)習(xí)近十年所有0day挖掘的帖,然后搭建環(huán)境,去復(fù)現(xiàn)漏洞,去思考學(xué)習(xí)筆者的挖洞思維,培養(yǎng)自己的滲透思維??????
3.靶場練習(xí)
自己搭建靶場或者去免費(fèi)的靶場網(wǎng)站練習(xí),有條件的話可以去購買或者報(bào)靠譜的培訓(xùn)機(jī)構(gòu),一般就有配套的靶場練習(xí)
第三階段:參加CTF比賽或者HVV行動(dòng)
推薦:CTF比賽
CTF有三點(diǎn):
【1】接近實(shí)戰(zhàn)的機(jī)會(huì)?,F(xiàn)在網(wǎng)絡(luò)安全法很嚴(yán)格,不像之前大家能瞎搞
【2】題目緊跟技術(shù)前沿,而書籍很多落后了
【3】如果是大學(xué)生的話,以后對找工作也很有幫助
如果你想打CTF比賽,直接去看賽題,賽題看不懂,根據(jù)不懂的地方接著去看資料
推薦:HVV(護(hù)網(wǎng))
HVV有四點(diǎn):
【1】也能極大的鍛煉你,提高自身的技術(shù),最好是參加每年舉行的HVV行動(dòng)
【2】能認(rèn)識(shí)許多圈內(nèi)的大佬,擴(kuò)大你的人脈
【3】HVV的工資也很高,所以參加的話也能讓你賺到不少錢
【4】和CTF比賽一樣如果是大學(xué)生的話,以后對找工作也很有幫助
四、學(xué)習(xí)資料的推薦
書單推薦:
計(jì)算機(jī)操作系統(tǒng):
【1】編碼:隱藏在計(jì)算機(jī)軟硬件背后的語言
【2】深入理解操作系統(tǒng)
【3】深入理解windows操作系統(tǒng)
【4】Linux內(nèi)核與實(shí)現(xiàn)
編程開發(fā)類:
【1】 windows程序設(shè)計(jì)
【2】windwos核心變成
【3】Linux程序設(shè)計(jì)
【4】unix環(huán)境高級(jí)變成
【5】IOS變成
【6】第一行代碼Android
【7】C程序語言設(shè)計(jì)
【8】C primer plus
【9】C和指針
【10】C專家編程
【11】C陷阱與缺陷
【12】匯編語言(王爽)
【13】java核心技術(shù)
【14】java編程思想
【15】Python核心編程
【16】Linuxshell腳本攻略
【17】算法導(dǎo)論
【18】編譯原理
【19】編譯與反編譯技術(shù)實(shí)戰(zhàn)
【20】代碼整潔之道
【21】代碼大全
【22】TCP/IP詳解
【23】Rootkit : 系統(tǒng)灰色地帶的潛伏者
【24】黑客攻防技術(shù)寶典
【25】加密與解密
【26】C++ 反匯編與逆向分析技術(shù)揭秘
【27】web安全測試
【28】白帽子講web安全
【29】精通腳本黑客
【30】web 前端黑客技術(shù)揭秘
【31】程序員的應(yīng)用
【32】英語寫作手冊:風(fēng)格的要素文章來源:http://www.zghlxwxcb.cn/news/detail-637120.html
常見的網(wǎng)絡(luò)安全及論壇文章來源地址http://www.zghlxwxcb.cn/news/detail-637120.html
- 看雪論壇
- 安全課
- 安全牛
- 安全內(nèi)參
- 綠盟
- 先知社區(qū)
- XCTF聯(lián)盟
到了這里,關(guān)于網(wǎng)絡(luò)安全(黑客)零基礎(chǔ)入門的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!