黑客零基础入门 | 网络安全
【學習資料】
導語
什么是Web安全?我又該如何入門學習它呢?學習過程中又應注意哪些問題呢?...或許你的心中有著這樣的疑問、不過別著急,本文會為你一一解答這些問題。正文
定義
-
Web安全,顧名思義便是由保障Web應用能夠持續安全運行而衍生出的一個分支領域。
-
Web應用指的是一個網站的前端頁面到后端服務,可以粗略的理解為一個網站及其配套的相關服務,該領域中常見的漏洞有SQL注入漏洞,XSS漏洞,CSRF漏洞等等,漏洞種類多樣,趣味性強,較為適合新手入門。
下面為你介紹Web安全方面的常見漏洞,以下講解主要從原理角度出發,旨在幫助新手朋友更好的理解相關漏洞,具體技術細節暫不討論。
常見漏洞
SQL注入(SQL Injection)
網站,也就是web應用中往往會涉及到數據的查詢與修改,對數據進行操作則需要用到SQL語言(結構化查詢語言(Structured Query
Language)簡稱SQL,是一種特殊目的的編程語言)。
網站在使用SQL查詢數據時,用戶輸入的信息或提交的參數(比如你在使用百度時輸入的“關鍵詞”,登錄某些網站時提交的賬戶密碼…)將會參與到SQL數據查詢的過程中,一旦用戶提交了有害數據,便有可能對網站運行產生危害。
將有害數據“注入”到SQL查詢過程之中,這也正是“SQL注入”得名的緣由。
SQL注入漏洞往往會導致數據泄露,例如前些年爆出的沸沸揚揚的”社工庫",”人rou"搜索,全球數十億密碼泄露等事件,他們的背后或多或少有著SQL注入的影子。
SQL注入的定義為:
當Web應用向后臺數據庫傳遞SQL語句進行數據庫操作時。如果對用戶輸入的參數沒有經過嚴格的過濾處理,那么攻擊者就可以構造特殊的SQL語句,直接輸入數據庫進行執行,獲取或修改數據庫中的數據。
XSS跨站腳本攻擊(Cross-Site Scripting,XSS)
同樣是由于網站對于用戶的輸入內容沒有進行嚴格的過濾處理,一些惡意的腳本代碼被用戶的瀏覽器執行而引發了XSS漏洞。
一個網站的呈現是基于HTML,CSS,JS等腳本語言的,瀏覽器的作用是什么?簡單來說便是將只有計算機才能“讀懂”的腳本語言及代碼渲染成我們所看到的的圖像與文字。
這里以百度為例。
在與架設著網站的服務器通信時,我們實際上收到的是使用HTML等語言編寫的源代碼,瀏覽器會將該源代碼“翻譯”出來。
(瀏覽器將下方的源代碼“翻譯”成“百度搜索”的頁面)
如果我們能利用網站的某些缺陷,將自行構造的惡意腳本代碼‘’注入”到網站源代碼之中,在別的用戶在瀏覽網頁時,我們構造的惡意代碼便會被瀏覽器“翻譯”出來,造成危害(Cookie泄露,鍵盤記錄等),這便形成了XSS漏洞。
CSRF跨站請求偽造(Cross Site Request Forgery)
該漏洞往往不直接攻擊網站服務器,而是冒充用戶在站內的正常操作以達到攻擊目的。我們在與網站進行交互操作時,絕大多數操作是基于瀏覽器與網站服務器的通信請求的,比如我們會在某些購物網站下商品訂單,給指定用戶轉賬,或者查詢自己的考試成績。
如果能夠在用戶沒有察覺的情況下,“悄無聲息”通過瀏覽器偽造一些請求操作,進而產生對用戶有害的攻擊行為,那么便形成了CSRF漏洞。
上文提到過,XSS漏洞可以在用戶不知情的情況下執行惡意操作,如果我們在XSS攻擊代碼中包含偽造好的特定請求呢?這便與CSRF漏洞不謀而合。所以,XSS與CSRF常相配合使用,威力巨大。
防范CSRF漏洞,需要添加 token 或 referer 來防御,云影安全后續會對此進一步講解。
DDOS 分布式拒絕攻擊(Distributed Denial of Service)
起源于二十世紀九十年代,歷經二十多年發展而經久不衰,DDoS攻擊已經成為網絡安全領域影響最為深遠的威脅之一。
嚴格地來講,DDOS并不完全歸屬于Web安全的范疇,凡是對外提供服務的服務器或主機都存在被DDOS攻擊的風險,但DDOS攻擊在Web領域較為常見且危害大,我們在這里加以講解。
那么什么是DDOS攻擊呢?如果多臺主機對目標網站或服務器發送大量請求,超出了該網站或服務器的處理能力上限,導致服務癱瘓,這種行為便可以稱作DDOS攻擊。
舉一個較為經典的例子,假設一個餐廳最多可以同時容納50人就餐,假設在極短時間內該餐廳涌入成百上千的顧客,該餐廳的正常就餐秩序必然會受到毀滅性的沖擊。
DDOS攻擊如今已發展出多種攻擊模式與手段,目前還沒有一個較為完美的應對策略,關鍵點在于精心發動的DDOS攻擊往往會利用合理的服務請求來占用過多的服務資源,難與正常用戶的請求相區分,從而使服務器無法處理合法用戶的指令。
方法論
孤帆終究要起航,俠客也要去闖蕩。在你開始踏上Web安全之路前,我們愿與你分享一些在探索學習中可能會有所幫助的心得與經驗。
1.親手實踐
紙上得來終覺淺,絕知此事要躬行。
在學習漏洞原理或是利用技巧時,最好不要止步于只看懂技術文章。相關的介紹文章往往以講解思路為主,為保證文章整體的連貫性,部分技術細節會被忽略掉。例如程序的運行環境,設備的網絡情況以及相關應用組件的具體版本號。
然而對于初學者來說,這些技術細節同樣至關重要,如果沒有親手實踐過,親手復現出相同的漏洞或利用技巧,你永遠不會接觸到那些被忽視的種種細節。而細節決定成敗,對漏洞利用過程的殘缺理解會對進一步的學習探索造成難以估量的影響。
同時,動手操作也有利于鞏固對于所學知識的理解與記憶,加深印象。漏洞種類繁多,差異化的利用條件同樣決定著漏洞利用的成功與否,因此在動手實踐復現漏洞的同時,還需要完整的筆記記錄。
2.構建體系
什么是體系?體系的本質是各個知識點的靈活串聯與應用。在體系里,知識不再是孤零零散落在大腦各處信息點,而是互相補充互相協作而成的系統化的有機整體。
其實這并不難理解。舉個簡單的例子,假如現在有一篇中文技術文檔放在面前,雖然我們并不是專業人士,但將這份文檔讀完還是可以做到的,但如果換一個不懂中文的外國人來看這篇文章,那么他連閱讀都無法完成。我們之所以可以將一篇不能完全理解的專業文章看完,是因為我們有一定的語文基礎知識。
也就是說,在我們的大腦里,儲存著識字的能力。我們可以將這些已經擁有的能力整合在知識體系中。這樣的話,當我們去學習新知識時,完全可以從構建好的體系里,找到已經形成的能力。
好處即,完全陌生的知識會被分解形成一些小的知識點。然后再聯系體系中已有的能力,去逐一攻克這些陌生的難題。
3.分享交流
什么是黑客?真正的黑客可能與大多數人所理解的有所差異。黑客,由英語Hacker音譯出來的,狹義是指專門研究、發現計算機和網絡漏洞的計算機愛好者。根據黑客的原始定義,黑客對計算機有著狂熱的興趣和執著的追求,不斷推動著計算機和網絡的發展與完善。顯而易見,黑客與網絡安全緊密相關。
黑客精神是關于開放的精神。而黑客行為是基于團隊的,只有開放才能讓參與者們發揮出最大的能量,去修補,去改造。互聯網上最有價值行為就是「奉獻」,技術在奉獻中獲得了進步,知識在共享中得到了豐富。“分享交流”無疑是構成互聯網這座大廈的基石,只有知識共享才能推動我們不斷向前走。逛一逛社區,分享些自我學習的心得,于人于己,都是大有裨益的。
點擊查看【黑客學習資料·攻略】
總結
以上是生活随笔為你收集整理的黑客零基础入门 | 网络安全的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【网络安全】SQL注入bypass最新版
- 下一篇: 怎样反制红队“硬件“攻击