目录
#知识点:
1、数据请求方式-GET&POST&COOKIE等
2、常见功能点请求方式-用户登录&IP记录等
3、黑盒白盒注入测试要点-SQLMAP注入参数
#补充点:
黑盒测试:功能点分析
白盒测试:功能点分析&关键代码追踪
案例演示1
GET&POST&COOKIE&SERVER
数据请求方式涉及到的问题:
1、后台要记录操作访问IP
IP要进行代码的获取,获取到之后,IP会不会记录到数据库中呢?
IP会写到数据库,如果IP能够自定义数据,是不是就能尝试SQL注入啊
2、网站要根据用户的访问设备给予显示页面
接受访问的UA信息,进行判断
将各种UA进行数据库整理后,用户访问后对比数据库中的UA值来进行判断
3、网站要进行文件上传,用户登录 POST
由于上传的文件可大可小,采用GET不满足
用户登录,接受帐号密码后进行数据库查询后对比
php
<?php
header("Content-Type:text/html;charset=utf-8");
$get=$_GET['g']; //接受get
$post=$_POST['p']; //接受post
$cookie=$_COOKIE['c']; //接受cookie sever //接受用户环境变量
$request=$_REQUEST['r']; //全部接受
$host=$_SERVER['HTTP HOST']; //当前访问url地址
$user agent=$_SERVER["HTTP USER AGENT"]; //浏览器信息
$ip=$_SERVER["HTTP X FORWARDED FOR"]; //8.8.8.8
echo $get."<hr>";
echo $post."<hr>";
echo $cookie."<hr>";
echo $request."<hr>";
echo $host."<hr>";
echo $user_agent."<hr>";
echo $ip;
?>
g以get请求输出
p以post请求输出
c以cookie方式发出请求
r不管是get,post,cookie都能接收
Java Spring
不同框架,不同写法
method=RequestMethod GET;
method=RequestMethod.POST;
request.getParameter("参数名").
可以直接获取get请求的参数key对应的value
也可以从请求体中获取参数的key对应的value
Python
method=RequestMethod GET;
method=RequestMethod.POST;
request.getParameter("参数名").
案例演示2
实例黑盒-后台表单登陆框-POST注入
用户登录注入 一般都是POST请求
手工注入
任意输入账户与密码,抓包
测得字段数为3
sqlmap注入
方式一
在xiaodi后加*,告诉sqlmap在此处
将数据包保存在sqlmap路径下的文本里
sqlmap注入
方式二
--data:以POST请求接收数据
案例演示3
实例白盒-ESPCMS-商品购买-COOKIE注入
产生注入的代码
案例演示4
实例白盒-ZZCMS-IP记录功能-HTTP头XFF注入
产生此注入原因的代码:
输入管理员,密码后会跳转到logincheck.php中验证admin. "· And pass='". $pass ." "
sql = "select * fromvzzcms_admin where admin= "".$admin."' And pass='".$pass."'"
含有POST注入
$ip=getip(); //获取IP地址
define('trytimes',5);//可尝试登录次数
define('jgsj',15*60);//间隔时间,秒
$sql="select * from zzcms login times where ip='$ip' and count>=".trytimes." and unix timestamp()-unix
$sqln="select *from zzcms login times where ip='$ip'"
对$ip没有过滤,产生头注
XFF可以伪造
可以在XFF处输入注入语句
标签:HTTP,请求,ip,XFF,COOKIE,IP,演示,POST,注入 From: https://blog.csdn.net/weixin_74275515/article/details/139636332