可被注入的参数
- cookie
- referer
- user-agent
- x-forward-for
- client-ip
- host
参数介绍
cookie
网站为了辨别?户?份、进? session 跟踪?储存在?户本地终端上的数据(通常经过加密).
referer
浏览器向 WEB 服务器表明??是从哪个页?链接过来的.
user-agent
使得服务器能够识别客户使?的操作系统,游览器版本等.(很多数据量?的?站中会记录客户使?的操作系统或浏览器版本等存?数据库中)
x-forward-for
简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,(通常?些?站的防注?功能会记录请求端真实IP地址并写?数据库or某?件[通过修改XXF头可以实现伪造IP]).
client-ip
客户端IP,每次上网的时候可能不一样
host
浏览器向 WEB 服务器表明??是从哪个页?链接过来的
注入姿势
以sqli_labs18为例
输入类容,抓包
在可以注入的点,进行测试
理论上可注入点有6个:cookie、referer、user-agent、host、client-ip、x-forward-for但并不是每一个请求报文都全部包含着6个请求报头
通过对 referer、host、user-agent后加‘得到页面请求错误,直接404给整懵了。
折腾了很一阵儿,单个单个加引号在user_agent和referer可以访问页面成功,单引号没有起到任何作用。
host处加引号直接400
网上查了下资料,18关存在注入的前提是账号和密码首先要输入正确——账号:admin 密码:admin
OK,我们再来.
我直接在原有的数据包将用户名和密码改为admin,给个注入点加引号不行。
于是我第18关在页面账户和密码上输入admin,是得到了成功访问的提示
于是我重新进行抓包来尝试
加入引号后直接400,差点奔溃。
仔细观察后,是引号格式的问题,我虽然键盘调的是引文格式,可输入到repeater模块就成了中文格式,于是再option将宋体格式调整arial
给host,user-agent,referer后加上‘后,访问不了页面
于是 一个一个加‘,看哪个会报错
user-agent处会报错,并且告诉了错误的原因
于是说明此处是可以进行报错注入的
获取数据
‘ and extractvalue(1,concat(0x7e,(select version()),0x7e)) and ‘1‘=‘1
剩下的就是报错注入,一步一步来
但是,我看到了国光大佬的博客,然后,我就自闭了
我找找资料,慢慢来,我要把这语句看懂https://www.sqlsec.com/2020/05/sqlilabs.html#toc-heading-37