20169218 2016-2017-2 《網絡攻防實踐》第十一週做業

TCP/IP攻防實驗


1.ARP欺騙

對靶機進行ping操做,查看是否相互鏈接。
ping Lumix靶機

ping Windows靶機

使用netwox 工具對改變對靶機IP和MAC的映射,以達到欺騙的目的。隨後再去查看路由地址。


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

2.SYN FLOOD攻擊

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

能夠看出,發送了大量tcp包。
mysql

Collabtive系統SQL注入實驗


SQL注入技術是利用web應用程序和數據庫服務器之間的接口來篡改網站內容的攻擊技術。經過把SQL命令插入到Web表單提交框、輸入域名框或頁面請求框中,最終欺騙服務器執行惡意的SQL命令。
在這個實驗中,咱們使用的web應用程序稱爲Collabtive。咱們禁用Collabtive的若干防禦措施,這樣咱們就建立了一個容易受到SQL注入攻擊的Collabtive版本。通過咱們的人工修改,咱們就能夠經過實驗分析許多web開發人員的常見錯誤與疏忽。在本實驗中學生的目標是找到方法來利用SQL注入漏洞實施攻擊,並經過掌握的技術來阻止此類攻擊的發生。web

相關知識

一、SQL語言
結構化查詢語言(Structured Query Language)簡稱SQL:是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統;同時也是數據庫腳本文件的擴展名。
二、SQL注入
SQL注入:SQL注入能使攻擊者繞過認證機制,徹底控制遠程服務器上的數據庫。SQL是結構化查詢語言的簡稱,它是訪問數據庫的事實標準。目前,大多數Web應用都使用SQL數據庫來存放應用程序的數據。幾乎全部的Web應用在後臺都使用某種SQL數據庫。跟大多數語言同樣,SQL語法容許數據庫命令和用戶數據混雜在一塊兒的。若是開發人員不細心的話,用戶數據就有可能被解釋成命令,這樣的話,遠程用戶就不只能向Web應用輸入數據,並且還能夠在數據庫上執行任意命令了。
三、SQL注入危害
一、非法讀取、篡改、添加、刪除數據庫中的數據。
二、盜取用戶的各種敏感信息,獲取利益。
三、經過修改數據庫來修改網頁上的內容。
四、私自添加或刪除帳號。
五、注入木馬等等。
** 四、環境搭建**
啓動mysql:
sudo mysqld_safe
啓動Apache:
sudo service apache2 start
配置DNS:
sudo vim /etc/hosts
重啓服務器,打開登陸界面

關閉php配置策略:
sudo vim /etc/php5/apache2/php.ini
sql

實驗內容

1.select語句的SQL注入
訪問:www.sqllabcollabtive.com;當咱們知道用戶而不知道到密碼的時候,咱們能夠怎麼登錄?
查看登錄驗證文件:
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;
    }
}```

而後咱們退出當前用戶,使用ted用戶登陸,這個時候ted用戶的密碼應該是pass;

apache

相關文章
相關標籤/搜索