知识点:

1、数据请求方式-GET&POST&COOKIE等
2、常见功能点请求方式-用户登录&IP记录等
3、黑盒白盒注入测试要点-SQLMAP注入参数

补充点:

黑盒测试:功能点分析
白盒测试:功能点分析&关键代码追踪

1.数据库注入 - access mysql mssql oracle mongodb postgresql等
2.数据类型注入 - 数字型 字符型 搜索型 加密型(base64 json)等
3.提交方式注入 - get post cookie http头等
4.查询方式注入 - 查询 增加 删除 更新 堆叠等
5.复杂注入利用 - 二次注入 dnslog注入 绕过bypass等

➢GET&POST&COOKIE&SERVER
➢实例黑盒-后台表单登陆框-POST注入
➢实例白盒-ESPCMS-商品购买-COOKIE注入
➢实例白盒-ZZCMS-IP记录功能-HTTP头XFF注入

部分语言接受代码块

功能阐释

数据提交/接收方式的决定因素:

  • 数据大小
  • 数据类型
三种交互式

1.后台记录操作访问IP

代码获取访问者的IP地址
=> 获取到的IP地址是否会记录到数据库当中?
=> 是,进行IP地址替换,自定义IP地址 => 进行SQL注入(和数据库有联系)(如果插入可以直接执行,就是一个sql注入)

2.网站要根据用户的访问设备给予显示页面

页面随访问设备不同而变更,提高用户体验。
注入存在:将网站使用者的UA传入数据库进行比对,符合SQL注入的条件

3.网站要进行文件上传,用户登录POST

文件上传可大可小,如果采用get请求则不满足(文件数据长度过大)
注入点:用户登录,接受账户密码,进行数据库查询和对比。

各部分代码接受数据的方式

PHP接受数据的方式:
<?php
header("Content-Type: text/html; charset=utf-8");

// 数据的大小和类型决定了数据

// GET,POST,COOKIE,REQUEST获取变量值
$get=$_GET['g'];
$post=$_POST['p'];
$cookie=$_COOKIE['c'];
$request=$_REQUEST['r'];


// 当前访问的url地址
$host=$_SERVER['HTTP_HOST'];
// 当前访问的浏览器信息(UA头)
$user_agent=$_SERVER["HTTP_USER_AGENT"];
// 获取客户端IP地址
$ip=$_SERVER["HTTP_X_FORWARDED_FOR"];

echo $get."<hr>";
echo $post."<hr>";
echo $cookie."<hr>";
echo $request."<hr>";
echo $host."<hr>";
echo $user_agent."<hr>";
echo $ip;
?>

JS接受数据的方式:
Java Spring  不同框架,不同写法
// 获取GET,POST参数
method=RequestMethod.GET:指定 HTTP GET 请求方法。
method=RequestMethod.POST:指定 HTTP POST 请求方法。
request.getParameter("参数名"):(都接受)获取传递给当前请求的查询参数或表单数据中指定键的值。
在 Spring 框架中,可以使用 @RequestParam("参数名") 注解来实现同样的效果。

可以直接获取get请求的参数key对应的value
也可以从请求体中获取参数的key对应的value

Python接受web数据的方式
Python flask 不同框架,不同写法
requests.get(url):发送 HTTP GET 请求到指定的 URL。
requests.post(url, data):发送 HTTP POST 请求到指定的 URL,其中包含指定的数据。
request.args.get(key):获取传递给当前请求的查询参数(query parameter)中指定键的值。
request.form.get(key):获取传递给当前请求的表单数据(form data)中指定键的值。
request.values.get(key):(都接受)获取传递给当前请求的所有参数(不论是查询参数还是表单数据)中指定键的值。如果同一键名既出现在查询参数中又出现在表单数据中,则以表单数据中的值为准。


无参数不代表无法注入
黑盒测试:看功能看特性,猜测数据请求的方式进行分析
判断POST注入点
1.抓包:BP抓包
2.看功能点:用户登录基本为POST

行为记录:IP地址记录等--都是实战得出的

白盒测试:
根据login.php源代码猜测到登录时需要对IP进行认证,
可以使用XFF进行伪造
=> 重点页面,重点判断逻辑+重点函数方法分析