sql繞過轉義符注入


寬字節繞過總結

1、  重點:轉義符反斜杠\,ASCII碼0x5C

2、  在雙字節字符集中, 在\前面增加高字節,0x5C被當做低字節,組合為“漢字”,導致\符號被“吃掉”,后續字符逃出限制,從而繞過轉義。

3、  GB2312編碼里\不會被“吃掉”。

4、  GBK,GB18030,BIG5等低字節符范圍中含有0x5c的雙字節字符編碼集均存在寬字節注入/繞過。

5、  UTF編碼方式\不會被“吃掉”

6、  程序中使用轉碼函數不當,也會出現寬字節注入/繞過,這時候跟頁面編碼無關

 

示例:

某存在SQL注入的業務場景,注入一個單引號之后,URL和SQL語句如下:

http://example.com/index.php?username=alan’

-->

Select * from tb where username=‘alan\’’

核心問題是要把反斜杠\消除,將注入字符替換為%df’,URL和SQL語句如下:

http://example.com/index.php?username=alan%df’

-->

Select * from tb where username=‘alan%df\’’

由於%df\ à     %df%5c    à     運,最終構成的SQL語句為:

Select * from tb where username=‘alan運’’

注入的%df與系統自動添加的反斜杠一起,構成了一個unicode字符集中的字符“運”,從而消除了反斜杠,使得注入的單引號閉合了前面的查詢語句。


免責聲明!

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



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