一、原理
数据路径出现符号是会爆错的
全局变量:
$_REQUEST (获取GET/POST/COOKIE) COOKIE在新版本已经无法获取了
$_POST (获取POST传参)
$_GET (获取GET的传参)
$_COOKIE (获取COOKIE的值)
$_SERVER (包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组)
**$_SERVER()**它包含着诸多的信息,有头信息(heander),路径(path),脚本位置(script locations)等信息的数组
这个变量特别强大:
$_SERVER[‘HTTP_HOST’] 请求头信息中的Host内容,获取当前域名。
$_SERVER[“HTTP_USER_AGENT”] 获取用户相关信息,包括用户浏览器、操作系统等信息。
$_SERVER[“REMOTE_ADDR”] 浏览网页的用户ip。
updatexml()
这个函数有三个传参如下
update是更新的意思 xml是一种文档的类型
updatexml(目标xml内容,xml文档路径,更新的内容)
updatexml(1,concat(0x7e(select database())0x7e),1)
以上这条语句的意思为
更新xml文档(需要更新的文档,concat(0x是16进制7e转换后是~(子查询爆库名),更新后的内容)
之前我们讲了数据库路径出现符号是会爆错的的0x7e这个经过16进制转换后变成~
以上语句实际上是更新xml文档,但我们在xml路径中写了子查询它,我们输入了特殊符号,数据库路径出现特殊符号是会爆错的,便爆错
但是报错的时候它就已经执行了那个子查询的代码了
updatexml () 这个函数一般是配合and 或者是or 使用的,他和联合查询不同,不需要在意什么字段数
X-Forwarded-For(XFF)
X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。[透明代理]
二、作业
(一) SQL注入-Header注入Rank 1
页面原始URL:http://inject2.lab.aqlab.cn:81/Pass-07/index.php
任务:
通过Head注入获得flag。
- Username框中输入
' or 1=1 -- q
返回 “为了网站安全性,禁止输入某些特定符号” 提示信息
说明POST注入不能用,尝试其它注入攻击 - 查看源码
if(preg_match('/.*\'.*/',$jc)!== 0){die('为了网站安全性,禁止输入某些特定符号');}
这一行实现了检测输入框中的单