SQL Injection-Http请求的参数中对特殊字符的处理

Posted __你的眉宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于SQL Injection-Http请求的参数中对特殊字符的处理的主要内容,如果未能解决你的问题,请参考以下文章

PatePoco中对sql参数化时Top参数化的问题

如何在 PDO 语句中对表名进行参数化? [复制]

如何在 Angular 7 中对包含特殊字符的查询参数进行编码?

React,如何在 axios 请求的对象中对数组进行包含

sql server中对字段使用正则表达式替换???

数据库中对存储过程的理解