一、SQL注入
示例:
select * from user where id='1' or 1='1'
注入方式
1、常規注入
在接收用戶輸入是未過濾
2、寬字節注入
數據庫爲gbk編碼時,通過addslashes()函數 轉義後會轉爲中文,之後便可注入 如:%df%5c%27 轉以後 爲 運'
3、二次編碼注入
urldecode 注入,%27 轉碼後爲 ‘
4、base64編碼注入
base64_decode 轉換後未進行過濾
5、注入工具
SQLMap工具
6、如何防範
addslashes()函數 過濾單引號
數據庫爲utf-8編碼
驗證傳入類型
二、XSS跨站(又叫跨站腳本攻擊)
如:http://www.csdn.net/postlist?key=test</div><script>alert('123')</script>
指攻擊者往web頁面插入惡意html代碼,當用戶瀏覽網頁時,嵌入web頁面的html代碼會被執行,從而盜取用戶cookie信息
漏洞類型
反射型
存儲型
DOM型
防範方法
1,過濾html標識符中的(<,>,;,')
2, 返回html數據時用 htmlspecialchars() 過濾下
三、代碼注入
當攻擊者提交的參數被當作代碼執行的時候,我們稱之爲代碼注入漏洞
漏洞類型
1.常規eval注入
2.eval單引號包裹
3.preg_replace /e 注入
4.動態調用函數
四、CSRF跨站請求僞造
五、文件包含
六、文件上傳