網絡攻防訓練方法(常見的網絡攻防技術)
2023-04-17 17:51:09
在世界人口近80億的地球上,每天尚且發生數以百萬計的搶劫打架鬥毆事件,網絡更是如此,網絡攻防戰幾乎每時每刻都在發生。
如果說打架鬥毆槍擊事件離我們還很遠,那網絡攻防戰在你打開手機的時候就開始了!博主能力有限,暫不談網絡攻防具體操作實現過程,我們用通俗易懂的語言一塊聊聊——神秘的「網絡攻防」
每當聽到「網絡攻防」這個名詞,有沒有一瞬間覺得很神秘?腦海中是否下意識地出現身穿黑色連衣帽的黑客闖入某機構網站的場景?
其實它並沒有想像中的那麼神秘,接下來我們一塊嘮嘮常見的幾種常見的網絡攻防技術
一、SQL注入
SQL注入是一種非常常見的一種資料庫攻擊手段,我們平時用的所有網站,軟體都會用到資料庫,只要有資料庫存在的地方就可能存在 SQL 注入漏洞。
比如某大學學生通過SQL注入篡改期末成績,某男子入侵某網站竊取大量用戶信息等等
簡單來說就好比你養了一隻名叫「拆家」的哈士奇,有天你在臥室突然頭暈倒地,並喊道:「拆家,快找人幫忙!!!」。小哈聽到後找到拆遷隊一塊把房子拆了。
這句話本身沒有問題,哈士奇接收到的信息也符合邏輯,只是這句話的關鍵字恰好和哈士奇詞庫中的命令相匹配,導致事情發展逐漸離譜。
言歸正傳
SQL注入攻擊的核心在於讓Web伺服器執行攻擊者期望的SQL語句,以便得到資料庫中的感興趣的數據或對資料庫進行讀取、修改、刪除、插入等操作,達到其邪惡的目的。
而如何讓Web伺服器執行攻擊者的SQL語句呢?SQL注入的常規套路在於將SQL語句放置於Form表單或請求參數之中(比如說SELECT、DROP等等)提交到後端伺服器,後端伺服器如果未做輸入安全校驗,直接將變量取出進行資料庫查詢,則極易中招。
舉個簡單的SQL注入例子
對於一個根據用戶ID獲取用戶信息的接口,後端的SQL語句一般是這樣:
select name,[...] from t_user whereid=$id
1
其中,$id就是前端提交的用戶id,那前端的請求如果是這樣:
GET xx/userinfo?id=1 or 1=1
1
請求參數id轉義後就是1 or 1=1,如果後端不做安全過濾直接提交資料庫查詢,SQL語句就變成了:
select name,[...] from t_user whereid=1or1=1
1
最終結果就是把用戶表中的所有數據全部查出,已經達到了攻擊者洩露數據的目的。
上面只是一個非常簡單的注入示例,在真實的SQL注入攻擊中參數構造和SQL語句遠比這複雜得多,攻擊者攻擊的位置也複雜的多,不過原理是一致的。複雜度提升產生的攻擊效果可想而知。
二、XSS 攻擊
XSS全稱是跨站腳本攻擊(Cross Site scripting),為了和重疊樣式表CSS區分,換了另一個縮寫XSS。
簡單來說就是某飯店要進一批酸菜,張三在送貨車快到飯店的時候,偷偷上車把原來的酸菜換成了「老壇酸菜」,隨後老壇酸菜」被放入飯店倉庫。此後只要有人來飯店吃酸菜魚,就會被「美味」攻擊,讓用戶毫不知情地踩坑
XSS攻擊的核心是將可執行的前端腳本代碼(一般為JavaScript)植入到網頁中,通常指的是通過利用網頁開發時留下的漏洞,注入惡意指令代碼到網頁,使用戶加載並執行攻擊者惡意製造的網頁程序。
這些惡意網頁程序通常是JavaScript,但也存在Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML代碼。一旦攻擊成功後,攻擊者可能得到一些用戶或管理員權限(權限上不封頂)
那我們來聊聊攻擊者是如何辦到的呢?
一般XSS攻擊分為兩種:反射型和存儲型
1.反射型
攻擊者將JS代碼作為請求參數放置URL中,誘導用戶點擊,落入陷阱
比如這個,攻擊者首先將JS代碼作為請求參數放置URL中,誘導用戶點擊
http://localhost:8080/test?name=alert("嗨害嗨,你已經被攻擊了!")
1
等用戶點擊後,該JS就會作為請求參數傳給Web伺服器後端。如果後端伺服器沒有很完善的檢查過濾,就會簡單處理後放入網頁正文中返回給瀏覽器,等瀏覽器解析返回的網頁後,用戶已經中招了!
2.存儲型
上面反射型攻擊腳本直接經伺服器,轉手後返回瀏覽器觸發執行
存儲型和它的區別在於能夠將攻擊腳本入庫存儲,在後面進行查詢時,再將攻擊腳本渲染進網頁,返回給瀏覽器觸發執行。
舉個例子
XSS攻擊就好比攻擊者在某網頁論壇中回復一個帖子,帖子中包含JS腳本,回帖提交伺服器後,就會存儲至資料庫。
其他網友查看這個帖子後,後臺會自動查詢該帖子的回帖內容,然後構建出完整網頁,返回瀏覽器。此時,該網友瀏覽器渲染返回的網頁已經中招!該網友的瀏覽器已經變成了靶子,後面的事情就不用多說了,可以想像這種攻擊是多麼防不勝防。
三、CSRF 攻擊
CSRF攻擊,全稱是跨站請求偽造(Cross-site request forgery),它可以利用用戶已登錄的身份,在用戶毫不知情的情況下,以用戶的名義完成非法操作。
我保證絕大多數90,00後都遇到過CSRF攻擊,具體CSRF攻擊是什麼?我先挖個坑,大家接著往下看
我記得上初中的時候,QQ空間經常會看到這樣的說說:
「今天是馬化騰的生日,轉發這條說說到10個群免費贈送一個月VIP。」
「轉發這條說說,免費領取一年黃鑽/紅鑽/藍鑽/粉鑽。」
「大家好,我是易烊千璽,這是我的QQ號*********,歡迎各位小夥伴加我QQ。」
上大學後,QQ郵箱又會收到這樣的郵件
發件人:「教務處」
內容為:「##大學##系2022年上學期期末考試成績單」或者「##大學2022年下學期課程安排」等,這些郵件中還很默契的都放一個連結
即便是現在,玩QQ的都遇到過,莫名其妙的收到陌生人發來的一份在線共享文檔,內容為:「##年下半年四六級成績報告」;
還有你QQ列表中那些被盜號的朋友是不是總會發些連結給你,點開以後發現手機卡死了。
近幾年新聞報導的連結詐騙數不勝數,家裡的爺爺奶奶,爸爸媽媽,甚至七大姑八大姨微信發給你的「點開連結並轉發10個群即可領取100元現金紅包」等等…
這些只是CSRF攻擊的冰山一角,那CSRF攻擊到底是什麼呢?
CSRF(跨站域請求偽造)攻擊雖然只是一種極為普通的攻擊方式,但是它覆蓋面極廣,而且大部分人防範意識薄弱,導致它流行了10多年,仍然經久不衰。
它核心思想在於,用戶在打開A網站的情況下,如果在Tab頁面打開了被CSRF攻擊過的惡意網站B,那此時在B頁面的「唆使」下,用戶自身瀏覽器會發起一個對網站A的HTTP請求。
這麼一聽好像也沒什麼厲害的,普普通通,但是CSRF攻擊最致命的一點是:這個HTTP請求不是用戶的主動意圖,而是B網頁「唆使」的,如果是一個危害較大的請求操作(比如發郵件?刪數據?偽造信息貸款?等等)那就麻煩了。
其次,因為在攻擊之前用戶已經打開了A網站,瀏覽器會存有A網站下發的Cookie或其他用於身份認證的信息,這次被「唆使」的請求,將會自動帶上這些信息,導致A網站後端分不清楚這是否是用戶真實的意願還是「偽請求」。
隨著用戶被「唆使」時間的延長,這些類似蠕蟲的惡意請求會一步一步挖空你的信息,嚴重的可能引導A網站直接轉帳。
這也就不難理解為何很多被CSRF攻擊到的人明明什麼都沒做,只是點開了連結,錢就失蹤了。
當你打開手機,在搜索欄輸入你想搜索的內容,按下回車的那一刻開始,你的上網信息已經匯報給網絡管理者(註:屬於合法行為,官方只收集你的網址,對你進行上網保護)
但並不是所有人都這麼做,更多的情況是攻擊者會監控你的一舉一動,獲取你的個人信息後轉賣給某些非法組織或非法盈利機構。但這種類型的網站也很好分辨,細心的人會發現,有些網址開頭是http,有些是https。
http是超文本傳輸協議,簡單來說就是用明文的方式傳輸數據。
https是安全套結字層超文本傳輸協議,即加密傳輸數據。
所以當你在http開頭的網站上輸入支付密碼、身份證號、銀行卡等等重要信息的時候,攻擊者通過截獲明文數據,這些內容將直接洩漏給攻擊者。
就好比你在銀行ATM機存錢的時候,輸入卡號和密碼的同時被ATM機明文廣播。
儘管細思極恐,但絕不是在誇大其辭,在網絡攻擊者看來,只是輸入幾行命令那麼簡單的事。
不過目前大部分網站都已經採用https加密傳輸協議,除了某些境外的「學習網站」和少數標記為廣告的網站仍在採用http協議(具體原因不用我多說了吧)
四、DDoS 攻擊
DDoS全稱是分布式拒絕服務攻擊(Distributed Denial of Service),屬於是最沒技術含量但攻擊起來最讓人頭疼的一種。攻擊者不斷地提出服務請求,讓合法用戶的請求無法及時處理,這是 DoS 攻擊。
而DDoS 攻擊是攻擊者使用多臺計算機或者計算機集群進行 DoS 攻擊
說簡單點,就是一個人去飯店吃飯,點了99999999999 個菜,然後這個人跑了,廚師還在忙活著,結果廚師累死了。
雖然聽起來很無腦,甚至有些好笑,但不得不承認它確實是很厲害。
世界上第一個計算機病毒Morris的原理就與DDOS攻擊類似,資源耗盡導致伺服器死機。
此後,消耗資源的攻擊的思維首次被一名黑客應用於郵件,導致當時多達數萬份郵件停滯。
2007年在愛沙尼亞戰爭中首次大規模使用DDOS攻擊,導致愛沙尼亞一整個國家在網際網路上銷聲匿跡。
2008年的喬治亞戰爭,DDOS攻擊又導致該國網絡全線癱瘓。
而在2018年,一境外黑客組織發動了迄今為止世界上規模最大的DDOS攻擊,攻擊目標是GitHub。在攻擊最高峰時,此攻擊以每秒1.3Tbps的速率傳輸流量,以每秒1.269億的速率發送數據包。幸運的是,GitHub的DDoS保護機制讓GitHub安全人員快速防禦,有效的阻止了這次大規模攻擊。
技術從來都是一柄雙刃劍,分布式技術既可以用來提供高可用的服務,也能夠被攻擊者用來進行大規模殺傷性攻擊。攻擊者不再局限於單臺計算機的攻擊能力,轉而通過成規模的網絡集群發起拒絕服務攻擊。這種規模攻擊足以讓一個國家網絡受到毀滅性打擊。
五、DNS劫持
當今網際網路流量中,以HTTP/HTTPS為主的Web服務產生的流量佔據了絕大部分,比如抖音、快手、愛奇藝、優酷等等更為突出。Web服務發展如此迅猛,這背後離不開一個默默無聞的大功臣就是域名解析系統DNS。
如果沒有DNS,我們上網需要記憶每個網站的IP位址而不是他們的域名,這簡直是災難,好在DNS默默在背後做了這一切,我們只需要記住一個域名,剩下的交給DNS來完成吧。
也正是因為其重要性,別有用心的人自然是不會放過它,DNS劫持技術又被發明了出來。
看到這是不是想吐槽一句:怎麼什麼東西都能當網絡攻擊手段啊?
沒錯,所以我們更要了解這些內容,提高自身的防範意識,我們接著說DNS劫持。
DNS提供服務最初是用來將域名轉換成IP位址,然而在早期協議的設計中並沒有太多考慮其安全性,所以對於查詢方的我們來說會產生諸多疑問:
我去請求的真的是一個DNS伺服器嗎?
確定不是別人冒充的?
查詢的結果有沒有被人篡改過?
這個IP真是這個網站的嗎?
遺憾的是DNS協議中沒有機制去保證能回答這些問題,因此DNS劫持現象非常泛濫,從用戶在地址欄輸入一個域名的那一刻起,一路上的兇險防不勝防,好比唐僧獨自去西天取經,簡直就是小母牛坐電線——牛X帶閃電。
後來,為了解決這個問題,出現了DNSSEC技術,一定程度上可以解決上面的部分問題。但限於一些方面的原因,這項技術並沒有大規模使用,尤其在國內,鮮有部署應用。
再後來,以阿里、騰訊等頭部網際網路廠商為首開始推出了httpDNS服務,來了一招釜底抽薪,雖然這項技術的名字中還有DNS三個字母,但實現上和原來但DNS已經是天差地別,通過這項技術讓DNS變成了在http協議之上的一個應用服務。所以現在國內網站基本很少會遇到DNS劫持的事件。
六、JSON 劫持
JSON是一種輕量級的數據交換格式,而劫持就是對數據進行竊取(或者應該稱為打劫、攔截比較合適)。惡意攻擊者通過某些特定的手段,將本應該返回給用戶的JSON數據進行攔截,轉而將數據發送回給惡意攻擊者。
如果說前面那幾個哥們是把你打劫的啥都不剩,那JSON劫持就看起來「溫柔」許多,它只打劫那些敏感信息或者有價值的數據。JSON漏洞主要被攻擊者用在受害者不知不覺中竊取他們的隱私數據,常常被一些 APT 組織採用進行信息收集和釣魚的工作( 也稱水坑攻擊 )
簡單來說就是小偷進到張三家裡,他不會傻到把沙發柜子搬走,他選擇拿金屬探測儀掃描,只帶金屬類的東西,拿相對價值最高的東西走。
那有人就好奇,有價值的數據無非就是姓名,手機號,身份證號,email郵箱,以及一些網站的登錄密碼,還能有什麼呢?
Cookies,簡單來說就是攻擊者登錄你的帳號不一定要用密碼登錄,也可以藉助Cookies直接進入帳戶。
除此之外,它甚至可以是 CSRF Token 信息,前面談過CSRF攻擊,一定還有印象吧,可以說CSRF Token 就是防禦的CSRF攻擊的屏障,從內部瓦解才是最令人恐怖的。
七、暴力破解
這個名字,是不是比前面幾個熟悉多了,暴力破解聽名字也猜得出來原理很簡單。它一般針對密碼而言,弱密碼(Weak Password)很容易被別人(對你很了解的人等)猜到或被破解工具暴力破解。具體了解可以去看看我前面發的密碼學的博文。
總結
本文旨在用一些通俗易懂的大白話來聊網絡攻防,科普的同時幫助大家增強網絡防範的意識。這些例子是我對網絡攻防的一些理解,可能具體細節不是很精準,但整體思路是對的。
同時我想讓更多非本專業的朋友們能了解網絡攻擊到底是什麼,拋開定型化認知壁壘,它並沒有想像的那麼神秘,網絡攻防就在我們身邊,提高防範意識,才能在網際網路中保護自己,保護家人。
若文章內容描述有誤,請大家指正!
————————————————
版權聲明:本文為CSDN博主「九芒星#」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_48701521/article/details/124208443
,