新手小白详解CTFHUB技能树——web方向

web前置技能

HTTP协议

1.请求方式

题目解释:

HTTP的请求方式是GET

用CTFHUB的方法,将会获取flag

这道题的核心是改变HTTP请求头中的请求方式Method

解答:

通过bp对浏览器代理,进行抓包

send发送后即获得响应response得flag

ctfhub{4a39f603ca5b3b53853e14b6}

内容拓展: 

HTTP请求由四部分组成:请求行、请求头、空行、以及请求体(具体介绍见这篇大佬博客,同时引用一张图)http://t.csdnimg.cn/cwcnA

Method Request-URI HTTP-Version CRLF

Method:表示请求方法;
Request-URI:是一个统一资源标识符;
HTTP-Version:表示请求的HTTP协议版本;
CRLF:表示回车和换行

GET /index.php HTTP/1.1

这里的Method是指GET ,URI为index.php, HTTP版本为1.1

HTTP协议中常用以下请求方法:

GET 请求获取Request-URI所标识的资源

POST 在Request-URI所标识的资源后附加新的数据

HEAD 请求获取由Request-URI所标识的资源的响应消息报头

PUT 请求服务器存储一个资源,并用Request-URI作为其标识

DELETE 请求服务器删除Request-URI所标识的资源

TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断

OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

CONNECT 保留将来使用,HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

PATCH 用于将局部修改应用到资源。

其中前三个是http/1.0版本定义的,后面几个为http/1.1补充定义的。 

2.302跳转

题目解释:

进入题目后发现点击“Give me flag”界面不发生更改,服务器返回新的地址,说明我们应该考虑状态重定向的问题即“302”重定向

解题须知:HTTP状态码|菜鸟教程进行详细了解(以下内容均摘录来自次处)

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。

HTTP 状态码的英文为 HTTP Status Code

  • 1xx(信息性状态码):表示接收的请求正在处理。
  • 2xx(成功状态码):表示请求正常处理完毕。
  • 3xx(重定向状态码):需要后续操作才能完成这一请求。
  • 4xx(客户端错误状态码):表示请求包含语法错误或无法完成。
  • 5xx(服务器错误状态码):服务器在处理请求的过程中发生了错误。

而我们这里就是重定向状态码中的“302” :

301Moved Permanently永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302Found临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI

这里我们要进行区分二者的永久性和临时性,即302是临时重定向到另外的网址上(这只是暂时的),这时就需要我们进行拦截抓包。

解答:

打开题目使用bp进行拦截操作,步骤如下:

在这个界面将“Intercept is off”(拦截关闭)改为“Intercept is on”(拦截打开),再次点击“Give me flag”,bp将成功拦截

 将内容发送到Repearter(重放器)中,重新发送获得响应

ctfhub{f1604305006082bff698c676} 

3.cookie 

题目解释:

你好用户。只有管理员才能获取flag。

这里的题目核心是用户身份改变为管理员即可获取flag信息

解题须知:

Cookie实际上就是http协议里的头部字段,通常被放到response-header中通过Set-Cookie返回,当用户浏览网站时,浏览器进行储存下次访问会带上。

而Cookie的作用就是由开发者定义的,存储登入状态的信息。简单来讲,就是通过Cookie值来验证用户身份。

解答:

同样我们使用bp抓包

可以看到这里的  Cookie:admin=0, 也就是说这里的用户身份不是管理员,管理员的状态是0。

我们需要改变用户身份为管理员,只需要将admin=0,改为admin=1,即可以正常获取flag信息 

 将内容发送到Repearter(重放器)中,更改后重新发送send获得响应response(放包过程),flag正常出现

ctfhub{9eca59ed0b527f714bdbe80c}

4.基础认证

题目解释:

我们可以看到题目提供了附件(密码字典),可以分析出这道题关键在于密码爆破

解答:

进入靶场点击“click”进行登录,通过bp拦截(“Intercept is off”(拦截关闭)改为“Intercept is on”)抓包。

在请求头信息中,我们发现Authentication(主要用于认证验证用户身份)里面包含客户端向服务器提供的认证数据。

通过观察我们可以看到右上角Inspector中关于Authentication内容的编码转换

 admin:123456    (这里的123456是作者自行输入的)

下面正式开始进行爆破,将包发送到Intruder进行爆破

进入Intruder--Payloads

密码字典加载(load...)到Payload settings 

在Payload process中添加(add)Add prefix,编辑prdfix的内容( : 记住用英文)

admin:

由于密码编码通过Base64,所以我们还需要add Encode

完成后点击右上角“Start attack ”,之后即可以找到我们需要的正确密码

 我们将正确的send Repeater重新发送,观察响应

ctfhub{234a9e8e2933b993bce2fde8} 

5.响应包源代码 

题目解释:

直接查看源代码即可

解答:

ctfhub{d156fb27330bff9e4f62d700}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值