HTTP协议
请求方式
HTTP 请求方法:(常用的是GETPOST)
GET: 此方法用于从服务器请求资源,通常用于获取数据,如网页或图片。GET请求不应对数据进行更改。
POST: 用于向服务器提交数据以创建新资源,常用于表单提交或文件上传。POST请求中的数据包含在请求体内。
PUT: 将数据发送到服务器以更新现有资源,如果资源不存在,则创建新资源。PUT请求通常是幂等的,即多次执行相同的PUT请求不会产生不同的结果。
DELETE: 用于从服务器删除指定的资源。
PATCH: 对资源进行部分修改,与PUT类似,但只更改资源的一部分。
HEAD: 类似于GET,但服务器只返回响应头,不包含实际数据。用于检查资源的元数据。
OPTIONS: 返回服务器支持的HTTP方法,常用于跨域资源共享(CORS)的预检请求。
TRACE: 回显服务器收到的请求,主要用于诊断。
CONNECT: 建立到服务器的隧道,通常用于HTTPS连接。
要求用CTFHUB请求方式才能得到flag,使用bp进行抓包,发送到repeter修改请求方式。
重新发送后得到flag。
或者用curl命令
curl -v -X CTFHUB https://
302跳转
302跳转,也称为302重定向,是一种HTTP状态码,表示临时重定向。当一个网页经历过短期的URL变化时使用。服务器通过返回302状态码和
Location
头部,告诉浏览器应该显示不同的URL,但搜索引擎会保留旧的网址。
因为会保留旧的网址,那么就找到改变前的网址就可以得到flag
仍然使用bp抓包,可以明显看到新旧两个网址。
发送到repeter查看并发送
另:301跳转
301跳转是当用户或搜索引擎向网站服务器发出访问请求时,服务器返回的HTTP数据流中头信息(header)中的一种状态码,表示本网页永久性转移到另一个地址。
Cookie
Cookie 是一种小型的文本文件,它存储了用户在浏览网站时的一些信息。这些信息可以包括用户的登录状态、个人偏好设置、会话标识符等。由服务器发送到用户浏览器并保存在本地的小数据片段。
http数据包中可以修改cookie
所以bp抓包后可以看到admin的值为0,修改为1后发送到repeter
修改发送后得到flag。
另:session
Session是一种在服务器上存储的用于识别用户会话的数据结构。它通常包含用户登录信息、用户偏好设置、购物车内容等。
基础认证
打开网页后要求输入用户名和密码,随便输入后无反应,所以使用bp抓包。
其中提示"do u know admin",猜测用户名为admin。
再次查看,base64解码后发现用户名和密码是admin:xxxxx的格式
下载附件,准备爆破密码。
把包体发送到intruder,设置payload。
导入下载的附件
之前的格式设置为前缀并使用base64编码。取消url编码。
完全布置好后是这样的
攻击后可以看到只有一个成功返回的,就是正确的用户名+密码了。
HTTP状态码200是超文本传输协议(HTTP)中的一种标准响应状态码,表示服务器成功处理了客户端的请求,并且请求所希望的资源被正常返回。
把这个发送到repeter,再次发送后得到flag。
响应包源代码
打开网页,查看源代码。找到flag。
网页源代码查看方式:可以使用
Ctrl + U
快捷键直接打开当前网页的源代码。直接在浏览器的地址栏中输入
view-source:
后跟网址,例如view-source:http://www.example.com
,可以直接在新标签页中打开该网页的源代码。curl命令行工具 curl http://www.example.com。