实习第一天报告(8.26)

目录

知识点

HTTP 状态码

HTTP 状态码分类

内外网互联技术

流量报文

BP模块介绍

proxy模块:

Intruder模块:

简单练习

Python、Java环境安装

使用proxy、Intruder、Repater三种模式完成pikachu第一关弱口令爆破

Proxy(代理)

​编辑

Intruder

Repeater

知识点

HTTP 状态码

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

HTTP 状态码的英文为 HTTP Status Code

下面是常见的 HTTP 状态码:

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

HTTP 状态码分类

HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599):

分类

分类描述

1**

信息,服务器收到请求,需要请求者继续执行操作

2**

成功,操作被成功接收并处理

3**

重定向,需要进一步的操作以完成请求

4**

客户端错误,请求包含语法错误或无法完成请求

5**

服务器错误,服务器在处理请求的过程中发生了错误

内外网互联技术

  1. 端口映射(NAT技术):端口映射(NAT,网络地址转换)技术允许将内网机器的端口映射到外网IP地址的某个端口上,这样外网用户就可以通过访问这个外网IP地址和端口来访问内网中的特定服务。NAT技术包括静态NAT、动态NAT和端口NAT(PAT)等类型。VPN(虚拟专用网络):
  2. VPN:通过加密技术在公共网络上建立一个虚拟的私有网络,使内网用户能够安全地访问外网资源,就像在同一个局域网内一样。VPN协议包括PPTP、L2TP、0penVPN等。
  3. 代理服务器:在内网中搭建代理服务器,将内网用户的请求转发到外网,并从外网获取响应后返回给内网用户。这样,内网用户就可以通过代理服务器间接访问外网资源。常用的代理服务器软件有Squid、Nginx、Apache等。
  4. 端口转发(Port Forwarding):静态端口转发:在路由器上配置,将特定的端口的流量转发到内网的指定IP地址和端口。动态端口转发:一般由应用程序或设备在运行时配置,通常用于实现对特定服务的访问。
  5. 反向代理:反向代理服务器接收来自客户端的请求,并将其转发到内部网络中的服务器。这样,外部用户通过反向代理服务器访问内部资源。
  6. 专线连接MPLS(多协议标签交换):一种用于连接不同网络的技术,通常由ISP提供,用于建立私有网络。租用专线:与ISP签订合同,租用专用的物理线路进行连接,确保高带宽和低延迟。
  7. IPv6:如果内外网都支持IPv6,可以通过IPv6的全球地址直接进行互联,减少NAT相关的复杂性。

流量报文

1、请求行:  请求方法(POST、GET、PUT)/请求资源路径,协议/版本

2、请求头:

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机

User-Agent:浏览器指纹:发送请求的浏览器类型、操作系统等信息

Accept:客户端可识别的内容类型列表,用于指定客户端接收那些类型的信息

Accept-Encoding:客户端可识别的数据编码

Accept-Language:表示浏览器所支持的语言类型

Connection:允许客户端和服务器指定与请求/响应连接有关的选项

Referer:包含一个URL,代表当前URL的上一个URL

Transfer-Encoding:告知接收端为了保证报文的可靠传输,对报文采用了什么编码方式。

3、请求正文:

Content-Type:发送给接收者的实体正文的媒体类型

Content-Lenght:实体正文的长度

Content-Language:描述资源所用的自然语言,没有设置则该选项则认为实体内容将提供给所有的语言阅读

Content-Encoding:实体报头被用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制

Last-Modified:实体报头用于指示资源的最后修改日期和时间

Expires:实体报头给出响应过期的日期和时间

例:

BP模块介绍

proxy模块:

Intercept:用于显示和修改HTTP请求和响应

HTTP history:请求产生的细节

WebSockets history:记录WebSockets数据包

Options:代理监听、请求和响应

Intercept ->Forward:修改或查看对应的信息,发送到服务器或浏览器

Drop:把抓取到的、不要的数据包丢掉

Intercept is off/on:代理流量拦截的开关

Action:菜单可用的动作行为操作可以有哪些操作

Intruder模块:

Positions: 选择攻击模式和攻击范围

Payloads:有效载荷 【攻击字典模块配置】

Resource Pool:资源池管理情况

Options: Intruder攻击配置模块

  1. positions ->

Attack type: 攻击模式设置

Add:插入一个新的标记

Clear:清除所有标记

Auto: 自动设置标记【自动选中cookie、URL等参数】

Refresh: 模板编辑器的语法高亮显示

  1. burpsuit -> Attack type模块

1. Sniper(狙击手):对变量依次进行破解,如果有多个攻击点,则多个攻击点依次进行。只能用一份密码字典

2.Battering ram(撞击物):对变量同时进行破解,如果有多个攻击点,多个标记点同时进行。只能用一份密码字典。

3.Pitchfork(交叉):每一个变量标记对应一个字典,取每个字典的对应项。最°少设置2处攻击点,最多设置20处攻击点。每个攻击点设置一个密码字典。

4.Cluster bomb(集束炸弹):每个变量对应一个字典,并且进行交集破解,尝试各种组合。最少设置2处攻击点,最多设置20处攻击点。适用于用户名+密码的组合。

弱口令修复建议:

  1. 改用强口令
  2. 最小权限原则:将高权限用户独立分组,限制高权限用户的访问

简单练习

Python、Java环境安装

使用proxy、Intruder、Repater三种模式完成pikachu第一关弱口令爆破

Proxy(代理)
  • 启动phpstudy

  • 打开BP,使用代理功能,开启拦截

  • 使用BP内嵌浏览器访问127.0.0.1/pikachu/vul/burteforce/burteforce.php,即第一关,随意输入账户密码,点击登录,查看抓包情况,可以看到,输入的用户名与密码以POST类型报文的形式提交给服务器

  • 修改请求包,放行,并拦截响应包,查看拦截情况

Intruder
  • 将请求包发送到Intruder,先选择Sniper模式,在密码位置添加Payload

  • 设置密码payload字典

  • 开始攻击,观察返回结果,我们可以发现当payload=123456时,返回长度与其他组不同,可推测123456是正确密码

  • 使用123456密码进行登录,成功登录

  • 选择Pitchfork模式攻击,设置payload字典,开始攻击

  • 观察攻击结果,发现admin – 123456的用户密码组合的返回长度明显不一样,通过页面渲染发现成功登录,使用其尝试登录

  • 使用admin – 123456账户密码组合登录,成功登录

  • 选择Clusterbomb模式,开始遍历两个字典组合攻击,通过观察攻击结果,发现admin – 123456的账户密码组合返回长度与其他组差距较大,通过页面渲染发现成功登录

  • 使用admin – 123456账户密码组合登录,成功登录

Repeater
  • 将拦截到的登录请求发送到Repeater,通过修改请求主题参数值,不断重放,观察页面渲染结果,发现admin – 123456账户密码组合可以成功登录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值