国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

MySQL中SQL的單字節注入與寬字節注入的區別

發(fā)布時(shí)間:2021-09-14 11:25 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 網(wǎng)絡(luò )安全

這篇文章主要講解了“中SQL的單字節注入與寬字節注入的區別”,文中的講解內容簡(jiǎn)單清晰,易于學(xué)習與理解,下面請大家跟著(zhù)小編的思路慢慢深入,一起來(lái)研究和學(xué)習“MySQL中SQL的單字節注入與寬字節注入的區別”吧!

一、單字節SQL注入

MYSQL的SQL注入已經(jīng)由來(lái)已久,以下是普遍采用的注入步驟:

1、在GET參數上加一個(gè)/*或者#(mysql專(zhuān)有的注釋?zhuān)?,判?a href='http://wap.friendlycc.com.cn/database/mysql/' target='_blank'>數據是否是mysql,比如:
http://www.xxx.com.cn/article.php?id=1607 and 1=1/*

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

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

對應的SQL:

3、使用該表和用戶(hù)表進(jìn)行關(guān)聯(lián)查詢(xún),在文章列表里就可以看到用戶(hù)名和密碼了。當也要猜解用戶(hù)表的表名和用戶(hù)名、密碼的字段名,比如上一步得到的字段數是5:

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

對應的SQL:

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

解決方法

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

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

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

二、寬字節注入

寬字節注入也是在最近的項目中發(fā)現的問(wèn)題,大家都知道%df’ 被PHP轉義(開(kāi)啟GPC、用addslashes函數,或者icov等),單引號被加上反斜杠\,變成了 %df\’,其中\的十六進(jìn)制是 %5C ,那么現在 %df\’ = %df%5c%27,如果程序的默認字符集是GBK等寬字節字符集,則MYSQL用GBK的編碼時(shí),會(huì )認為 %df%5c 是一個(gè)寬字符,也就是縗’,也就是說(shuō):%df\’ = %df%5c%27=縗’,有了單引號就好注入了。比如:

則通過(guò)以下注入即可:
http://www.xxx.com/login.php?user=%df’%20or%201=1%20limit%201,1%23&pass=

對應的SQL是:

解決方法:就是在初始化連接和字符集之后,使用SET character_set_client=binary來(lái)設定客戶(hù)端的字符集是二進(jìn)制的。如:

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

中文字幕久精品免费视频| AV无码AV在线A∨天堂毛片| 毛片A级毛片免费观看品善网| 国产 国语对白 露脸| 日本高清VA在线播放| 精品无码AV无码免费专区|