前言
#知识点:
1、数据请求方式-GET&POST&COOKIE等
2、常见功能点请求方式-用户登录&IP记录等
3、黑盒白盒注入测试要点-SQLMAP注入参数
#补充点:
黑盒测试:功能点分析
1、后台要记录操作访问IP
IP要进行代码的获取,获取到之后,IP会不会记录到数据库中呢?
IP会写到数据库,如果IP能够自定义数据,是不是就能尝试sql注入
2、网站要根据用户的访问设备给予显示页面
接受访问的UA信息,进行判断
将各种UA进行数据库整理后,用户访问后对比数据库中的UA值来进行判断
3、网站要进行文件上传。用户登录
由于上传的文件可大可小,如果采用GET不满足
用户登录
白盒测试:功能点分析&关键代码追踪
数据库类型决定攻击的手法,payload不一样
数据类型注入-payload考虑闭合 数据格式
提交方式-数据请求不同 注入需要按照指定方式去测试
告诉我们 url没有参数并不代表没有注入 有些数据会在数据包才有提现
告诉我们 http数据包任何一个地方只要被接受 就有可能产生漏洞
1.数据库注入 - access mysql mssql oracle mongodb postgresql等
2.数据类型注入 - 数字型 字符型 搜索型 加密型(base64 json)等
3.提交方式注入 - get post cookie http头等
4.查询方式注入 - 查询 增加 删除 更新 堆叠等
5.复杂注入利用 - 二次注入 dnslog注入 绕过bypass等
GET&POST&COOKIE&SERVER
#部分语言接受代码块
<?php
header("Content-Type: text/html; charset=utf-8");
$get=$_GET['g'];
$post=$_POST['p'];
$cookie=$_COOKIE['c'];
$request=$_REQUEST['r'];
$host=$_SERVER['HTTP_HOST'];
$user_agent=$_SERVER["HTTP_USER_AGENT"];
$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;
?>
Java Spring 不同框架,不同写法
method=RequestMethod.GET
method=RequestMethod.POST
request.getParameter("参数名");
可以直接获取get请求的参数key对应的value
也可以从请求体中获取参数的key对应的value
Python flask 不同框架,不同写法
requests.get
requests.post
request.args.get(key)
request.form.get(key)
request.values.get(key)
实例白盒-ZZCMS-IP记录功能-HTTP头XFF注入
通过抓包可以发下,他 这里的验证登录判断了错误的次数,那么就有可能会去验证你的IP地址,我们可以通过 X-forwarded-for伪造IP,发现他这里是读取的。那么就有可能存在sql注入点,通过手工去尝试注入,发现无回显,然后用sqlmap去注入
python sqlmap.py -r C:\Users\hesy\Desktop\1.txt
存在注入点