CTF入门学习2->Web基础了解
Web安全基础
00 Web介绍
00-00
Web本意是网,这里多指万维网(World Wide Web),是由许多互相连接的超文本系统组成的,通过互联网访问。
Web是非常广泛的互联网应用,每天都有数以亿万计的Web资源传输。
我们平时通过浏览器上网都属于Web。
PS:万维网和互联网、因特网又有什么联系呢?
00-01 Web发展史
Web1.0
初期;
典型示例:
门户网站
个人页面
安全问题:
SQL注入
上传漏洞
文件包含
挂马、暗链
命令执行
(主要危害Web服务器)
一般就是提供静态的页面给用户,而且这种信息只能够阅读,不能够修改或添加。
Web2.0
如今;
典型示例:
微博
Blog
安全问题:
(更复杂,逐渐针对Web用户
钓鱼
URL跳转
数据劫持
框架漏洞
CSRF
XSS
逻辑漏洞
Web安全形势不容乐观,数量迅速增长,种类迅速增多,从针对Web服务器到Web用户,所以Web安全知识比较重要。
00-02 Web工作流程
以点餐类比

通常我们作为客户,只需要向服务员点餐、服务员上餐就可以了,而如果想要了解全过程,那Web的后续和餐厅订餐的后续也是很像的。
下面是Web提供服务的标准流程:

这里也分为客户端和服务端。
上面的安全问题也可以以此划分。

00-03 浏览器
工作原理
我们访问一个网站,输入的是一个URL(域名/网址),浏览器是无法通过我们输入的URL找到相应的Web服务器的,它只能通过IP地址才能找到Web服务器。
所以第一步,浏览器先通过URL获取Web服务器的IP地址(也称DNS解析);
第二步,才是通过解析得到的IP地址,访问Web服务器。
工作示例
我们打开浏览器,输入:https://www.cnblogs.com/Roboduster
浏览器收到这个URL,会先进行上面说到的DNS解析,通常情况下,浏览器会先向DNS服务器发送解析请求,请求查询这个URL的IP地址。
DNS服务器处理完成后,返回这个IP地址。
浏览器接收这个信息,并据此找到WEB服务器。
之后,需要根据HTTP协议进行通讯。
浏览器先发送一个HTTP请求,服务器处理完后,会返回一个HTTP响应给浏览器。
操作演示
我们打开https://www.cnblogs.com/Roboduster
按F12(自行找到开发者工具),选中网络这一格

然后我们,找到左侧的all(全部),点击,刷新该页面。

刷新后可以看到浏览器发送了很多请求。这些请求就是我们说的HTTP请求。
我们选中左侧的任何一个js文件,右侧标头(head)里可以看到请求的详细信息。响应里有这个js经过压缩的样子。预览可以看到好一点的代码风格。

同理可以查看CSS和img等各种文件格式。
最重要的是我们需要关注上方的文档(Doc),这是我们请求的主页面,我们可以在下面的计时(timing)查看请求的耗时

在标头里我们可以看到远程地址,这里就是所请求的IP对应的服务器的地址
在响应里可以看到我们请求得到的数据体
00-04 留一个问题
通过上面的操作我们可能会有疑问,我们查看的是HTTP响应,这里是相应的数据流,而我们平时上网看到的是各色各样的Web页面。
那么浏览器是如何将服务器返回的HTTP响应转换成我们看到的页面的呢?
这就涉及各种标准和技术:HTML、JS、CSS等;这些东西将响应渲染成特定的页面给用户。
CTF入门学习2->Web基础了解的更多相关文章
- CTF入门学习5-> 前端JavaScript基础
Web安全基础 JavaScript的实现包括以下3个部分: 1)核心语法:描述了JS的语法和基本对象. 2)文档对象模型 (DOM):处理网页内容的方法和接口 3)浏览器对象模型(BOM):与浏览器 ...
- CTF入门学习4->前端HTML基础
Web安全基础 02 前端开发-HTML基础 浏览器对于上网者来说是一种直观.可视化的呈现.服务器发送数据到客户端,客户端需要处理这些数据,互联网就造就了这种数据语言--HTML. 02-00 概述 ...
- CTF入门学习3->Web通信基础
Web安全基础 01 Web通信 这个部分重点介绍浏览器与Web服务器的详细通信过程. 01-00 URL协议 只要上网访问服务器,就离不开URL. URL是什么? URL就是我们在浏览器里输入的站点 ...
- servlet入门学习之Web容器
一.web服务器 web服务器(程序/软件) 即:www服务器或http服务器.提供Web信息浏览服务.它只需支持HTTP协议.HTML文档格式及URL.向浏览器提供服务的程序. 1.Web服务器是指 ...
- SQL入门学习1-查询基础
2-1 SELECT语句基础 SELECT语句作用 SELECT 语句用于从表中选取数据. 结果被存储在一个结果表中(称为结果集). 重点 使用SELECT语句从表中选取数据. 为列设定显示用的别名 ...
- 【转】Java学习---Java Web基础面试题整理
[原文]https://www.toutiao.com/i6592359948632457731/ 1.什么是Servlet? 可以从两个方面去看Servlet: a.API:有一个接口servlet ...
- Qt快速入门学习笔记(基础篇)
本文基于Qter开源社区论坛版主yafeilinux编写的<Qt快速入门系列教程目录>,网址:http://bbs.qter.org/forum.php?mod=viewthread&am ...
- Python 入门学习 -----变量及基础类型(元组,列表,字典,集合)
Python的变量和数据类型 1 .python的变量是不须要事先定义数据类型的.能够动态的改变 2. Python其中一切皆对象,变量也是一个对象,有自己的属性和方法 我们能够通过 来查看变量的类型 ...
- CTF入门指南(0基础)
ctf入门指南 如何入门?如何组队? capture the flag 夺旗比赛 类型: Web 密码学 pwn 程序的逻辑分析,漏洞利用windows.linux.小型机等 misc 杂项,隐写,数 ...
随机推荐
- JavaFx全局快捷键实现(Kotlin)
原文地址: JavaFx全局快捷键实现(Kotlin) | Stars-One的杂货小窝 最近整款工具需要用到全局快捷键,搜集了下网上的资料,发现有个JIntellitype库可以用来实现全局快捷键, ...
- HttpRunner3.X - 全面讲解如何落地项目实战
一.前言 接触httprunner框架有一段时间了,也一直探索如何更好的落地到项目上,本篇主要讲述如何应用到实际的项目中,达到提升测试效率的目的. 1.项目难题 这个月开始忙起来了,接了个大项目,苦不 ...
- web_security学习路线
一.了解黑客是如何工作的 1.在虚拟机配置Linux系统 2.漏洞测试工具 3.msf控制台 4.远程工具RATS 5.远程访问计算机 6.白帽 二.技术基础 漏斗扫描工具AWVS AWVS简介 安装 ...
- spark 解决错误java.io.InvalidClassException
今天遇到一个现场问题,任务报错java.io.InvalidClassException.在开发环境是没有报错的,正式环境报错.大概类似于下面这样(非报错原文,摘自网上同类博客) java.io.In ...
- Vulnhub实战-FALL靶机👻
Vulnhub实战-FULL靶机 下载地址:http://www.vulnhub.com/entry/digitalworldlocal-fall,726/ 1.描述 通过描述我们可以知道这个靶机枚举 ...
- 如何将jdk12的源码导入idea
如何将jdk12的源码导入idea中 一 首先,在idea中新建一个java工程 接着,在本地找到jdk所在的文件目录,进入jdk目录,找到javasrc目录或者一个src.zip的压缩包, 在向下或 ...
- 灵光一闪!帮你使用Vue,搞定无法解决的“动态挂载”
在一些特殊场景下,使用组件的时机无法确定,或者无法在Vue的template中确定要我们要使用的组件,这时就需要动态的挂载组件,或者使用运行时编译动态创建组件并挂载. 今天我们将带大家从实际项目出发, ...
- 极简实用的Asp.NetCore框架再新增商城模块
概述 关于这个框架的背景,在前面我已经交代过了.不清楚的可以查看这个链接 1.极简实用的Asp.NetCore模块化框架决定免费开源了 2.极简实用的Asp.NetCore模块化框架新增CMS模块 算 ...
- C语言编程基础有网盘资料哦
刚开始看STM32的库函数,会有很多疑惑,例如指针怎么用,结构体跟指针怎么配合,例如函数的参数有什么要求,如何实时更新IO口的数据等.如果重新进行C语言的学习,那么要学很久才能够系统地认识.本文则将比 ...
- 痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用
痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...