<from:lake2>
隨着技術的發展,ASP數據庫插馬也不是什麼新鮮的東東了,相信閣下也玩過這個的吧。呵呵,那你有沒有遇到過插入的asp代碼被空格拆開的情況呢(即插入的每個字符之間都出現了空格)?現在,就讓我們來解決這個問題。
經過對多例實際情況的分析,我發現只要出現代碼被空格隔開的數據庫,相應的字段的Unicode壓縮屬性總是“否”。相反,如過Unicode壓縮屬性爲“是”,則可以通過該字段進行插馬。
經過搜索,發現微軟官方對Unicode壓縮的描述:“Microsoft Access 2000 或更高版本使用 Unicode 字符編碼方案來表示文本、備註和超鏈接字段中的數據。Unicode 將每個字符表示爲兩個字節……需要的存儲空間比在 Access 97 或更早版本中要多……可通過將“文本”、“備註”或“超鏈接”字段的“Unicode 壓縮”屬性的默認值設爲“是”來彌補 Unicode 字符表達方式所造成的影響”
哦,原來開啓了 Unicode 壓縮的話,數據庫會自動把拉丁字符(西歐語言如英語、西班牙語或德語)用1個字節來存儲;如果沒開啓,數據庫就會用2個字節(1個字節爲0x00,作爲文本將被自動轉換爲空格)存儲拉丁字符,也就造成了插入的asp代碼被空格隔開的情況。