以前也作過相似實驗,可參見《網絡攻防》第6周做業
實驗環境選用: 主機A:Metasploitable ubuntu(192.168.37.130);主機B:XP(192.168.37.160);主機C:Seed(192.168.37.180)
AB之間進行正常通訊,C做爲攻擊機php
主機A經過ping其餘主機,能夠獲得一個路由信息表:html
經過此表,保存了IP地址與對應MAC之間的映射關係,而ARP欺騙就是改變這個表當中的映射關係,以達到欺騙的目的。
這裏選用 netwox 工具進行操做,在主機C當中執行如下命令:mysql
這樣,咱們再去查看主機A的路由信息:web
能夠發現,信息表中關於主機B的IP地址所對應的MAC地址已經被改爲了C的MAC地址,這樣A發往B的數據就會被錯誤指向C了。sql
使用主機C對A實施攻擊,其原理在於C向A發送大量半鏈接的TCP請求,會填滿A的網絡緩存隊列,致使A再也不相應正常請求,已達到A網絡服務癱瘓的目的。
使用以下命令:數據庫
同時,可利用Wireshark工具抓取數據包查看:ubuntu
確實如咱們預想的那樣,C向A發送了大量的TCP數據包。vim
主要經過實驗樓Collabtive系統SQL注入實驗課程,學習如何進行SQL注入。緩存
SQL注入技術是利用web應用程序和數據庫服務器之間的接口,把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,欺騙服務器執行惡意的SQL命令。
SQL注入會帶來:
1.非法讀取、篡改、添加、刪除數據庫中的數據。
2.盜取用戶的各種敏感信息,獲取利益。
3.經過修改數據庫來修改網頁上的內容。
4.私自添加或刪除帳號。
5.注入木馬等等。服務器
實驗所用的web應用程序稱爲Collabtive,禁用Collabtive的若干防禦措施,建立了一個容易受到SQL注入攻擊的Collabtive版本。
首先可按照實驗文檔進行環境配置:
打開登陸驗證文件:
sudo vim /var/www/SQL/Collabtive/include/class.user.php
在375行處,更改成:
$sel1 = mysql_query ("SELECT ID, name, locale, lastlogin, gender, FROM user WHERE (name = '$user ') #' OR email = '$user') AND pass = '$pass'");
而後重啓服務器後,打開登陸界面,輸入 admin')#
,便可繞過密碼登陸:
在登陸驗證文件當中,以下位置:
function edit($id, $name, $realname, $email, $tel1, $tel2, $company, $zip, $gender, $url, $address1, $address2, $state, $country, $tags, $locale, $avatar = "", $rate = 0.0) { $name = mysql_real_escape_string($name); $realname = mysql_real_escape_string($realname); //modified for SQL Lab //$company = mysql_real_escape_string($company); $email = mysql_real_escape_string($email); // further escaped parameters removed for brevity... $rate = (float) $rate; $id = (int) $id; if ($avatar != "") { $upd = mysql_query("UPDATE user SET name='$name', email='$email', tel1='$tel1', tel2='$tel2', company='$company', zip='$zip', gender='$gender', url='$url', adress='$address1', adress2='$address2', state='$state', country='$country', tags='$tags', locale='$locale', avatar='$avatar', rate='$rate' WHERE ID = $id"); } else { // same query as above minus setting avatar; removed for // brevity } if ($upd) { $this->mylog->add($name, 'user', 2, 0); return true; } else { return false; } }
咱們會發現sql語句爲:SELECT ID WHERE name='$user',而且company的位置是存在注入漏洞。
因此,咱們以用戶名bob,密碼bob登陸系統,在用戶編輯界面修改信息並保存:
company處填寫:
', `pass` = '9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684' WHERE ID = 4 # ' 其中,這一串數字是pass的md5值
這樣,就擁有了一個名爲ted,密碼爲pass的新帳號,能夠經過登陸進行測試:
能夠看到,ted用戶登陸成功。
面對這些潛在的SQL注入漏洞,可經過默認開啓 magic_quotes_gpc
來防護轉義特殊字符的使用、避免使用特殊字符、使數據與sql語句分離等方法進行防護。
通過本週的學習,主要學習了SQL注入的攻擊實現方法,這個方法以前也接觸過,這次算是再一次加深了對這個漏洞攻擊的理解。
完成網絡攻防課程的學習,完成各類攻防實踐操做。
完成TCP/IP攻防實驗與SQL注入實驗。
周次 | 教材學習 | 視頻學習(新增/累計) | 博客(新增/累計) |
---|---|---|---|
第1周 | (實驗樓學習) | (實驗樓學習) | 1/1 |
第2周 | 第一、2章 | 5/5 | 1/2 |
第3周 | 第3章 | 5/10 | 2/4 |
第4周 | 第4章 | 5/15 | 1/5 |
第5周 | 第十一、12章 | 5/20 | 1/6 |
第6周 | 第五、6章 | 5/25 | 1/7 |
第7周 | 第7章 | 5/30 | 1/8 |
第8周 | 第8章 | 5/35 | 1/9 |
第9周 | 第九、10章 | 3/38 | 1/10 |
第10周 | (實驗樓學習) | (實驗樓學習) | 1/11 |
第11周 | (實驗樓學習) | (實驗樓學習) | 1/12 |