網絡安全實驗報告 第二章

利用TCP協議實現synflood攻擊

運行syn攻擊程序,以靶機為目標主機對其發送syn數據包,查看目標主機狀態。

  1. 利用xdos工具進行攻擊
    首先在192.168.1.3的目標機器上打開wireshark,過濾出ip.dst=192.168.1.3的IP包。
    再在192.168.1.2的發動攻擊的主機上輸入命令:192.168.1.3 135 -t 3 -s 55.55.55.55
  2. 利用wireshark軟件抓取SYN數據包
    返回192.168.1.3機器,可以看到出現大量包:


  3. 課后習題:
  • 如何防范xdos攻擊:
    定期掃描現有的網絡主節點,清查可能存在的安全漏洞,對新出現的漏洞及時進行清理。
    在骨干節點配置防火墻。防火墻本身能抵御Ddos攻擊和其他一些攻擊。在發現受到攻擊的時候,可以將攻擊導向一些犧牲主機,這樣可以保護真正的主機不被攻擊。
    充分利用網絡設備保護網絡資源。
  • 防病毒軟件對于dos攻擊來說是無效的。
  • 根據TCP/IP協議,發送端發出SYN后,接收端返回SYN+ACK。

SQL注入原理-手工注入access數據庫

SQL注入是通過把SQL命令插入到web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意SQL命令。

  1. 找到有注入漏洞的目標網站
    在網站鏈接的末尾添加'and 1=1and 1=2來驗證網站192.168.1.3:8008存在注入點:
  2. 猜解表名
    在鏈接末尾添加語句and exists(select * from admin),頁面正常,說明存在表名admin

    用同樣的方法證明存在列password
  3. 猜測字段內容
    在鏈接末尾說如語句and (select top 1 len (admin) from admin)>1,逐漸增加1知道頁面出錯,說明字段長為5:

    用同樣的方法,猜解除第一條記錄第一位字符ASCII碼為97,admin字段內容為admin,password字段內容為bfpms。
  4. 課后習題
    如何高效地進行猜測:不要盲目遍歷所有可能,而是從常規情況入手,例如admin字段內容常為admin;又如,采用二分法猜測字段長度,比如長度>1成功,長度>10錯誤,則可從5開始檢查。

SQL注入原理-手工聯合查詢注入技術

  1. 檢測字段長度
    檢測鏈接192.168.1.3:8008/onews.asp?id=45,在后面添加order by 11時顯示正常,添加order by 12時錯誤,說明此站字段長度為11:
  2. 暴露管理員用戶、密碼
    在連接后面添加語句union select 1,2,3,4,5,6,7,8,9,10,11 from admin,頁面顯示數字2和3:

    再添加語句union select 1,admin,password,4,5,6,7,8,9,10,11 from admin,即可暴露出用戶名和密碼:
  3. 課后習題
    聯合查詢可合并多個相似的選擇查詢的結果集。等同于將一個表追加到另一個表,從而實現將兩個表的查詢組合到一起,使用謂詞為UNION或UNION ALL。

SQL注入原理 -萬能密碼注入

用戶進行用戶名和密碼驗證時,網站需要查詢數據庫,查詢數據庫就是執行SQL語句。

  1. 訪問目標站點
    打開網頁192.168.1.3:8009,輸入用戶名admin,密碼2' or ' 1,即可進入論壇。

DVWA之php+mysql手工注入

在用戶的輸入沒有為轉義字符過濾時,就會發生SQL injection形式的注入式攻擊,它會被傳遞給一個SQL語句,這樣就會導致應用程序的終端用戶對數據庫上的語句實施操縱。

  1. 打開192.168.1.3:8080/dvwa/login.php,輸入用戶名和密碼登陸。將DVWA的安全級別調整為low,選擇SQL injection,進入頁面。當如輸入正確的用戶ID時,將顯示相關信息:

    當輸入'時則報錯:

    輸入1 or 1=1時并沒有達成遍歷數據庫表的目標,猜測程序將此處看成了字符型,可以嘗試:1' or '1' =' 1后遍歷出所有內容:

    由下圖判斷查詢結果值為2列:

    通過使用user() databse() version()三個內置函數得到數據庫的賬戶名、數據庫名、版本信息:




    通過注入1' and 1=2 union select 1,schema_name from information_schema,schemata --獲取所有數據庫名字:

    猜解dvwa數據庫中的表名:

    猜解字段名:

    通過代碼可以看出,對輸入的值沒有進行任何過濾就直接放入了SQL語句中,帶來了極大隱患。
  2. 中等等級代碼分析
    對輸入的$id進行mysql_real_escape_string()函數處理,但只需要將攻擊字符轉換一下編碼格式即可繞過防護函數。
  3. 高等級代碼分析
    對輸入$id進行stripslashed()mysql_real_escape_string()函數處理,斷絕了注入的存在。

動網論壇8.2經典注入漏洞利用

動網8.2在用戶登錄時過濾不嚴,可以導致注入,提升權限。

  1. 正常注冊登錄
    訪問192.168.1.3:8010/,然后注冊
  2. 漏洞測試與利用
    使用san' and 'a' =' a的用戶名和密碼1234567登錄,顯示:

    輸入';update dv_user set usergroupid=1 where username='san'--,提示用戶名不存在:

    但是重新登錄san時可看到已經擁有管理員的權限:

    退出,輸入密碼為san';insert into dv_admin(username,password,flag,adduser)....,從管理員頁面192.168.1.3:8010/admin使用san用戶名和密碼登陸,發現登陸成功。
  3. 課后習題
    html注入不同于sql注入;name=zhang中的zhang沒有加引號。

跨站腳本攻擊之反射型XSS

CSS指的是惡意攻擊者往web頁面里插入惡意代碼,用戶瀏覽該頁時,嵌入其中的html代碼會被執行,從而達到惡意攻擊用戶的目的。

  1. 打開測試站點
    打開網頁192.168.1.3:8006/input.htm,輸入hello并提交,結果正常。
  2. 在站點中輸入XSS代碼
    輸入XSS代碼<script>alert('hello')</script>提交,彈出對話框
  3. 課后習題
    反射型XSS觸發是主動觸發的。

跨站腳本攻擊之存儲型XSS

跨站腳本攻擊是指,用戶可以向web頁面里插入惡意html代碼,當用戶瀏覽該頁時,html代碼會自動執行從而達到惡意攻擊用戶的目的。

  1. 尋找XSS漏洞
    登陸192.168.1.3:8080/2點擊在線留言。經過嘗試發現頁面對輸入文字長度進行了限制。
  2. XSS漏洞利用
    在留言標題處輸入*/</script>提交,再在標題處輸入<script>alert(/xss/)/*來配合上一段代碼的執行:

    當管理員進入管理后臺后,查看留言管理,會觸發惡意代碼成功彈窗:
  3. 課后習題
  • 如何判斷頁面存在XSS:采用盲打策略, 在對數據提交后展現的后臺未知的情況下,網站采用了攻擊者插入了帶真實攻擊功能的xss攻擊代碼(通常是使用script標簽引入遠程的js)的數據。通俗講就是見到輸入框就輸入提前準備的xss代碼。
  • XSS其他利用方式:反射型xss,相對于存儲型xss來說比較雞肋;需要欺騙用戶點擊構造好的鏈接,達到竊取cookie,或是進一步CSRF劫持用戶操作的目的。
  • 存儲型XSS不能盜取管理員cookie,因為權限不夠,只能獲取一般用戶的cookie。

Csrf利用管理員權限創建后臺管理賬戶

通過普通用戶的存儲型XSS實現創建管理員賬戶的CSRF利用。

  1. 測試漏洞
    打開192.168.1.3:8007,注冊用戶,登陸,添加二手信息并提交。彈出信息,說明漏洞存在:
  2. 利用漏洞
    再添加一個物品,在物品內容處填寫事先編寫好的腳本,以管理員身份登陸系統并點擊這個物品網頁查看。退出后進入管理員系統,看到管理員中多了一個用戶zhangsan:



    并可直接以zhangsan的身份登陸管理員系統:


  3. 課后習題
    DSRF漏洞的利用原理:與XSS不同,XSS利用站點內的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網站。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容