网安学习Day1-Web渗透基础知识

文章解释: 主包是一名网络安全入门学习小白,写这些给自己的做每天的学习总结,内容也参考了csdn大佬们的文章,想同大佬们一起进步!有不对的地方,恳请大佬们指点,感谢!

一、前置知识

1.域名

域名(英语:Domain Name),又称网域,是由一串用分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。

顶级域名(Top-Level Domain,简称TLD):这是域名的最高级别,也被称为一级域名。例如,.com, .net, .org等都是顶级域名。这些顶级域名通常由一个或两个字母组成,并被用于标识网站的类别或所有者的性质。目前,全球有数十个顶级域名,其中包括通用顶级域名(如.com、.net、.org等)和国别或地区顶级域名(如.cn、.uk、.fr等)。

一级域名(First-Level Domain):紧接在顶级域名之后,一级域名是域名的第二级别。例如,如果一个网站的顶级域名是.com,那么它的一级域名可以是任何在.com后加上一个或多个字母的组合,如example.com。对于国别或地区顶级域名,一级域名通常是由该国家或地区的语言文字组成的。例如,对于中国,一级域名可能包括example.cn。

二级域名(Second-Level Domain):紧接着一级域名之后,二级域名是域名的第三级别。它通常在一级域名后面添加一个或多个字母,例如example.com下的二级域名可以是www.example.com。此外,对于一些特定的网站或服务,也可以自定义二级域名,如example.com下的二级域名example.net。

三级域名(Third-Level Domain):紧跟在二级域名之后,三级域名是域名的第四级别。它通常是在二级域名后面添加一个或多个字母,例如www.example.com下的三级域名可以是www.www.example.com。三级域名通常用于对网站进行更细致的分类或者标识特定的页面或服务。

一级域名:xxx.xxx
二级域名:xxx.xxx.xxx
多级域名:依此类推

2.DNS

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

域名的形式:域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。

更详细的学习文章:DNS图解(秒懂 + 史上最全)-CSDN博客

3.Http/Https

HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

通信过程:

1.浏览器建立与web服务器之间的连接

2.浏览器将请求数据打包(生成请求数据包)并发送到web服务器

3.web服务器将处理结果打包(生成响应数据包)并发送给浏览器

4.web服务器关闭连接

总结:立连接——>发送请求数据包——>返回响应数据包——>关闭连接

更详细的学习文章:【计算机网络】HTTP 协议详解_3.简述浏览器请求一个网址的过程中用到的网络协议,以及协议的用途(写关键点即可)-CSDN博客

 

4.数据包

4.1数据格式

1.请求行:请求类型/请求资源路径、协议的版本和类型,常用GET和POST请求。

2.请求头:一些键值对,一般由w3c定义,浏览器与web服务器之间都可以发送,表示特定的某种含义。

3.【空行】请求头与请求体之间用一个空行隔开。

4.请求体:要发送的数据(一般post方式会使用)。例:userName=123&password=123&returnUrl=/

如:

1.get直接在浏览器输入,post需要工具发送请求

get请求

https://ccg.scu.edu.cn/text.php?i=267

post请求

https://media.yzu.edu.cn/Default/Login

2.get用url或者cookie传参,post将数据放在body中

cookie

https://webvpn.gxnu.edu.cn/

https://src.sjtu.edu.cn/post/277864/

3.get的URL有长度限制,post数据可以非常大

4.post比get安全,因为URL看不到数据

4.2请求头含义:

Accept:指浏览器或其他客户可以接爱的MIME文件格式。Servlet可以根据它判断并返回适当的文件格式。

User-Agent:是客户浏览器名称

X-Forwarded-For :客户端真实ip

Host:对应网址URL中的Web名称和端口号。

Accept-Langeuage:指出浏览器可以接受的语言种类,如en或en-us,指英语。

connection:用来告诉服务器是否可以维持固定的HTTP连接。http是无连接的,HTTP/1.1使用Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接

Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能。

Referer:表明产生请求的网页URL。如比从网页/icconcept/index.jsp中点击一个链接到网页/icwork/search,在向服务器发送的GET/icwork/search中的请求中,Referer是http://hostname:8080/icconcept/index.jsp。这个属性可以用来跟踪Web请求是从什么网站来的。

Content-Type: application/json  // 当客户端向服务端发起HTTP的POST请求时,客户端告诉服务端,我们发送的数据类型,方便服务端去解析数据。HTTP 中的 post 请求使用最多的Content-Type 类型是: application/json

Content-Type 的几种常见类型有:

①. application/x-www-form-urlencoded  // 说明:最常见的 POST 提交数据的方式,原生Form表单,如果不设置 enctype 属性,默认为application/x-www-form-urlencoded 方式提交数据。

②. multipart/form-data  // 说明:一个常见的 POST 数据提交的方式, Form 表单的 enctype 设置为multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。

它既可以上传键值对,也可以上传文件,甚至多个文件。

③. application/json  // 说明:用来告诉服务端消息主体是序列化后的 JSON 字符串,其中一个好处就是JSON 格式支持比键值对复杂得多的结构化数据。

④. text/xml  // 说明:提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据

⑤. binary(application/octet-stream) // 说明:用来传输二进制文件类型

Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是ISO-8859-1.

Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到Web响应之后先解码,然后再检查文件格式。

4.3 get和post的区别:

1.get直接在浏览器输入,post需要工具发送请求

get请求

https://ccg.scu.edu.cn/text.php?i=267

post请求

https://media.yzu.edu.cn/Default/Login

2.get用url或者cookie传参,post将数据放在body中

cookie

https://webvpn.gxnu.edu.cn/

https://src.sjtu.edu.cn/post/277864/

3.get的URL有长度限制,post数据可以非常大

4.post比get安全,因为URL看不到数据

4.4响应数据包

1.状态行:协议版本、数字形式的状态代码和状态描述,个元素之间以空格分隔。

2.响应头:包含服务器类型、日期、长度、内容类型等。

3.【空行】响应头与响应体之间用空行隔开。

4.响应正文:程序处理后果,浏览器会将实体内容中的数据取出来,生成相应的页面。

HTTP/1.1 200 OK

Date: Tue, 28 May 2024 15:42:58 GMT

Server: Apache/2.4.7 (Ubuntu)

X-Powered-By: PHP/5.5.9-1ubuntu4.14

Vary: Accept-Encoding

Content-Length: 102

Connection: close

Content-Type: text/html

OK

4.5 常见状态码

1**:提示信息-表示请求已收到,继续处理

2**:发送成功(200)

3**:重定向(302)

https://newbase.zhihuishu.com/druid/basic.json

4**:客户端错误

400.发送请求有语法错误

401.访问页面没有授权

403.没有权限访问该页面

https://223.247.107.183:8443/

https://115.126.76.22:8443/

404.没有该页面,无资源

5**:服务端错误

502."Bad Gateway",即错误的网关

简单来说就是服务器没有响应,也就是我们的web服务器没有接到有效的信息导致的,产生错误的原因有很多,设置代理、请求过多导致无法响应等等,都有可能导致请求502 Bad Gateway。

500.服务器内部异常

服务器配置不足

网站程序错误或冲突

服务器数据库连接出错

用户访问无权限

ASP语法或其他编程语言的错误

504.服务器请求超时,没有返回结果

二、网站构架与安全基础

1.前端基础

HTML、CSS 和 JavaScript 是前端开发的基础技术,它们在网页和web应用的设计和开发中扮演着不同的角色。

1、HTML (HyperText Markup Language)

作用
HTML 是网页的骨架,它定义了网页的基本结构和内容。HTML 元素由标签、属性和元素的文本内容组成,标签通常成对出现(如 <p> 和 </p>),用于包裹和描述网页上的文本、图片、链接、列表、表格等内容。

2、CSS (Cascading Style Sheets)

作用
CSS 负责描述HTML文档的样式,如布局、颜色、字体、动画等。通过CSS,我们可以将HTML元素的外观和布局与HTML文档的内容分离开来,使网页的样式更加灵活和可维护。

3、JavaScript (JS)

作用
JavaScript 是一种脚本语言,用于实现网页的交互性和动态功能。通过JavaScript,我们可以创建动态效果、处理用户输入、与服务器通信、操作DOM(文档对象模型)等。

4、总结

1、HTML 定义了网页的结构和内容(房子布局)

2、CSS 负责描述网页的样式和布局 (装修)

3、JavaScript 负责实现网页的交互性和动态功能(水电)

这三种技术通常一起使用,以创建功能丰富、外观美观的网页和web应用。在开发过程中,它们之间的协作和配合至关重要。

2.Html

<html>:HTML文档的根元素。所有其他HTML元素都包含在这个标签内。

<head>:包含关于文档的元信息

<title>:定义浏览器工具栏的标题,当网页添加到收藏夹时的标题。

<body>:包含网页的所有内容,如文本、超链接、图片、表格、列表等。

<h1> 到 <h6>:定义HTML标题。<h1> 定义最重要的标题,<h6> 定义最不重要的标题。

<p>:定义段落。

<a>:定义超链接,用于从一个页面链接到另一个页面。

<img>:定义图像。使用src属性指定图像的URL。

<div>:定义文档中的分区或节。通常与CSS一起使用来布局页面。

<span>:用于对文档中的行内元素进行分组,以便通过样式对其应用格式化。

<ul>:定义无序列表。

<ol>:定义有序列表。

<li>:定义列表项,在<ul><ol>内部使用。

<table>:定义HTML表格。

<form>:定义HTML表单,用于收集用户输入。表单可以包含各种输入元素,如文本字段、复选框、单选按钮、提交按钮等。

3. cookie 和 session

定义:Cookie和 Session用于跟踪用户的状态和保持用户的会话信息,在Web开发中经常被使用。

1、Cookie存储在客户端(用户的计算机上),而Session数据存储在服务器端。

2、由于Cookie可以被用户修改,因此Session在安全性方面通常优于Cookie。

3、Cookie可以设置过期时间,使其在用户的计算机上持续存在一段时间仍能使用;而Session的生命周期依赖于服务器的设置和用户的活动(如会话超时)。

4.端口

定义:端口是指运行在网络中的设备(如计算机、服务器、路由器等)上的逻辑通信接口,用于区分不同的网络服务和应用程序。每个端口都被分配了一个唯一的数字标识符,即端口号,范围通常是0到65535。(示例:智慧教育

理解:可以将其想象成你家里的门或者窗户。你的家(计算机)有很多这样的入口,每个都有特定的用途。比如,前门可能是用来迎接客人的,后门可能是用来倒垃圾的,而窗户则可能是用来透气或者接收阳光的。

在计算机网络中,端口就像是这些入口,它们允许不同类型的数据和服务进出计算机。每个端口都有一个编号,这个编号就像是门牌号,帮助识别数据应该去哪里。例如,当你上网浏览网页时,你的计算机和互联网上的服务器之间会通过特定的端口进行交流。通常,网页数据会通过80号“门”(端口)进来,如果是加密的安全网页,则会通过443号“门”。

常见端口号:

21:FTP文件传输服务

22:SSH(安全外壳协议,用来远程连接终端)

80:HTTP

139/445:网络资源共享

443:HTTPS

1433:SQL Server 数据库 (mssql)

1521:Oracle 数据库

3306:Mysql 数据库

3389:远程连接服务

5432:PostGreSql 数据库

6379:Redis 数据库

7001/7002/7003:Weblogic中间件

8080-8090:可能存在WEB服务

5.局域网

局域网是指在一个有限的地理区域内连接的计算机和其他网络设备组成的网络。这个区域可以是办公室、学校、家庭等。LAN提供了一种方式让多台计算机共享资源,如打印机、文件服务器以及高速的数据传输。

6.vpn

VPS,全称Virtual Private Server,即虚拟专用服务器,是一种通过虚拟化技术将一台物理服务器分割成多个虚拟服务器的服务。每个VPS都有独立的操作系统、磁盘空间、内存和网络带宽,使得用户可以像操作独立服务器一样管理自己的VPS。在渗透中,拥有一台公网VPS是非常重要的。如阿里云服务器。

未完待续。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值