1.XSS
原理是攻擊者向有XSS漏洞的網站中輸入(傳入)惡意的HTML代碼,當用戶瀏覽該網站時,這段HTML代碼會自動執行,從而達到攻擊的目的。如,盜取用戶Cookie信息、破壞頁面結構、重定向到其它網站等。
理論上,只要存在能提供輸入的表單並且沒做安全過濾或過濾不徹底,都有可能存在XSS漏洞。下面是一些最簡單並且比較常見的惡意字符XSS輸入:
1.XSS 輸入通常包含 JavaScript 腳本,如彈出惡意警告框:<script>alert("XSS");</script>
2.XSS 輸入也可能是 HTML 代碼段,譬如:
(1).網頁不停地刷新 <meta http-equiv="refresh" content="0;">
(2).嵌入其它網站的鏈接 <iframe src=http://xxxx width=250 height=250></iframe> 除了通過正常途徑輸入XSS攻擊字符外,還可以繞過JavaScript校驗,通過修改請求達到XSS攻擊的目的,如下圖:
相關博文鏈接地址:http://www.jb51.net/article/72175.htm
1.CSRF
CSRF(Cross-site request forgery)跨站請求偽造,也被稱為“One Click Attack”或者Session Riding,通常縮寫為CSRF或者XSRF,是一種對網站的惡意利用。
CSRF站內類型的漏洞在一定程度上是由於程序員濫用$_REQUEST類變量造成的。在一些敏感的操作中(如修改密碼、添加用戶等),本來要求用戶從表單提交發起POST請求傳遞參數給程序,但是由於使用了$_REQUEST等變量,程序除支持接收POST請求傳遞的參數外也支持接收GET請求傳遞的參數,這樣就會為攻擊者使用CSRF攻擊創造條件。一般攻擊者只要把預測的請求參數放在站內一個貼子或者留言的圖片鏈接里,受害者瀏覽了這樣的頁面就會被強迫發起這些請求。
相關博文鏈接:http://www.(pythontab.com)/html/2014/php_1121/923.html
1.文件漏洞
上傳文件的時候,需要通過tmp_name$_FILES字段來檢測文件的后綴。否則,比如圖片,如果單通過后綴來判斷文件類型,就出現一線問題/比如 a.php%00.jpg.其中%00為十六進制的0x00字符,.jpg騙過了應用的上傳文件類型檢測,但對於服務器來說,因為%00字符截斷的關系,最終上傳的文件變成了xxx.php。並且對於用戶來說通過URL訪問是可執行的。
相關博文連接:http://blog.csdn.net/u014609111/article/details/52701827
2.SQL注入漏洞及防范
SQL注入即是指web應用程序對用戶輸入數據的合法性沒有判斷,攻擊者可以在web應用程序中事先定義好的查詢語句的結尾上添加額外的SQL語句,以此來實現欺騙數據庫服務器執行非授權的任意查詢,從而進一步得到相應的數據信息
●SQL注入威脅表現形式可以體現為以下幾點:
●繞過認證,獲得非法權限
●猜解后台數據庫全部的信息
●注入可以借助數據庫的存儲過程進行提權等操作
●SQL注入攻擊的典型手段
●判斷應用程序是否存在注入漏洞
●收集信息、並判斷數據庫類型
●根據注入參數類型,重構SQL語句的原貌
●猜解表名、字段名
●獲取賬戶信息、攻擊web或為下一步攻擊做准備
比如:“sql” or (and,||,&&)1 =1
SQL危害。。。
防范:設置用戶權限 比如之給CRUD功能
網上連接很多。
截取:http://netsecurity.51cto.com/art/201108/287651.htm
http://www.jb51.net/hack/57188.html
3.文件泄露(.git/.svn/.hg/.bak/.swp/.swo)
對於一些文件,git 、svn、.bak壓縮包文件不要不加以分辨直接傳到服務器,可能會造成文件泄露。Linux vim會產生.swp文件,也會暴露,盡量將文件設置在用戶不可訪問的目錄,比如www/../bak/XXX
- 敏感信息泄漏
通常通過id來查詢數據,稍微懂一點的人就可以通過更改url的id來查詢別人的信息,這個時候需要對敏感信息的id進行session驗證或者其他有效的驗證,其他參數類似
5.上傳漏洞及防范
同圖片上傳
6.邏輯漏洞
這是最難查找的漏洞,因為代碼層面是看不出問題的,在設計邏輯行為和流程的時候需要仔細考慮。
工具類介紹:
Windows:啊D
啊D注入工具是一種主要用於SQL的注入工具,使用了多線程技術,能在極短的時間內掃描注入點。使用者不需要經過太多的學習就可以很熟練的操作。
百度經驗:
教程:baidu.com
SQLMAP:
https://github.com/sqlmapproject/sqlmap
教程:http://blog.csdn.net/zgyulongfei/article/details/41017493/ baidu.com
對於驗證碼暴力破解:確保session一致,設置一次性session值
短信驗證碼可以6位,延長暴力破解時間
Phpwaf:www.baidu.com
盡量使用php安全函數,在不熟悉的時候需要百度
http://www.myhack58.com/Article/60/61/2012/32968.htm
盡量使用高版本php,避免老版本BUG
穩定的是5.5,推薦php7
對於登陸可以設置ip登陸頻率
代碼審計工具
rips
支付防范:
通過time()然后hash隨機種子,前端后端,支付端,每一個參數傳遞點都要進行驗證。(因為沒接觸過,所以不大清楚流程)