先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

wget ip:port

or

wget localhost:5000

在这里插入图片描述

2.4 nc

2.4.1 工具简介

nc命令是功能强大的网络工具。nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。
比如大家很熟悉使用telnet测试tcp端口,而nc可以支持测试linux的tcp和udp端口,而且也经常被用于端口扫描,甚至把nc作为server以TCP或UDP方式侦听指定端口做简单的模拟测试。

nc(netcat) 是一个简单的 Unix 工具,它使用 TCP 或 UDP 协议去读写网络连接间的数据。

2.4.2 工具安装

工具安装命令:

yum install nc -y

2.4.3 工具使用

nc -z -v -n 127.0.0.1 6379

nc -z -v -n 172.17.26.137 6379

nc -z ip port 或 nc -v -w 1 ip -z port

nc –uz IP port(u代表UDP)

nc -v -w 1 ip -z port

or

nc -v -w 1 localhost -z 80

在这里插入图片描述

2.5 ssh

2.5.1 工具简介

SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。
在这里插入图片描述

  • SSH和其他传输协议的区别
  • 传统远程登录和文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全隐患。随着人们对网络安全的重视,这些方式已经慢慢不被接受。
  • SSH协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的网络服务。作为Telnet和其他不安全远程shell协议的安全替代方案,目前SSH协议已经被全世界广泛使用,大多数设备都支持SSH功能。
    在这里插入图片描述
  • SSH和SSL的区别
  • SSH和SSL都是网络安全协议,通过加密和认证提升两台设备间传输数据的安全性。但SSH和SSL的生效方式和服务目标存在差异。
  • SSH在两台设备间创建安全隧道,使这两台设备间可以安全地发送命令、传输数据等。例如,客户端通过SSH远程登录到一台服务器上,就可以安全地远程管理这台服务器,在服务器上执行想要的命令。
  • SSL则是使用SSL证书保证两台设备间安全地传输数据,而不是像SSH那样可以执行命令。例如,用户通过浏览器访问某安装了SSL证书且启用了HTTPS的服务器,浏览器和服务器之间可以安全地传输数据。
  • SSH就像一辆汽车,我们看不到这辆封闭的汽车里装载的是什么。而SSL就像一个封闭的集装箱,我们可以用不同的交通工具运输它,但看不到集装箱里装的是什么。

在 Linux 系统上 SSH 是非常常用的工具,通过 SSH Client 我们可以连接到运行了 SSH Server 的远程机器上。SSH Client 的基本使用方法是:

ssh -v -p port username@ip

or

ssh user@remote -p port

user 是你在远程机器上的用户名,如果不指定的话默认为当前用户
remote 是远程机器的地址,可以是 IP,域名,或者是后面会提到的别名
port 是 SSH Server 监听的端口,如果不指定的话就为默认值 22

  • windows
    在这里插入图片描述
  • linux
    在这里插入图片描述
2.5.2 工具使用

ssh -v -p port username@ip

2.6 nmap

2.6.1 工具简介

nmap(“Network Mapper”)是一个用于网络探索和安全审计的开源工具,被设计用来快速地扫描大规模网络,尽管对于单个主机它也同样能够正常工作。

nmap 扫描器主要基本功能有三个,一是探测一组主机是否在线,其次是扫描主机端口,嗅探所提供的网络服务,还可以推断主机所用的操作系统。也可以深入探测 UDP 或者 TCP 端口,直至主机所使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。

2.6.2 工具安装

yum install nmap -y
#or
sudo apt install nmap

在这里插入图片描述

2.6.2 工具使用

nmap 127.0.0.1 -p 80

在这里插入图片描述
检测端口成功!!!

nmap 127.0.0.1 -p 8080

在这里插入图片描述
检测端口失败!!!

查看当前开放的端口:nmap localhost;
查看主机端口(1024-65535)中开放的端口:nmap -p 1024-65535 localhost;
探测目标主机开放的端口:nmap -PS ip 地址;
探测所列出的目标主机端口:nmap -p22,80,3306 ip 地址;
探测目标主机操作系统类型、端口服务名称、版本信息:nmap -sV -O localhost。

  • 扫描具有范围的所有TCP端口 (Scan All TCP Ports with Range)
    我们可以使用-p选项指定端口范围。 我们知道TCP端口号介于和65535 。 我们将使用-p0-65535作为选项,以扫描所有TCP端口。 我们未指定TCP协议,因为Nmap端口扫描的默认协议为TCP。

nmap -p0-65535 192.168.122.1

  • 更快扫描所有端口 (Faster Scan For All Ports)
    如果我们要扫描所有端口,则将花费大量时间。 如果情况不是很紧急,我们可以使用带有-T5参数的更快扫描。 这是Nmap最快的扫描级别。 此选项也可用于UDP扫描。

nmap -p0-65535 192.168.122.1 -T5

3、Python

3.1 sock.connect_ex

使用socket模块的connect_ex来判断端口是否打开

import socket

def check_port(ip, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(5)

try:
result = sock.connect_ex((ip, port))
if result == 0:
return True
else:
return False
except Exception as e:
print(f"错误: {str(e)}")
finally:
sock.close()

if name == ‘__main__’:
host = ‘localhost’
port = 8000
if check_port(host, port):
print(f’The port {port} on {host} is open.‘)
else:
print(f’The port {port} on {host} is closed.’)

执行结果如下:
在这里插入图片描述

3.2 sock.connect

import socket

def check_port(host, port):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
sock.connect((host, port))
sock.close()
return True
except:
return False
finally:
sock.close()

if name == ‘__main__’:
ret = check_port(‘127.0.0.1’, 80)
print("80: ", ret)
ret = check_port(‘127.0.0.1’, 8000)
print("8000: ", ret)

在这里插入图片描述

3.3 telnet命令

telnet <IP地址> <端口>

import os

def check_port(ip, port):
result = os.system(f"telnet {ip} {port}") #windows

result = os.system(f"telnet {ip} {port} > /dev/null 2>&1") #linux

if result == 0:
print(f"端口 {port} 是开放的")
else:
print(f"端口 {port} 是关闭的")

if name == ‘__main__’:
ret = check_port(‘127.0.0.1’, 80)
print("80: ", ret)

ret = check_port(‘127.0.0.1’, 8000)

print("8000: ", ret)

在这里插入图片描述

3.4 nc命令

nc -zv <IP地址> <端口>

import os

def check_port(ip, port):
result = os.system(f"nc -zv {ip} {port} > /dev/null 2>&1")
if result == 0:
print(f"端口 {port} 是开放的")
else:
print(f"端口 {port} 是关闭的")

if name == ‘__main__’:

ret = check_port(‘127.0.0.1’, 80)

print("80: ", ret)

ret = check_port(‘127.0.0.1’, 8000)
print("8000: ", ret)

3.5 ping命令

ping <IP地址> -n <端口>

import os

def check_port(ip, port):

result = os.system(f"ping {ip} -n {port} > /dev/null 2>&1")

result = os.system(f"ping {ip} -n {port} “)
if result == 0:
print(f"端口 {port} 是开放的”)
else:
print(f"端口 {port} 是关闭的")

if name == ‘__main__’:

ret = check_port(‘127.0.0.1’, 80)

print("80: ", ret)

ret = check_port(‘127.0.0.1’, 8000)
print("8000: ", ret)

在这里插入图片描述

3.6 requests检查http端口

import requests

def check_port(ip, port):
try:
response = requests.get(f"http://{ip}:{port}“)
if response.status_code == 200:
print(f"端口 {port} 是开放的”)
else:
print(f"端口 {port} 是关闭的")
except requests.exceptions.ConnectionError:
print(f"端口 {port} 是关闭的")

if name == ‘__main__’:

ret = check_port(‘127.0.0.1’, 80)

print("80: ", ret)

ret = check_port(‘127.0.0.1’, 8000)
print("8000: ", ret)

在这里插入图片描述

3.7 Scapy库

Scapy是一个由Python编写的强大工具,目前很多优秀的网络扫描攻击工具都使用了这个模块。也可以在自己的程序中使用这个模块来实现对网络数据包的发送、监听和解析。这个模块相对于Nmap来说,更为底层。可以更直观的了解网络中的各类扫描攻击行为。

Scapy是一个 Python程序,它允许用户发送、嗅探、分析和伪造网络包。这种能力允许构建能够探测、扫描或攻击网络的工具。

Scapy是一个强大的交互式包操作程序。它能够伪造或解码大量协议的数据包,在网络上发送它们,捕获它们,匹配请求和响应,等等。Scapy可以轻松地处理大多数经典任务,如扫描、跟踪、探测、单元测试、攻击或网络发现。它可以代替hping、arpsoof、arp-sk、arping、p0f甚至Nmap、tcpdump和tshark的某些部分。

  • 安装Scapy库

pip install scapy

在这里插入图片描述

  • 代码测试

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
rp-sk、arping、p0f甚至Nmap、tcpdump和tshark的某些部分。

  • 安装Scapy库

pip install scapy

在这里插入图片描述

  • 代码测试

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-5DXrmfdg-1713178379431)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐