zl程序教程

您现在的位置是:首页 >  后端

当前栏目

SQL注入参数类型及提交方法

方法注入SQL 类型 参数 提交
2023-09-14 09:01:44 时间

今天继续给大家介绍Linux运维相关知识,本文主要内容是SQL注入类型及参数提交方法。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、SQL注入参数类型

当我们对指定站点进行SQL注入时,在找到注入点之后,我们需要首先对该注入点参数的类型进行判断。对注入点参数类型进行判断的目的是进一步猜解站点SQL语句中对该参数的闭合方式。这样我们才可以构造正确的SQL语句,从而进行下一步真正的SQL注入操作。
常见的SQL注入参数有数字型字符型搜索型三种。数字型的参数通常(单纯的以SQL语句判断,数字型的加入引号也可以)没有单引号、双引号等的闭合,而字符型和搜索行则肯定会有单引号或者双引号的闭合。
除了单、双引号外,在SQL语句中还可能会有括号等的干扰符号,这些符号也会增加我们进行SQL注入的难度。但是,我们可以通过简单的尝试的方式,来判断其SQL语句的闭合方式。
除了上述常见的三种类型外,有时站点的数据提交方式是以JSON的格式进行提交的,那么此时SQL注入的注入点就存在于JSON数据中。以JSON格式进行数据提交的站点多以接口类网站、移动APP居多,遇到这种情况,我们可以直接在JSON的数据格式中尝试进行SQL注入。

二、SQL注入参数提交方法

除了对注入点参数的类型需要注意以外,我们还需要注意SQL注入时参数的提交方式。
常见的SQL注入提交方式有POST、GET提交方式两种,不常见的提交方式有COOKIE、HTTP头等。
SQL注入的参数提交方式取决于站点后台的数据接收代码,通常情况下我们不能随意改动。以PHP类型的站点为例,可能的SQL参数提交语句如下:

$user=$_GET['username']
$user=$_POST['username']
$user=$_COOKIE['username']
$user=$_SERVER['HTTP_USER_AGENT']
$user=$_REQUEST['username']

上述第一种是以GET方式来进行参数提交;第二种是以POST方式来进行参数提交;第三种是以COOKIE方式来进行参数提交,此时,我们如果对该参数进行SQL注入,必须把该参数加入到COOKIE中;第四种是HTTP头的方式对该参数进行提交,指定的HTTP头内容时HTTP_USER_AGENT;第五种可以接收上述任意一种方式的数据提交,非常灵活。
有时,当站点后台是以第五种的写法来作为参数提交时,我们可以利用第五种方式参数提交的特性,来绕过一些WAF。例如,WAF默认只对GET和POST的数据进行检验,这样的话我们就可以反其道而行之,将参数放在COOKIE或者是HTTP头上进行提交,从而绕过WAF。
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200