關於WEB站點的安全

1、SQL注入
2、XSS
3、弱口令
4、業務邏輯漏洞
當然 還有其他奇奇怪怪的各種各樣漏洞就不一一介紹了,但是以上四種是目前最流行的攻擊方式
下面我就講一下各種漏洞的危害:
1、sql注入
由於現在WEB站點的功能越來越複雜,數據量越來越大,一些功能上的參數越來越多,難免會有疏漏,不管是get注入post注入cookie注入還是session注入,反正駭客們就是有他們自己的辦法;
SQL注入的危害有很多:
1) 數據泄露
2) 數據被非法篡改
3) 系統信息泄露
4) 系統文件泄露(如果有權限)
5) 系統shell泄露(如果有權限)
拿SQLSERVER來說,一個小小的SQL注入點如果是擁有相應權限就可以篡改任意數據,跨庫查看數據,修改系統註冊表,任意文件上傳下載等等等等的危害;
具體的攻擊方式不方便透露,但是可以透露原理;
mssql中任意文件上傳下載是利用日誌的轉儲功能
篡改數據這個大家都應該能理解,直接執行sql語句即可;
包括拖庫(直接下載數據庫中所有數據到本地)等;
由於本機沒有mssql,就用Mysql進行一個簡單的演示;


假設某web頁面有這樣一條查詢語句
select id,name from user where id=1;
並且id沒有進行過濾
那麼進行如下拼接sql語句:




即可爆出mysql的版本信息


讀取系統文件包括linux的/etc/passwd文件、/etc/shadow等
sql注入的危害遠遠不止這些後續我會講解防範的方法
XSS的危害非常大,並且較爲複雜,具體原理是駭客們通過HTML標籤注入到正常的網頁中去;
本人親歷過一次較大的XSS攻擊是去年的百度貼吧XSS蠕蟲攻擊
當時所有點擊受感染的帖子的用戶都會中招並且自動發病毒帖
有管理權限的還會自動把病毒帖子置頂加精 當時波及範圍非常大
下面我演示一個簡單的XSS注入:


這個頁面的功能是這樣:
用戶輸入一個地址,然後在置頂div中生成超級鏈接
如果我在輸入框中輸入生成的超級鏈接即可點擊跳轉到百度
可如果我輸入惡意代碼比如:
' οnclick='alert("無名指7年")'

這時生成的html代碼就會包含惡意腳本點擊超級鏈接後會彈出


這樣一個對話框

可能大家覺得彈出一個對話框的危害沒什麼
但是我如果把onclick事件中觸發引用一個我自己服務器的惡意js代碼
就可以獲取用戶的cookie、瀏覽器信息、系統信息等等
由於本人前端渣渣 詳細的就不演示了 總之XSS是web安全的頭號大敵
3、弱口令
這個沒太多好說的 就是一些程序員和管理員爲了省事
用一些簡單的賬戶密碼作爲系統或者某些重要管理平臺的賬戶密碼
比如說 賬戶 admin 密碼 admin 
ceshi ceshi 
admin 123456
等等
這些密碼設置與不設置形同虛設
駭客們隨隨便便就找一個弱口令字典掃幾分鐘就進去了
個人推薦密碼要設置爲12位以上,並且包含大小寫以及特殊符號

我前幾天試驗過窮舉我本機的mysql密碼
A-Z a-z以及特殊符號@@¥%……&* 
7位的密碼用了17個小時才窮舉成功
本人電腦配置I7-3740QM 內存16G
當然 到那種專門想窮舉爆破的 密碼長一定時間後總能爆破成功
如果想相對安全一些就採用動態密碼等方式

4、業務邏輯漏洞
現在各種各樣的系統各種各樣的門戶網站都有個賬戶密碼登錄
又是密碼提示問題 又是驗證碼等等弄了一大堆
結果業務邏輯部分沒有做登錄校驗一切都暴漏出來了
不光是登錄驗證 還有其他奇奇怪怪的東西
比如烏雲上爆出的某某網站密碼找回時直接把發送到手機的驗證碼發給瀏覽器了
某龍的訂單沒有做強數據校驗0.1元可以訂任意酒店等等
具體的大家可以上烏雲看

下面來演示一下webshell的威力
借用吧裏某位同學的服務器st2 s2-16漏洞(現在還沒補上)
上傳我自己的webshell


上傳好了自己的shell 在權限內想做什麼就做什麼了 比如說看看etc/passwd文件內容


用戶信息暴漏無疑


查看下web站點的web.xml配置文件





數據庫的賬戶密碼


簡單的來說 我可以在他的用戶權限內做任何事情

這是我以前寫代碼中忽略的一個非常嚴重的漏洞
業務場景是:
通過servlet調用該方法,根據客戶端url傳來的文件名在某個文件夾下下載某個文件
具體代碼:


這個漏洞的危害是任意文件下載,因爲我沒有對用戶輸入的文件名進行合法性校驗
漏洞演示:


當我請求某個奇葩路徑 就能達到任意文件下載的目的
如/etc/passwd /etc/shadow文件等

關於防範:
個人的建議有以下幾點:
1、不要相信用戶的任何輸入,所有輸入的數據都要做校驗(sql xss等),千萬不要怕麻煩,否則以後被黑了找漏洞更煩
2、程序出的異常要設置404 500 等各種錯誤頁面 web容器要配置好不顯示文件列表,防止黑客在嘗試攻擊時顯示響應的錯誤回顯幫助黑客進行攻擊
3、防火牆是個好東西,另外防火牆設置爲白名單比黑名單效果好得多
白名單即允許的才能訪問,其他全部拒絕;
黑名單即指定的不能訪問,其他依然可以訪問;
4、很多人喜歡在寫程序的時候對數據庫連接使用配置文件方式存儲賬戶密碼,包括ssh框架,但是密碼是明文存儲在文件中的,假設服務器淪陷看到配置信息,直接就可以入侵數據庫
比如12層,個人建議這些文件採用加密存儲,對於ssh可以修改框架的相應位置
5、網址URL轉義爲HTML,讓攻擊者無法第一時間判斷該站點是採用某種語言寫的,增大攻擊難度
6、網站後臺儘量不要讓外網訪問,如果非訪問不可可以做強密碼校驗,IP校驗等等
7、多關注烏雲 csdn iteye等網站 爆出新漏洞及時修復


暫時總結的就是這些 如果各位j8er在寫代碼如果能注意這些 網絡安全環境就會好很多
作者by 一個相當白帽子的無名指7年 
轉載請註明出處
發佈了28 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章