目录
一,常见的几种数据请求方式
1.GET请求
GET请求参数会在url地址中显示
http://localhost/index.php?id=1
GET请求由于参数在url中,如果存在注入点,可以直接构造payload进行注入
2.POST请求
POST请求参数不会在url地址POST请求参数会在数据包的请求体中显示
POST请求要通过抓包获取参数,然后构造payload进行注入
3.cookie请求
一般用户购买商品就是通过cookie值区分用户
以php为例几种请求的接受方式
<?php
header("Content-Type: text/text; charset=utf-8");
$get = $_GET['g']; //GET请求接受数据
$post = $_POST['p'];//POST请求接受数据
$cookie = $_COOKIE['r'];//cookie值接受数据
$request = $_REQUEST['c'];//接受收所有请求形式的数据
$host = $_SERVER['HTTP_HOST'];//接受当前访问url地址
$user_agent = $_SERVER['HTTP_USER_AGENT'];//接受浏览器信息
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];//接受IP
2.常见能点请求方式
1.后台要记录操作访问的IP
有些登入界面会提示可登入次数,一般就是通过获取用户登入的IP来判断不同用户,将用户首次登入的IP地址保存到数据库,就可以通过获取IP与数据库IP进行对比验证。这样就达到了注入的条件,就有可能会存在注入。Ip写入到数据中,如果IP能够自定义数据,那么就能构造payload进行注入。
2.获取用户访问设备并显示
接受访问的User-Agent信息,这里和IP一样,如果某个功能需要获取用户访问设备信息,通过数据库进行判断,那么也一样可能会存在自定义数据,从而能够注入
黑盒测试:功能点分析
白盒测试:功能点分析&关键代追踪
总结:
数据库类型决定-攻击手法,payload不一样
数据类型注入-payload考虑闭合,数据格式不同
提交方式不同-注入需要按照指定的方式去测试,url没有参数并不代表没有注入,有些数据在数据包才会有体现,http数据包任何一个地方,只要被接受了,就有可能产生漏洞