使用burp suit在Pikachu上进行暴力破解的测试
前情:首先对pikachu平台进行初始化。访问:/install.php进行安装
基于表单的暴力破解
先在平台上发送任意登录表单,然后使用burpsuit进行拦截分析报文。
通过Proxy拦截到数据包发送到Intruder然后标记username和password选择攻击方式Cluster bomb(意思就是两个文件进行组合)。分别配置好网上下载的简单密码本,name_top.txt和pass_top.txt,密码本下载链接参考cpkkcb/fuzzDicts: 渗透测试路径字典,爆破字典。内容来自互联网和实战积累。 (github.com)。然后点击开始爆破。
最后在username = admin & password = 123456 的时候显示login sucess,登录成功。
验证码绕过(on server)
验证码绕过(on client)
token防爆破
环境搭建
java环境
python环境,3.10.11
内外网互联方式
端口映射(NAT)
NAT包括静态NAT,动态NAT,以及端口NAT。大概如下理解,
首先自己需要公网IP才能在互联网上进行通信,互联网上路由器只会转发源IP和目的IP都是公网的IP包。
举个例子,访问外网的www.baidu.com
(180.101.50.188
),
我们学校中国移动的IP包括183.230.12.191
。
就用这个IP出去。而我电脑只有内网IP:10.20.21.12
1. 静态NAT
静态NAT是一种一对一的映射方式,即每个内部IP地址都有一个对应的外部公网IP地址。
现在我的内网IP地址为 10.20.21.12
。通过静态NAT,服务器管理员可以将这个内网IP地址映射到一个固定的公网IP地址,比如 183.230.12.191
。当你访问 www.baidu.com
时,NAT 会始终将你的内网IP地址 10.20.21.12
转换为 183.230.12.191
,不管是什么设备发送的数据包,都会使用这个固定的公网IP。
优点:
- 简单明了:每个内网设备都有一个固定的公网IP,容易管理和追踪。
- 稳定:适合需要长期使用同一个公网IP的应用,比如邮件服务器、VPN等。
缺点:
- 浪费公网IP:需要为每个内网设备分配一个独立的公网IP,导致公网IP资源的浪费。
- 可扩展性差:如果有大量的内网设备,需要大量的公网IP,不适合大规模部署。
使用场景:
- 通常用于需要公网IP直接访问的服务器,比如Web服务器、邮件服务器等。
2. 动态NAT
动态NAT是一种多对多的映射方式,即多个内网IP地址可以动态映射到一个公共的公网IP池中的IP地址。
我们学校中国移动、联通、电信分别都有有一个公网IP池,比如移动包括 183.230.12.191
和 183.230.12.192
。当你访问 www.baidu.com
时,NAT 会从这个公网IP池中分配一个IP地址(例如 183.230.12.191
),并将你的内网IP地址 10.20.21.12
映射到这个公网IP上。不同的设备可能会在不同时间分配到不同的公网IP。
优点:
- 节省公网IP:动态NAT允许多个内网设备共享一组公网IP地址。
- 适应性强:当内网设备较多但同时访问外网的设备数量有限时,动态NAT非常有效。
缺点:
- 不稳定:内网设备每次请求可能会被分配到不同的公网IP,可能对需要固定公网IP的应用造成问题。
- 复杂性:管理和维护的复杂性增加,特别是在公网IP池不够时。
3. PAT(端口地址转换)
PAT(也叫端口地址转换或NAT Overload)是一种多对一的映射方式,即多个内网IP地址通过不同的端口映射到同一个公网IP地址。
例子:
每一个IP包括0~65535。但是每一台主机都不会同时用到所有的端口,所以可以将一个公网IP的端口映射多台内网主机端口,大大节省了IP资源。如果学校只有一个公网IP 183.230.12.191
。当我和其他同学同时访问 www.baidu.com
时,NAT 会将每个内网设备的IP地址 10.20.21.12
、10.20.21.13
等,映射到同一个公网IP 183.230.12.191
,比如转化为:183.230.12.191:2345->183.230.12.191:80
和183.230.12.191:2349->183.230.12.191:80
但通过不同的端口号来区分不同的设备和会话。
优点:
- 极大节省公网IP:多个内网设备可以共享一个公网IP地址。
- 灵活:支持大量内网设备同时访问外网,扩展性好。
缺点:
- 端口冲突:当同时连接的设备数量非常多时,可能会出现端口冲突或资源耗尽的问题。
- 追踪复杂:由于多个设备共享同一个公网IP,追踪具体的设备和会话更加困难。
VPN(虚拟专用网络)
VPN 允许用户通过加密隧道访问远程网络资源,通常用于从公网访问内网资源。VPN服务器接收到用户的连接请求后,会将用户的公网IP地址映射为内网IP地址,从而允许用户访问内网资源,仿佛他们在内网中一样。
举个例子
我的手机用的是流量,但是我要访问教务在线看成绩。
- 此时我的手机IP为
188.88.99.99
- 校内资源的IP为
10.10.20.12
- vpn服务器的IP为
202.200.21.20
我的手机先访问vpn服务器,进行身份验证成功之后,vpn服务器就会将收到我的IP包修改源IP为一个校内的IP(比如10.20.12.22
)。然后这个IP包就会在校内局域网内转发到目的主机10.10.20.12
,目的主机也会把响应包发给vpn服务器,然后vpn服务器再将目的IP修改为我的手机IP,最后这个IP包通过公网路由器转发回我的手机。
相对来看,VPN和NAT分别
一个是从公网访问内网资源。一个是从内网访问公网IP。
一个是将公网IP修改为内网,一个是将内网IP修改为公网。
需要转化的目的原因都是在公网的路由器不转发内网包,在内网的路由器不转发公网包。
代理服务器
代理服务器可以用来中转内网客户端的请求,使其能够访问外部网络资源。代理服务器会接收客户端的请求,代表客户端与外部服务器进行通信,并将响应结果返回给客户端。这种机制在企业、学校等网络中广泛使用,以控制和优化网络流量,也可以用于隐藏客户端的真实IP地址。
举个例子:
假设我在学校内网中,通过一个代理服务器访问外部网站 www.baidu.com
,这个过程大致如下:
- 我的电脑IP:10.20.21.12(内网IP)
- 代理服务器的IP:202.200.21.20(公网IP)
- 外部网站的IP:93.184.216.34(公网IP)
- 发送请求:我的电脑希望访问
www.baidu.com
,但是由于内网IP无法直接访问公网资源,所以我的电脑将HTTP请求发送给代理服务器202.200.21.20
,请求的内容是访问www.baidu.com
。 - 代理转发:代理服务器接收到请求后,将请求包的源IP地址修改为自己的公网IP
202.200.21.20
,然后将该请求包发送到www.baidu.com
的服务器上(IP:93.184.216.34)。 - 获取响应:外部网站
www.baidu.com
接收到请求并返回响应包给代理服务器,代理服务器再将响应包的目的IP修改为我电脑的内网IP10.20.21.12
,并将响应包通过学校内网传回给我的电脑。 - 完成通信:我的电脑接收到代理服务器转发回来的响应包,这样我就能够在内网环境下成功访问外部的
www.baidu.com
。
对比总结
- NAT:用于内网设备访问公网资源,通过将内网IP地址转换为公网IP地址,使得内网设备能够正常通信。它适用于几乎所有需要内网访问公网的场景,且配置简单。
- VPN:用于从公网访问内网资源,通过加密隧道和IP地址转换,使得远程用户能够安全地访问内网。VPN在远程办公、跨地区访问公司资源时非常实用。
- 代理服务器:用于内网设备访问公网资源,通过代理服务器中转请求并隐藏内网设备的真实IP。代理服务器适用于需要控制和管理网络访问的场景,并且可以优化网络性能和安全性。
端口映射(Port Forwarding)
端口映射 是一种将外部网络的特定端口映射到内部网络的特定设备和端口的技术。它允许外部用户通过指定的公网IP和端口号访问内网中的特定服务,而不需要完全暴露整个内网。
举个例子:
假设我在家里运行了一台Web服务器,内网IP地址为 192.168.1.10
,监听端口为 8080
。我希望从外部访问这个Web服务器。我可以在家里的路由器上设置端口映射,将外部的 80
端口请求映射到内网的 192.168.1.10:8080
。这样,当我从外部访问我的公网IP 203.0.113.5:80
时,请求会被转发到内网的 192.168.1.10:8080
,从而访问到我的Web服务器。
端口映射的特点:
- 方向:从公网访问内网资源。
- IP地址转换:将公网IP和端口映射到内网的特定设备和端口,允许外部用户访问内网中的特定服务。
- 使用场景:适用于需要公开特定内部服务的情况,如在家里公开Web服务器、FTP服务器等。
SOCKS代理
SOCKS代理 是一种网络协议,用于代理TCP或UDP流量,允许客户端通过代理服务器向外部网络发送请求。与传统的HTTP代理不同,SOCKS代理可以处理任何类型的网络流量,包括HTTP、FTP、SMTP等,提供更灵活的代理服务。
举个例子:
假设我在内网中使用一个支持SOCKS代理的应用程序(如SSH客户端)访问外部资源。我配置应用程序使用内网的SOCKS代理服务器(IP地址为 10.20.21.20
),然后通过代理服务器与外部服务器 www.example.com
(IP地址:93.184.216.34
)通信。代理服务器接收到我的请求后,会代表我与外部服务器通信,并将响应结果返回给我的应用程序。
SOCKS代理的特点:
- 方向:从内网访问公网资源。
- IP地址转换:SOCKS代理代理所有流量,不局限于某种协议或服务类型,提供通用的代理功能。
- 使用场景:适用于需要代理多种协议和服务的情况,如穿透防火墙、隐藏客户端IP、跨地域访问受限资源等。