信息安全WEB渗透+学习思路
简介
主要是针对小白,不知道该如何入门,怎么学习web渗透,这也是本人的学习路径和规划,有不清楚的地方不喜勿喷
计算机网络基础
计算机网络是指通过各种传输介质和设备,将计算机和其他终端设备连接在一起,以便进行数据通信和资源共享的系统。
理论部分还是比较枯燥的还是希望大家看一看,有一定基础的可以跳过
计算机网络概念:
基本定义
- 计算机网络:连接多个计算机和其他设备的系统,使其能够共享资源和信息。
- 网络节点:网络中的设备,如计算机、打印机、路由器等。
- 通信链路:连接网络节点的传输介质,如有线(光纤、铜缆)或无线(Wi-Fi、蓝牙)。
网络类型
- 局域网(LAN):覆盖小范围区域(如办公室、校园)的网络。
- 广域网(WAN):覆盖大范围区域(如城市、国家甚至全球)的网络。
- 城域网(MAN):覆盖中等范围区域(如一个城市)的网络。
- 个人局域网(PAN):覆盖个人使用的小范围网络,如蓝牙设备连接。
网络拓扑
- 总线拓扑:所有设备共享一条公共传输介质
- 星型拓扑:所有设备都连接到一个中央节点(如交换机)。
- 环型拓扑:每个设备连接到两个相邻设备,形成一个环形结构。
- 网状拓扑:每个设备直接与多个其他设备连接,提供冗余路径。
- 树型拓扑:多个星型拓扑组合成分层结构。
计算机网络组成:
网络设备
- 路由器:连接不同网络,并进行数据包路由和转发。
- 交换机:连接局域网内的设备,并基于MAC地址转发数据帧。
- 集线器:连接局域网内的设备,进行数据广播。
- 网卡:计算机和网络的接口设备。
- 防火墙:监控和控制进出网络的数据流,提供安全防护。
计算机网络协议&&计算机网络参考模型
一般学习我们都是学习OSI参考模型但是我们实际上使用的是TCP/IP参考模型,但是OSI参考模型能让我们更好的学习计算机网络的架构
TCP/IP(传输控制协议/互联网协议)是当前网络通信的基础协议套件。它由一组协议组成,这些协议定义了计算机如何在网络上进行通信。TCP/IP协议套件包括多个层次,每一层都有其特定的功能。以下是TCP/IP协议内容的详细介绍:
1. TCP/IP模型
TCP/IP模型由四层组成,分别是应用层、传输层、网络层和网络接口层。这四层相当于OSI模型的七层。
1.1 应用层(Application Layer)
- HTTP/HTTPS:超文本传输协议/安全超文本传输协议,用于网页浏览和数据传输。
- FTP:文件传输协议,用于文件传输。
- SMTP:简单邮件传输协议,用于发送电子邮件。
- POP3/IMAP:用于接收电子邮件的协议。
- DNS:域名系统,将域名解析为IP地址。
- Telnet/SSH:远程登录协议。
1.2 传输层(Transport Layer)
- TCP(Transmission Control Protocol):传输控制协议,提供可靠的、面向连接的数据传输。
- 特点:可靠传输、流量控制、错误检测、重传机制。
- 端口:使用端口号区分不同应用,如HTTP使用端口80,HTTPS使用端口443。
- UDP(User Datagram Protocol):用户数据报协议,提供不可靠的、无连接的数据传输。
- 特点:低延迟、无保证传输、适用于实时应用。
- 端口:使用端口号区分不同应用,如DNS使用端口53。
1.3 网络层(Network Layer)
- IP(Internet Protocol):互联网协议,负责将数据包从源地址传输到目标地址。
- IPv4:32位地址格式,常见于大多数网络。
- IPv6:128位地址格式,提供更大的地址空间。
- ICMP(Internet Control Message Protocol):互联网控制消息协议,用于传输控制消息和错误报告。
- 应用:ping命令使用ICMP发送回显请求。
- ARP(Address Resolution Protocol):地址解析协议,将IP地址解析为MAC地址。
- RARP(Reverse Address Resolution Protocol):反向地址解析协议,将MAC地址解析为IP地址。
1.4 网络接口层(Network Interface Layer)
- 以太网(Ethernet):定义了在局域网上如何传输数据帧,包括MAC地址的使用。
- Wi-Fi:无线局域网协议,基于IEEE 802.11标准。
- PPP(Point-to-Point Protocol):点对点协议,通常用于点对点连接,如拨号连接。
2. TCP/IP通信过程
- 数据封装:数据从应用层开始封装,经过传输层、网络层和网络接口层,每一层都增加相应的头部信息。
- 路由和转发:网络层使用IP地址确定数据包的传输路径,通过路由器进行转发。
- 数据解封装:接收端按顺序解封装数据,从网络接口层开始,逐层解封到应用层。
3. TCP连接的建立与释放
- 三次握手:TCP连接建立过程:
- 客户端发送SYN(同步)包。
- 服务器收到SYN包,回应SYN-ACK(同步-确认)包。
- 客户端收到SYN-ACK包,回应ACK(确认)包,连接建立。
- 四次挥手:TCP连接释放过程:
- 客户端发送FIN(终止)包。
- 服务器收到FIN包,回应ACK包。
- 服务器发送FIN包。
- 客户端收到FIN包,回应ACK包,连接释放。
4. IP地址和子网划分
- IP地址:标识网络设备的位置,如192.168.1.1。
- 子网掩码:用于划分IP地址的网络部分和主机部分,如255.255.255.0。
- CIDR(Classless Inter-Domain Routing):无类别域间路由,通过前缀长度(如/24)表示子网。
5. 端口号
-
作用:区分同一主机上的不同网络应用或服务。
-
范围:0-65535,常见端口号如
[!NOTE]
HTTP(80),HTTPS(443),FTP(21),SSH(22)。
6. 网络地址转换(NAT)
- 功能:在私有网络和公共网络之间转换IP地址,节约IP地址,提供一定的安全性。
- 类型:静态NAT、动态NAT、PAT(端口地址转换)。
7. 网络安全
- 防火墙:监控和控制网络流量,防止未经授权的访问。
- VPN(Virtual Private Network):虚拟专用网络,通过加密隧道在公共网络上传输数据,提供安全连接。
TCP/IP协议套件通过这些层次和协议,实现了计算机和网络设备之间的可靠通信和数据传输,构成了现代互联网的基础。
OSI参考模型
OSI(Open Systems Interconnection,开放系统互联)参考模型是一个抽象的框架,用于理解和设计网络系统的通信。OSI模型将网络通信过程划分为七个层次,每层都有特定的功能和职责。以下是OSI参考模型的详细介绍:
1. 物理层(Physical Layer)
- 功能:负责传输原始的比特流,定义硬件设备的电气、机械、功能和规程特性。
- 关键任务:信号传输、介质选择、数据率控制。
- 设备:网卡、集线器、传输介质(如光纤、双绞线)。
2. 数据链路层(Data Link Layer)
- 功能:将物理层传输的原始比特流组织成帧(Frame),并提供可靠的数据传输。
- 关键任务:帧同步、错误检测和纠正、流量控制。
- 子层:
- 逻辑链路控制(LLC):提供逻辑链路控制和流量管理。
- 介质访问控制(MAC):控制对传输介质的访问。
- 设备:交换机、网桥。
3. 网络层(Network Layer)
- 功能:负责数据包的路径选择和转发,实现跨越多个网络的数据传输。
- 关键任务:路由选择、逻辑地址(IP地址)管理、数据包分片与重组。
- 协议:IP(IPv4、IPv6)、ICMP、ARP、RARP。
- 设备:路由器。
4. 传输层(Transport Layer)
- 功能:提供端到端的通信服务,确保数据传输的可靠性和完整性。
- 关键任务:连接管理、错误检测和恢复、流量控制、数据分段与重组。
- 协议:TCP(传输控制协议)、UDP(用户数据报协议)。
- 设备:传输层主要通过操作系统内核中的协议栈实现,通常不涉及专用硬件设备。
5. 会话层(Session Layer)
- 功能:管理和控制应用程序之间的会话,负责会话建立、维护和终止。
- 关键任务:会话管理、同步、对话控制。
- 协议:PPTP、RPC(远程过程调用)。
6. 表示层(Presentation Layer)
- 功能:处理数据的表示形式,确保数据在不同系统之间的语法和语义正确性。
- 关键任务:数据格式转换、数据加密和解密、数据压缩。
- 协议:SSL/TLS(用于加密)、JPEG、MPEG、GIF(用于数据格式)。
7. 应用层(Application Layer)
- 功能:为用户和应用程序提供直接的网络服务接口,支持各种网络应用。
- 关键任务:网络服务的实现、用户接口、数据的生成和解释。
- 协议:HTTP、HTTPS、FTP、SMTP、DNS、Telnet、SNMP。
- 设备:应用层通常不涉及专用硬件设备,服务由应用软件和服务器提供。
OSI模型的主要作用
- 标准化网络通信:提供一个标准框架,帮助不同厂商生产的设备和协议实现互操作性。
- 模块化设计:将复杂的网络通信任务分解成独立的层次,每层只需关注自己的特定功能。
- 促进技术发展:不同层次可以独立发展和优化,不影响其他层次的功能和性能。
- 故障排除:通过层次化结构,更容易定位和解决网络问题。
OSI模型与TCP/IP模型的对比
- 层数:OSI模型有七层,而TCP/IP模型有四层(应用层、传输层、网络层、网络接口层)。
- 应用层:OSI模型将应用层分为应用层、表示层和会话层,而TCP/IP模型将这三个层次合并为应用层。
- 协议细节:TCP/IP模型更注重实际协议的实现,而OSI模型更关注理论上的分层结构。
通过OSI模型,网络通信过程得以标准化和系统化,使得不同的网络系统能够互联互通,促进了全球网络的发展和应用。
WEB渗透基础
这部分都是代码之类的部分有些要好好学,有些能看懂就行,能看懂的不难,需要会的也不简单要结合实际情况去看,结合框架
白盒测试:拿到网站源码进行渗透测试
黑盒测试:没有网站源码进行渗透测试
灰盒测试:结合了黑盒测试和白盒测试
web服务器架构
前端
- 功能:处理用户界面和交互逻辑,向用户展示数据和内容。
- 技术:HTML、CSS、JavaScript等。
- 框架:React、Angular、Vue等。
后端
- 功能:处理业务逻辑和数据处理,与数据库交互。
- 技术:Java、Python、Node.js、PHP等。
- 框架:Spring Boot、Django、Express等。
中间件
- 功能:连接前端和后端,处理请求和响应。
- 技术:Nginx、Apache等。
- 功能:负载均衡、反向代理、缓存等。
html+css学习
html+css我是认为稍微看看就行能看懂浏览器在干什么html代码的内容就行
JavaScript学习
javascript学习也是必须的,xss跨站脚本攻击就是通过javascript来攻击的,有很多的油猴脚本都是需要javascript来编写的。
PHP学习
php可以联合这mysql一起学,我是看小迪的PHP安全开发部分学习的
哔哩哔哩上面有课程当然有钱还是可以买小迪的课程:
JAVA学习
JAVA目前我还没学到,但是小迪的课程也是有教学的JAVA部分
MYSQL学习
需要深入学习一下,如果不学习mysql的话你的sql注入一定走不远
- 增:insert into 表名(‘列名1’,‘列名2’) value(‘列1值’, ‘列2值’);
- 删:delete from 表名 where 列名 = ‘条件’;
- 改:update 表名 set 列名 = 数据 where 列名 = ‘条件’;
- 查:select * from 表名 where 列名 = ‘条件’;
python学习
python还是挺节俭的一个语言,可以学习来编写脚本
WEB渗透的十大方法
了解渗透方法的同时可以去做各种的漏洞复现,来熟悉和使用工具,一般来说不需要深入学习某个工具,知道怎样用就可以,
学习期间一定要自己搭建靶场,不要做未授权的渗透
学习期间一定要自己搭建靶场,不要做未授权的渗透
学习期间一定要自己搭建靶场,不要做未授权的渗透
学习期间一定要自己搭建靶场,不要做未授权的渗透我们有哔哩哔哩大学教我们搭建靶场的
SQL注入(SQL Injection):
攻击者通过在Web应用程序的输入字段中注入恶意的SQL代码,从而操控数据库执行非预期的操作,如读取、修改或删除数据。
跨站脚本(XSS,Cross-Site Scripting):
攻击者在Web页面中插入恶意的JavaScript代码,这些代码会在其他用户的浏览器中执行,可能导致用户的Cookie、会话或其他敏感信息被窃取。
跨站请求伪造(CSRF,Cross-Site Request Forgery):
攻击者诱导受害者在已认证的情况下,执行攻击者指定的未经授权的操作。
文件上传漏洞:
攻击者上传恶意文件(如Web shell)到服务器,获取远程控制权限或执行任意代码。
目录遍历(Directory Traversal):
攻击者通过修改请求的URL路径,访问到服务器上不应公开的文件和目录,从而获取敏感信息。
远程代码执行(RCE,Remote Code Execution):
攻击者通过漏洞在服务器上执行任意代码,通常通过注入恶意代码到应用程序中。
不安全的反序列化:
攻击者利用不安全的反序列化漏洞,通过特制的序列化数据包,执行恶意代码或篡改数据。
暴力破解(Brute Force Attack):
攻击者通过尝试大量的用户名和密码组合,试图猜测用户的登录凭据。
敏感数据泄露:
攻击者通过对公开信息的搜索、分析,或通过其他漏洞获取存储或传输中的敏感数据。
安全配置错误:
攻击者利用Web应用程序或服务器的错误配置(如默认账号、未关闭的调试模式等),获取未经授权的访问。
内网安全
Windows基础学习
Windows用户和组的架构
-
用户(User):在Windows系统中,用户是指登录系统的个人或应用程序。每个用户都有一个唯一的用户名和密码。
- **system:**拥有高于administrator的权限但是我们使用不了
- 管理员用户(Administrator):拥有最高权限,能够执行系统管理任务。
- 标准用户(Standard User):权限受限,只能执行日常操作。
-
组(Group):组是多个用户的集合,用于简化权限管理。
- 内置组(Built-in Groups):如Administrators、Users、Guests等,系统预定义的组。
- 自定义组(Custom Groups):用户可以根据需要创建和管理自己的组。
Windows命令行的学习
- 命令提示符(CMD):Windows的命令行界面,提供了基本的命令行操作能力。
- 基本命令:
dir
:列出目录中的文件和子目录。cd
:更改当前目录。copy
:复制文件。del
:删除文件。mkdir
:创建新目录。rmdir
:删除目录。ipconfig
:查看和管理网络配置。tasklist
:列出当前运行的进程。taskkill
:终止指定进程。
- 基本命令:
- PowerShell:更强大的命令行工具,支持脚本编写和系统管理。
- 基本命令:
Get-Help
:获取命令帮助信息。Get-Command
:列出所有可用命令。Get-Process
:查看当前运行的进程。Stop-Process
:终止指定进程。Get-Service
:查看系统服务状态。Start-Service
:启动服务。Stop-Service
:停止服务。
- 基本命令:
Windows提权
- 漏洞利用:通过系统或软件的漏洞获取更高权限,如使用已知的Exploit。
- 弱口令攻击:利用系统中弱密码的账户进行提权。
- 配置不当:利用系统配置错误(如未授权的共享文件夹)进行提权。
- UAC绕过:利用Windows用户帐户控制(UAC)中的漏洞绕过权限限制。
- 凭证盗取:通过窃取凭证文件(如SAM文件、LSASS进程)获取更高权限。
Linux基础学习
Linux用户和组的架构
- 用户(User):在Linux系统中,用户是指能够登录系统的个人或应用程序。每个用户都有一个唯一的用户名和密码。
- 超级用户(root):系统管理员用户,拥有最高权限。
- 普通用户(Standard User):权限受限,只能执行日常操作。
- 组(Group):组是多个用户的集合,用于简化权限管理。
- 内置组(Built-in Groups):如root、sudo、users等,系统预定义的组。
- 自定义组(Custom Groups):用户可以根据需要创建和管理自己的组。
Linux命令行学习
- 基本命令:
ls
:列出目录中的文件和子目录。cd
:更改当前目录。cp
:复制文件或目录。mv
:移动或重命名文件或目录。rm
:删除文件或目录。mkdir
:创建新目录。rmdir
:删除目录。pwd
:显示当前工作目录。chmod
:更改文件或目录的权限。chown
:更改文件或目录的所有者。ps
:查看当前运行的进程。kill
:终止指定进程。ifconfig
或ip
:查看和管理网络配置。systemctl
:管理系统服务。
Linux提权
- 漏洞利用:通过系统或软件的漏洞获取更高权限,如使用已知的Exploit。
- 弱口令攻击:利用系统中弱密码的账户进行提权。
- SUID程序:利用具有SUID位的程序获取更高权限。
- 配置不当:利用系统配置错误(如未授权的共享文件夹、错误配置的Cron作业)进行提权。
- 凭证盗取:通过窃取凭证文件(如/etc/shadow文件)获取更高权限。
录。
pwd
:显示当前工作目录。chmod
:更改文件或目录的权限。chown
:更改文件或目录的所有者。ps
:查看当前运行的进程。kill
:终止指定进程。ifconfig
或ip
:查看和管理网络配置。systemctl
:管理系统服务。
Linux提权
- 漏洞利用:通过系统或软件的漏洞获取更高权限,如使用已知的Exploit。
- 弱口令攻击:利用系统中弱密码的账户进行提权。
- SUID程序:利用具有SUID位的程序获取更高权限。
- 配置不当:利用系统配置错误(如未授权的共享文件夹、错误配置的Cron作业)进行提权。
- 凭证盗取:通过窃取凭证文件(如/etc/shadow文件)获取更高权限。
文中的图片是网上搜的如有侵权,联系俺俺删除