HTTP头伪造
前言
完成上课的web作业,顺便做一些记录。
该部分主要是讲HTTP头的构造和cookie注入
[极客大挑战 2019]Http
打开网站之后查看源码,发现:
于是打开看看
- 很明显是要我们自己构造HTTP的请求头,这里分为两种工具,一个是
yakit
,还有个是浏览器hackbar
插件(我用的是Google)
yakit抓包构造http请求头
1.修改访问网站
2.指定浏览器
3.从本地访问
hackbar修改http请求头
[极客大挑战 2019]BuyFlag
- 点开PAYFLAG页面查看源代码
- 要求如下,同时在源代码还隐藏着东西
- 要求我们进行
POST
请求发送password和money,并且password有如上的要求,先看抓包
修改cookie
- 发现
Cookie
可以改,将user=0修改为user=1
弱比较
- 发现我们已经是学生了,下面修改password和money
- 注意要是POST请求,
yakit
右键可以直接改为POST请求 - 对于上述的password来说,输入纯数字会被判定为不通过,但是后面的比较是
==
,这是个弱比较,会在某些情况下将$password
的类型隐式转换,即我们输入404a
(404后面无所谓什么字符)==
会略过非数字型,直接比较404,这样就绕过了判断。
1 | if (isset($_POST['password'])) { |
数组绕过
- 显示money的长度过长,直接改为数组绕过:
在 PHP 中,数组可以触发一些意想不到的宽松比较行为。因为在宽松比较下,PHP 会尝试将数组转换成其他类型进行比较,这样可以绕过某些验证条件。例如,在比较中,将数组与整数或字符串进行宽松比较时,PHP 的行为如下:
数组与整数比较:当数组和整数进行比较时,PHP 会将数组视为
true
,即非空的数组在宽松比较中等价于true
。因此:
1 [] == 0 // true任何非空数组,比如
[404]
,与整数进行比较时,PHP 会将数组视为true
,因此0 == true
会被认为成立。
[BSidesCF 2019]Kookie
- 要求是admin登录,题目给了一个账号
cookie
密码是monster
- 登陆后抓包看看:
- 登录之后服务端会给我们设置
cookie
的值,那么我们在登录admin的时候修改cookie
即可
- 标题: HTTP头伪造
- 作者: D0wnBe@t
- 创建于 : 2024-11-09 13:25:13
- 更新于 : 2024-11-09 14:46:53
- 链接: http://downbeat.top/2024/11/09/HTTP头伪造/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论