20169217 2016-2017-2 《網絡攻防實踐》第十一週學習總結

   Collabtive 系統 SQL 注入實驗 php

    實驗介紹mysql

    SQL注入技術是利用web應用程序和數據庫服務器之間的接口來篡改網站內容的攻擊技術。經過把SQL命令插入到Web表單提交框、輸入域名框或頁面請求框中,最終欺騙服務器執行惡意的SQL命令。web

    在這個實驗中,咱們使用的web應用程序稱爲Collabtive。咱們禁用Collabtive的若干防禦措施,這樣咱們就建立了一個容易受到SQL注入攻擊的Collabtive版本。通過咱們的人工修改,咱們就能夠經過實驗分析許多web開發人員的常見錯誤與疏忽。在本實驗中學生的目標是找到方法來利用SQL注入漏洞實施攻擊,並經過掌握的技術來阻止此類攻擊的發生。 預備知識sql

    一、 SQL語言數據庫

    結構化查詢語言(Structured Query Language)簡稱SQL:是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統;同時也是數據庫腳本文件的擴展名。apache

    二、SQL注入編程

SQL注入:SQL注入能使攻擊者繞過認證機制,徹底控制遠程服務器上的數據庫。SQL是結構化查詢語言的簡稱,它是訪問數據庫的事實標準。目前,大多數Web應用都使用SQL數據庫來存放應用程序的數據。幾乎全部的Web應用在後臺都使用某種SQL數據庫。跟大多數語言同樣,SQL語法容許數據庫命令和用戶數據混雜在一塊兒的。若是開發人員不細心的話,用戶數據就有可能被解釋成命令,這樣的話,遠程用戶就不只能向Web應用輸入數據,並且還能夠在數據庫上執行任意命令了。ubuntu

sql注入原理講解vim

    三、SQL注入危害服務器

        非法讀取、篡改、添加、刪除數據庫中的數據。

        盜取用戶的各種敏感信息,獲取利益。

        經過修改數據庫來修改網頁上的內容。

        私自添加或刪除帳號。

        注入木馬等等。

    四、環境搭建

        啓動mysql:

sudo mysqld_safe

 

    注意啓動後程序不會退出,能夠打開新的終端執行後續命令。

    啓動Apache:  

sudo service apache2 start

    密碼:dees

配置DNS:

    sudo vim /etc/hosts

    按i進入編輯模式,編輯文件

    編輯完成後按Esc退出編輯

    完成後使用 :wq 保存並退出

    配置網站文件:

sudo vim /etc/apache2/conf.d/lab.conf     

sudo service apache2 restart  重啓服務

 

        用戶名:admin;密碼:admin

   

    關閉php配置策略:

sudo vim /etc/php5/apache2/php.ini 

      把magic_quotes_gpc=On 改成 magic_quotes_gpc = Off

  

    關於magic_quotes_off函數:

    對於magic_quotes_gpc=on的狀況, 咱們能夠不對輸入和輸出數據庫的字符串數據做addslashes()和stripslashes()的操做,數據也會正常顯示;

    若是此時你對輸入的數據做了addslashes()處理,那麼在輸出的時候就必須使用stripslashes()去掉多餘的反斜槓。

    對於PHP magic_quotes_gpc=off 的狀況

    必須使用addslashes()對輸入數據進行處理,但並不須要使用stripslashes()格式化輸出,由於addslashes()並未將反斜槓一塊兒寫入數據庫,只是幫助mysql完成了sql語句的執行。

實驗內容 lab1 select語句的sql注入

    訪問:www.sqllabcollabtive.com;當咱們知道用戶而不知道到密碼的時候,咱們能夠怎麼登錄?

    查看登錄驗證文件:

sudo vim /var/www/SQL/Collabtive/include/class.user.php

    設置行號 :set number

    查找 :/keyword

   

    找到其中第375行

$sel1 = mysql_query ("SELECT ID, name, locale, lastlogin, gender, FROM user WHERE (name = '$user' OR email = '$user') AND pass = '$pass'");

    這一句就是咱們登陸時,後臺的sql語句;咱們能夠構造一個語句,在不知道密碼的狀況下登錄; 

$sel1 = mysql_query ("SELECT ID, name, locale, lastlogin, gender, FROM user WHERE (name = '$user ') #' OR email = '$user') AND pass = '$pass'");

 

    修改完後重啓一下服務器:

   

sudo service apache2 restart

 

    咱們在$user後面加上) # 這樣就會只驗證用戶名,後面的會被#註釋

 arp欺騙攻擊

    首先準備三臺實驗用虛擬機,分別是kali(攻擊機),Metasploitable—ubuntu(一號靶機,做爲FTP服務器),Metasploitable—win2k(二號靶機,做爲FTP服務器訪問者)。

    分別記錄下三臺計算機的IP地址和MAC地址,分別爲:

    而後,咱們用kali主機,來ping另外兩臺主機,目的是獲取它們的ip和mac的對應關係,ping完以後拿arp -a命令進行查看。

    這時,咱們打開kali主機的wireshark來進行抓包,抓包的過濾條件爲(tcp or arp) and (ip.addr==222.28.136.122 or ip.addr==222.28.136.226 or ip.addr==222.28.136.223)

    而後就要開始用netwox工具進行ARP報文欺騙了,以下

    選擇5號結點(在命令行中工做),33號工具(構造以太網ARP數據報)

    最後咱們開始製做ARP報文,根據如下圖片中的參數顯示,咱們只需填寫上相應的MAC地址和IP地址便可

    將這兩個報文發送出去,以後咱們就能查出欺騙的mac和ip的對應信息

    當兩臺靶機保存了錯誤的arp信息以後,咱們用ubantu去訪問win2k的FTP服務

    而後在kali中用wireshark進行抓包,篩選,能夠看到下面的結果

 

    監聽到了兩個靶機之間的通訊數據包。

ICMP重定向攻擊

    首先查看靶機ip地址:222.28.136.122,攻擊機的ip地址:222.28.136.223

    咱們打開wireshark,輸入判斷條件
    (tcp or arp or icmp) and ip.addr == 222.28.136.122
    準備抓包。
    這時咱們開啓netwox進行ICMP路由重定向,使用第netwox工具,按照工具提示進行數據包的篡改,以下圖

    咱們開啓wireshark,用靶機ping baidu.com,能夠看到wireshark馬上截獲了靶機發往目標服務器的的相關報文,以下圖所示:

    而後這時咱們再查看靶機的路由表,和以前的相對比,靶機已經錯誤的將網關更改成了咱們的攻擊機的IP地址

相關文章
相關標籤/搜索