SQL Injection-Http请求的参数中对特殊字符的处理
1、背景:最近学习webgoat到了SQL Injection的这一课,要完成这一课需要拦截Http请求,修改参数,不过在修改的参数中加入特殊字符才能完成。下面让我们一起来学习吧。
2、题目:
大致翻译一下题目:使用SQL注入的方式绕过认证。使用SQL注入的方式登录boss的账号Neville,而不是用正确的密码。验证Neville的档案可以被浏览,所有的功能都是可用的。(这些功能包括查询、创建和删除)
3、可是我怎么知道Neville的密码?......题目说了是SQL注入。那我们就开始吧。
①password绝大多数都是以字符串的形式存储的,所以这里肯定是字符串注入。注入的形式一般是 test' or '1'='1 此时就遇见了需要在Http请求参数中写特殊字符
②随便找一个输入框,输入以上的内容,然后向服务器发送请求,看见了编码后的参数, test%27+or+%271%27%3D%271
4、查阅资料,发现规律是%+ASCII码。现在就把我用到的总结如下【随时更新,欢迎补充】
特殊字符 | 编码 |
空格 | + |
单引号 |
%27
|
等号 |
%3D
|