《網絡攻防》第11周做業

20169310 2016-2017-2 《網絡攻防實踐》第11周學習總結

實驗一 TCP/IP攻防實驗

以前也作過相似實驗,可參見《網絡攻防》第6周做業
實驗環境選用: 主機A:Metasploitable ubuntu(192.168.37.130);主機B:XP(192.168.37.160);主機C:Seed(192.168.37.180)
AB之間進行正常通訊,C做爲攻擊機php

1.ARP欺騙

主機A經過ping其餘主機,能夠獲得一個路由信息表:html


經過此表,保存了IP地址與對應MAC之間的映射關係,而ARP欺騙就是改變這個表當中的映射關係,以達到欺騙的目的。
這裏選用 netwox 工具進行操做,在主機C當中執行如下命令:mysql


這樣,咱們再去查看主機A的路由信息:web


能夠發現,信息表中關於主機B的IP地址所對應的MAC地址已經被改爲了C的MAC地址,這樣A發往B的數據就會被錯誤指向C了。sql

2.SYN FLOOD攻擊

使用主機C對A實施攻擊,其原理在於C向A發送大量半鏈接的TCP請求,會填滿A的網絡緩存隊列,致使A再也不相應正常請求,已達到A網絡服務癱瘓的目的。
使用以下命令:數據庫


同時,可利用Wireshark工具抓取數據包查看:ubuntu


確實如咱們預想的那樣,C向A發送了大量的TCP數據包。vim

實驗二 SQL注入

主要經過實驗樓Collabtive系統SQL注入實驗課程,學習如何進行SQL注入。緩存

1、實驗簡介

SQL注入技術是利用web應用程序和數據庫服務器之間的接口,把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,欺騙服務器執行惡意的SQL命令。
SQL注入會帶來:
1.非法讀取、篡改、添加、刪除數據庫中的數據。
2.盜取用戶的各種敏感信息,獲取利益。
3.經過修改數據庫來修改網頁上的內容。
4.私自添加或刪除帳號。
5.注入木馬等等。服務器

2、實驗步驟

實驗所用的web應用程序稱爲Collabtive,禁用Collabtive的若干防禦措施,建立了一個容易受到SQL注入攻擊的Collabtive版本。
首先可按照實驗文檔進行環境配置:

1.select語句的SQL注入

打開登陸驗證文件:
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')# ,便可繞過密碼登陸:


2.update語句的SQL注入

在登陸驗證文件當中,以下位置:

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

參考資料

1.Collabtive系統SQL注入實驗

相關文章
相關標籤/搜索