Web基础笔记

锦衣   ·   发表于 2020-06-04 11:00:11   ·   闲聊灌水区

虚拟机:

vmware虚拟机下载地址:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html
镜像系统下载地:https://msdn.itellyou.cn/
phpstudy下载地址:http://phpstudy.php.cn/index.php

虚拟机需要装tools才可以直接从本机把文件直接复制进去。
虚拟机中网络连接有两种,桥接模式和NAT模式。桥接模式虚拟机会被路由分配一个内网ip,等于一台电脑加入内网(搞事必备)。NAT模式仅仅只有本机能访问到这个虚拟机的ip。(在虚拟机的设置可以更改)
webshell就是一种以web形式来操作的后门。(“web” - 显然需要服务器开放web服务,”shell” - 取得对服务器某种程度上操作权限。 )
getshell的意思是可以通过某种漏洞达到留下后门的操作。(比如找到一个漏洞上传一个马。)

web服务器通信原理

HTTP协议:HTTP是一种无状态的协议,无状态是指Web浏览器与Web服务器之间不需要建立持久的连接。也就是客户端发起一个请求(Request),服务器端接收到请求然后返回响应(Response),连接就被关闭,服务端不保留连接的有关信息。HTTP只能由客户端发起,服务器不能主动向客户端发送数据。
HTTPS: HTTPS的安全基础是SSL,即在HTTP下加入SSL层。也就是HTTPS通过安全传输协议机制进行传送数据,这种机制可保护网络传送的所有数据的隐秘性与完整性,可以降低非入侵性拦截攻击的可能性。
HTTP与HTTPS的主要区别:
HTTP是超文本传输协议,信息是明文传输。HTTPS则是具有安全性的SSL加密传输协议。
HTTP与HTTPS协议使用的是完全不同的连接方式,HTTP采用80端口连接,而HTTPS则是443端口。

HTTP消息:

又称为HTTP头,由四个部分组成,分别是请求头响应头普通头实体头

请求头: * 只能出现在HTTP请求中,请求报头允许客户端向服务器端传递请求的附加信息和客户端自身的信息。常用的HTTP请求头如下。

Host:请求报头域主要用于指定被请求资源的Iterner主机和端口号,例如:HOST:www.xxser.com:80。
User-Agent:请求报头域允许客户端将他的操作系统、浏览器和其他属性告诉服务器。
Referer:包含一个URL,代表当前访问URL的上一个URL,也就是说用户从什么地方来到本页面。
Cookie:是一段文本,用来表示请求者身份。
X-Forward-For:即XFF头,代表请求端的ip,可以有多个,中间以逗号隔开。
Accept:请求报头域用于指定客户端接收哪些MIME类型的信息,如:Accept:text/html,表明客户端希望接受HTML文本。
Accept-Charset:请求报头域用于指定客户端接收的字符集。例如Accept-Charset:iso-8859-1,gb2312。如果请求消息中没有设置这个域,默认是任何字符集都可以接收。
Range:可以请求实体的部分内容,多线程下载一定会用到此请求头。例如
表示头500字节:bytes=0~499
表示第二个500字节:bytes=500~999
表示最后500字节:bytes=-500
表示500字节以后得范围:bytes=500-

响应头 ## 是服务器根据请求向客户端发送的HTTP头。常见的HTTP响应头如下。

Server:服务器所使用的的Web服务器名称,如Server:Apache/1.3.6(Unix),攻击者通过查看此头,可以探测Web服务器名称。所以,建议服务器端进行修改此头信息。
Set-Cookie:向客户端设置Cookie,通过查看此头,可以清楚地看到服务器向客户端发送的Cookie信息。
Last-Modified:服务器通过这个头告诉浏览器,资源的最后修改时间。
Location:服务器通过这个头告诉浏览器去访问哪个页面,浏览器接收到这个请求之后,通常会立刻访问Location头所指向的页面。这个头通常配合302(重定向)状态码使用。
Refresh:服务器通过Rfresh头告诉浏览器定时刷新浏览器。

普通头: 在普通头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息。

Data:表示消息产生的日期和时间。
Connection:允许发送指定连接的选项。例如,指定连接是连续的,或者指定”clos”选项,通知服务器,在响应完毕后,关闭连接。
Cache-Control:用于指定缓存指令,缓存指令是单向的,且是独立的。

实体头: 实体头:请求和响应消息都可以传送一个实体头。实体头定义了实体正文和实体内容的属性。包括实体信息类型、长度、压缩方法、最后一次修改时间的等。如

Content-Type:实体头用于向接收方指示实体介质类型。
Content-Encoding:被用作媒体类型的修饰符,他的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。
Content-Length:用于知名实体正文的长度,以字节方式存储的十进制数字来表示。
Last-Modified:用于指示字眼的最后修改日期和时间。

从访客角度看网页浏览流程
1.1.1.1 baidu.com → 网关 →DNS表,qzone.qq.com→ IP web服务器
一、用户在浏览器输入协议://域名,如 http://www.zkaq.org

二、用户浏览器通过系统 → 向DNS服务器查询域名对应的IP地址

三、用户浏览器向查询到的IP地址(Web服务器)发起HTTP请求

四、服务器分析用户请求,从中提取数据,处理后返回一个http响应

五、浏览器收到响应后提取状态、协议编码、正文的有效信息,然后翻译成人类能够直观理解的图形界面并显示。

网关(Gateway)就是一个网络连接到另一个网络的“关口”。也就是网络关卡。简单来说,网关是设备与路由器之间的桥梁,由它将不同的网络间进行访问的控制,转换,交接等等。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络B向网络A转发数据包的过程
常见服务器系统:Windows Server、macOS Server、Linux(RedHat[收费],CenOS,Debian,Ubuntu)

  • 1XX:信息提示,表示请求已被成功接收,继续处理。其范围为100~101。
    • 2xx:成功,服务器成功地处理了请求。其范围为200~206。
    • 3xx:重定向,重定向出状态码用于告诉浏览器客户端,它们访问的资源已被移动,并告诉客户端新的资源地址位置。这时,浏览器将重新对新资源发起请求。其范围为300~305。
    • 4xx:客户端错误状态码,有时客户端会发送一些服务器无法处理的东西,比如格式错误的请求,或者最常见的是,请求一个不存在的URL。其范围为400~415。
    • 5xx:有时候客户端发送一条有效申请,但是Web服务器自身却出错了,可能是Web服务器运行出错了,或者网站都挂掉了。5xx就是用来描述服务器内部错误的,其范围为500~505。
      常见的状态码描述如下:
      200:客户端请求成功,是最常见的状态。
      302:重定向。
      404:请求资源不存在,是最常见的状态。
      400:客户端请求语法错误,不能被服务器所理解。
      401:请求未授权。
      403:服务器收到请求,但是拒绝提供服务。
      500:服务器内部错误,是最常见的状态。
      503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

      DNS协议:

      将域名转化为ip

公网、内网、NAT

公网:公网ip就是外网(广域网)ip,他是有限制的。外网又被叫做互联网,是连接不同地区局域网或者城域网计算机的通信的远程网络。通常可以跨接很大的物理范围,覆盖的范围可以是几十公里到几千公里,它能连接多个地区、城市和国家提供远距离通信,形成全球性的互联网络。
内网:内网ip的分配是由路由器和转换器(不是必须)转化的。内网也叫局域网,从范围上来讲内网就是小部分的网络,一般指的是特定环境下组成网络,比如某一个家庭多台计算机互联成的网络,也可以学校和公司的大型局域网,内网的IP一般都是192.168.1.100,192.168.0.100,172.16.1.100……这些都是内网IP,内网是不能直接连接外网,比较封闭,但在内网里面可以实现文件管理,应用软件共享、打印机共享等服务。

IP地址中,有三段地址专门用于私网的规划,不能被用于互联网上的连接如下:

A类:10.0.0.0-10.255.255.255

B类:172.16.0.0-172.31.255.255

C类:192.168.0.0-192.168.255.255

NAT:NAT被叫做地址转换技术,他是给局域网内多台计算机配置一个或多个公网ip,当内网计算机要访问公网他需要先通过NAT转化为一个公网IP然后去访问。

端口0~65535

  • 3389端口是Windows 2000(2003) Server远程桌面的服务端口,可以通过这个端口,用”远程桌面”等连接工具来连接到远程的服务器,如果连接上了,输入系统管理员的用户名和密码后,将变得可以像操作本机一样操作远程的电脑,因此远程服务器一般都将这个端口修改数值或者关闭。
  • 445端口是一个毁誉参半的端口,有了它我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,黑客们才有了可乘之机,他们能通过该端口偷偷共享你的硬盘,甚至会在悄无声息中将你的硬盘格式化掉!
  • 3306端口:mysql的3306端口在什么情况下要开放给外部呢,比如你需要在本地电脑上链接服务器上的数据库 对数据库进行操作备份 删除 修改之类的操作就需要开启3306的远程操作,但是一般为了安全,都不建议开启3306的远程操作,具体办法是修改防火墙里面的3306端口,把它从允许的列表里面删除或者禁止即可。
  • 1433端口是MSSQL这个服务对应的一个端口。那zhi么本身他并不是漏洞,但是由于MSSQL中的SA帐号默认dao的权限是system权限,因此当我们找到SA帐号的密码的时候我们也就等于得回到了一个cmdshell,接着就可以干我们想干的事情了。当然这些的前提就基答于MSSQL的组件没有被删除,SA没有被降权。
  • 80端口:浏览网页服务默认的端口号都是80,因此只需输入网址即可,不用输入“: 80”了。有些木马程序可以利用80端口来攻击计算机的,例如Executor、RingZero等。
  • 443端口即网页浏览端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。其他人抓包获取到的是加密数据,保证了交易的安全性。
  • netstat -an 查看本机开放端口
  • 端口1024前是系统固定的,但是一般上万的端口是系统临时调配
    ssh协议:SSH(Secure Shell )是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。通过使用SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
    telnet协议:它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
    Web服务器是指能够为发出请求的浏览器提供文档的程序。服务器是一种被动程序,只有浏览器发出请求的时候才会响应。应用层使用的是HTTP协议。Web服务器upi又叫www服务器或http服务器。提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。向浏览器提供服务的程序。
    web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可以有多个容器。

    CDN 内容分发网络

    CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

    动态语言

    • 动态地向web页面编辑、改变或添加任何的内容
  • 对由HTML表单提交的用户请求或数据进行响应
  • 访问数据或数据库,并向浏览器返回结果
  • 为不同的用户定制页面
  • 提高网页安全性,使您的网页代码不会通过浏览器被查看到
    动态语言是对服务器行为的编程,这被称为服务端脚本或服务器脚本。

常见服务器脚本:

Asp,Aspx(Windows)
PHP(全平台)
JSP(全平台)
python(全平台)

常见服务器环境快速搭建软件:

 JSP(Tomcat)
 PHP(PHPStudy)windows
 PHP(lnmp)Linux
用户名金币积分时间理由
admin 10.00 0 2020-06-05 09:09:29 支持!形成学习记录的好习惯~

打赏我,让我更有动力~

1 条回复   |  直到 2020-7-12 | 1345 次浏览

九期3班山海
发表于 2020-7-12

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.