WEB简介

web俗称web安全,当大家打开浏览器那一刻。就开始和web打交道了,web安全是网络中最经典的应用之一。

WEB常见术语

web前端

Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/Flash等各种Web技术进行客户端产品的开发。完成客户端程序(也就是浏览器端)的开发,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web开发,致力于通过技术改善用户体验。

web后端

后端开发(Back-End Development,也称服务端开发、服务器端开发等)是创建完整可运行的Web应用服务端程序(服务端程序和资源合称为后端,即在服务器上运行的、不涉及用户界面的部分)的过程,是Web应用程序开发的一部分。后端开发者使用Java、Golang等语言及其衍生的各种框架、库和解决方案来实现Web应用程序的核心业务逻辑,并向外提供特定的API,使得Web应用能够高效、安全、稳定地运行。

URL

URL(Uniform Resource Locator),统一资源定位符,用于定位互联网上资源,俗称网址。比如 http://www.w3school.com.cn/ht…,遵守以下的语法规则:

scheme://host.domain:port/path/filename
  • scheme - 定义因特网服务的类型。常见的协议有 http、https、ftp、file,其中最常见的类型是 http,而 https 则是进行加密的网络传输。
  • host - 定义域主机(http的默认主机是WWW)
  • domain - 定义因特网域名(com.cn)
  • port - 定义主机上的端口号(HTTP的默认端口号是80)
  • path - 定义服务器上的路径
  • filename - 定义文档 / 资源的名称

java ctf 加固 ctf javaweb_前端


参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

IP地址

  • 互联网上的所有数据都是存储在主机(服务器)上
  • 互联网中的所有主机都拥有唯一的IP地址
  • 互联网中任意两台主机通信都是通过IP地址来实现

IP 地址是指互联网协议地址,是 IP Address 的缩写。IP 地址是 IP 协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP 地址是一个 32 位的二进制数,比如 127.0.0.1 为本机 IP。

端口

跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口.
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16) 个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。
在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择,把数据包顺利的传送到目的主机。大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进来。
http:默认端口号80 ; https:默认端口号443 ; ftp:默认端口号2。

域名

ip是房子的门牌地址,域名是房子的主人名字。房子可以换主人,但是不能换地址。ip地址是Internet网中主机地址的一种数字标识,IP就使用这个地址在主机之间传递信息,而域名是互联网中用于解决地址对应问题的一种方法。域名像名字一样简单好记,可以广泛传播。

  • com是顶级域名
  • baidu.com是二级域名(俗称一级域名)
  • www.baidu.com是三级域名(俗称二级域名)

域名类型:

  • .com 用于商业公司
  • .org 用于组织、协会等
  • net 用于网络服务
  • .edu 用于教育机构
  • .gov. 用于政府部
  • .mil 用于军事领域

DNS

DNS (Domain Name Server ) 译为:域名解析服务
在浏览器输入网址后,首先要经过域名解析,DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。DNS 是一个网络服务器,我们的域名解析简单来说就是在 DNS 上记录一条信息记录。

浏览器

浏览器是用来检索、展示以及传递Web信息资源的应用程序。Web信息资源由统一资源标识符( URI)所标记,它是一张网页、一张图片、一段视频或者任何在Web上所呈现的内容。

浏览器如何通过域名去查询 URL 对应的 IP?

浏览器通过向 DNS 服务器发送域名,DNS 服务器查询到与域名相对应的 IP 地址,然后返回给浏览器,浏览器再将 IP 地址打在协议上,同时请求参数也会在协议搭载,然后一并发送给对应的服务器。

java ctf 加固 ctf javaweb_IP_02

TCP 三次握手

在客户端发送数据之前会发起 TCP 三次握手用以同步客户端和服务端的序列号和确认号,并交换 TCP 窗口大小信息。

HTTP

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。

TCP 三次握手结束后,开始发送 HTTP 请求报文。

java ctf 加固 ctf javaweb_IP_03


1 .请求行包含请求方法、URL、协议版本

  • 请求方法包含 8 种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。
  • URL 即请求地址,由 <协议>://<主机>:<端口>/<路径>?<参数> 组成
  • 协议版本即 http 版本号

2 .请求头包含请求的附加信息,由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。

服务器

服务器是网络环境中的高性能计算机,它侦听网络上的其他计算机(客户机)提交的服务请求,并提供相应的服务,比如网页服务、文件下载服务、邮件服务、视频服务。而客户端主要的功能是浏览网页、看视频、听音乐等等,两者截然不同。 每台服务器上都会安装处理请求的应用——web server。常见的 web server 产品有 apache、nginx、IIS 或 Lighttpd 等。 web server 担任管控的角色,对于不同用户发送的请求,会结合配置文件,把不同请求委托给服务器上处理相应请求的程序进行处理(例如 CGI 脚本,JSP 脚本,servlets,ASP 脚本,服务器端 JavaScript,或者一些其它的服务器端技术等),然后返回后台程序处理产生的结果作为响应。

java ctf 加固 ctf javaweb_java ctf 加固_04

shell

真正能够控制计算机硬件(CPU、内存、显示器等)的只有操作系统内核(Kernel),图形界面和命令行只是架设在用户和内核之间的一座桥梁。
由于安全、复杂、繁琐等原因,用户不能直接接触内核(也没有必要),需要另外再开发一个程序,让用户直接使用这个程序;该程序的作用就是接收用户的操作(点击图标、输入命令),并进行简单的处理,然后再传递给内核。如此一来,用户和内核之间就多了一层“代理”,这层“代理”既简化了用户的操作,也保护了内核。
用户界面和命令行就是这个另外开发的程序,就是这层“代理”。在Linux下,这个命令行程序叫做 Shell。