基础

网站搭建前置知识

域名,子域名,DNS

概念

域名:形如www.xiaodi8.com,www是二级域名,xiaodi8.com是一级域名。
域名解析限制:国内域名必须备案,大陆外服务器不用备案也能访问,按量付费解决访问的月费过贵问题。
访问限制:服务器的安全组配置

域名注册

国内域名注册商:阿里云万网。

域名对安全的意义

  1. 增加渗透人员对网站的攻击面,提高了攻击的成功率
  2. 增加暴力猜测难度

本地hosts文件-DNS

DNS是将域名解析为 IP 地址的分布式数据库系统。

Windows本地host文件存放地址:“C:\Windows\System32\drivers\etc\hosts”

# 打开文件后显示如下映射关系
127.0.0.1 127.0.0.11
127.0.0.1 www.banding.com
# 格式:
# IP地址 域名
# 将IP地址 映射为某个域名
# CMD清除DNS缓存:ipconfig /flushdns

# Linux由于发行版较多的原因,清除修改hosts文件的形式较多,暂不赘述

域名解析

通过主机名称获取IP地址的过程

DNS

浏览器搜索域名的过程

DNS

递归服务器获取记录存入本地

递归服务器:指能够向其他 DNS 服务器发出查询请求,并返回查询结果的服务器。
          它通常用于响应用户设备或其他服务器发出的 DNS 查询请求,以帮助解析域名并将其转换为相应的 IP 地址。

递归服务器拿到解析DNS资源解析记录并存入本地,下次需要时直接取出记录。

DNS资源记录类型如下

A记录:       将域名指向一个IPv4地址(例如:100.100.100.100),需要增加A记录
Address,IPV4

CNAME记录: 如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。这个域名一般是主机服务商提供的一个域名
Canonical Name规范名

MX记录: 建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录
Mail Exchange邮件交换

NS记录: 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录
Name Server 域名服务器

TXT记录: 可任意填写,可为空。一般做一些验证记录时会使用此项,如:做SPF(反垃圾邮件)记录
Text

AAAA记录: 将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录
Address 地址 IPV6

SRV记录: 添加服务记录服务器服务记录时会添加此项,SRV记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)。
Service

SOA记录: SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中那一台是主服务器
Start of Authority起始授权机构

PTR记录: PTR记录是A记录的逆向记录,又称做IP反查记录或指针记录,负责将IP反向解析为域名
Point 指针

显性URL转发记录: 将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址。例如:将www.liuht.cn显性转发到www.itbilu.com后,访问www.liuht.cn时,地址栏显示的地址为:www.itbilu.com。

隐性UR转发记录L: 将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址,隐性转发会隐藏真实的目标地址。例如:将www.liuht.cn显性转发到www.itbilu.com后,访问www.liuht.cn时,地址栏显示的地址仍然是:www.liuht.cn。

DNS正向与反向解析

正向解析 (常用):向下解析,将 域名解析为 IP 地址 的过程。这是 DNS 最常用的解析方式。通过向 DNS 服务器发出正向查询请求,可以获取该域名所对应的 IP 地址。

反向解析 :向上解析,是将 IP 地址解析为域名 的过程。这种解析方式通常用于安全或反垃圾邮件目的。通过向 DNS 服务器发出反向查询请求,可以获取该 IP 地址所对应的域名。

本地host文件与DNS的关系

  1. 本地 host 文件和 DNS 服务器都可以将域名解析为 IP 地址,但它们的作用范围不同。
  2. 本地host文件地址:C:\Windows\System32\drivers\etc
  3. host文件可以重定向域名解析的IP地址 (安全风险)
  4. ping:优先查看并且使用本地host文件当中对应域名映射的IP地址,而不是向DNS服务器发起查询获取IP地址。 (安全风险)
  5. 应用:
    1. 网站钓鱼攻击:伪造虚假网站,获取登录的各种凭证。 –> 可以通过修改本地host文件来定向到恶意网站。
    2. 游戏加速:修改IP地址实现最近的高速节点下载。

本地 host 文件只对本地计算机有效,而 DNS 解析是在互联网上进行的,可以为全球范围内的用户提供域名解析服务。
在某些情况下,用户可能需要将某些域名映射到本地的 IP 地址上,以便于 测试或访问内部网络资源 ,这时候可以通过编辑本地 host 文件来实现。

HTTP/HTTPS,证书等

HTTP不安全,HTTPS相对安全。

CDN

CDN(Content Delivery Network)是一种分布式网络架构,可以将静态资源(如图片、视频、音频等)缓存在离用户最近的节点,以提高资源的访问速度和稳定性。

简单来说,就是存点东西在离你近的服务器,方便你访问。但它携带的是主机的缓存,而不携带主机的IP地址。

CDN主要看地区,与DNS的切换无关。

WEB应用环境架构类

理解不同WEB应用组成角色功能架构:

开发语言,程序源码,中间件容器,数据库类型,服务器操作系统,第三方软件等
开发语言:asp,php,aspx,jsp,java,python,ruby,go,html,javascript等
程序源码:根据开发语言分类;应用类型分类;开源CMS分类(CMS:内容管理系统);开发框架(功能写好,直接调用即可)分类等 (漏洞源)
中间件容器:IIS,Apache,Nginx,Tomcat,Weblogic,Jboos,glasshfish等 -支撑网站运行,各有各的好处
数据库类型:Access,Mysql,Mssql,Oracle,db2,Sybase,Redis,MongoDB等 - 网站用户数据存放等,比如存储VIP用户信息
服务器操作系统:Windows系列,Linux系列,Mac系列等
第三方软件:phpmyadmin,vs-ftpd,VNC,ELK,Openssh等

WEB应用安全漏洞分类

漏洞源

漏洞源头在源码上:

SQL注入,文件安全,RCE执行,XSS跨站,CSRF/SSRF/CRLF,反序列化,逻辑越权,未授权访问,XXE/XML,弱口令安全等
明白漏洞产生的基本层面

本地host文件安全漏洞

本质:修改本地host文件解析记录

DNS欺骗:攻击者可以在本地host文件中添加假的域名解析记录,使用户访问一个假的网站,而不是正确的网站。

会话劫持:攻击者可以在本地host文件中添加假的域名解析记录,将用户重定向到一个假的登录页面,以窃取用户的登录凭证。

恶意软件攻击:恶意软件可以修改本地host文件中的域名解析记录,将用户重定向到恶意网站,从而感染用户的计算机。

安全性破坏:攻击者可以修改本地host文件中的域名解析记录,以避开某些网络安全设备或软件的检测。

常见的DNS攻击

DNS欺骗攻击:攻击者通过修改DNS服务器中的资源记录,将目标网站的域名解析到攻击者控制的恶意网站上,从而欺骗用户输入敏感信息。
(其中一种:改你host)
DNS缓存污染攻击:攻击者通过向DNS缓存服务器发送虚假的DNS解析请求,使得DNS缓存服务器将虚假的DNS解析结果缓存下来,进而影响到所有向该DNS缓存服务器发起的DNS解析请求。

DNS服务器劫持攻击:攻击者通过攻击ISP的DNS服务器或企业内部DNS服务器等,篡改DNS解析结果,将用户重定向到攻击者的恶意网站上。

欺骗性WiFi接入点攻击:攻击者通过伪造WiFi接入点,诱使用户连接并获取虚假的DNS解析结果,从而被重定向到攻击者的恶意网站上。

DNS投毒攻击:攻击者通过发送大量虚假的DNS解析请求,向DNS服务器投毒,使得DNS服务器不能正常响应DNS解析请求,或者响应虚假的DNS解析结果。将虚假的DNS响应伪装成合法的响应,从而将用户导向恶意网站。

DNS重定向攻击:攻击者通过篡改DNS响应,将用户的请求重定向到攻击者控制的服务器上,从而窃取用户的敏感信息或者对目标网站进行DDoS攻击。

DNS隧道攻击:攻击者通过DNS协议传输非法数据,绕过网络安全设备进行远程控制或者信息窃取等活动。

DNS拒绝服务攻击:攻击者通过大量的DNS请求,使目标DNS服务器无法正常工作,导致目标网站无法正常解析域名或提供服务。

WEB请求返回过程数据包参考:

数据包

概念 :

网页会发送和接收请求,这个请求的载体就是数据包。

参考资料-数据包结构/web请求 :

Web请求
数据包相关文章

大致结构

请求数据包,请求方法,请求体,响应包,响应头,状态码,代理服务器等
Request,Response,User-Agent,Cookie,Server,Content-Length等

UA头是身份信息,代表是PC端还是安卓端。
数据包漏洞点:网站页面,抓住数据包某些情况下能突破限制,如:XFF请求头伪造,XSS跨站脚本攻击等。

和请求数据包相关的可以看通分类下的:SEC-Study-0000-http/https

常见注入参数

User-Agent:使得服务器能够识别客户使用的操作系统,浏览器版本等.(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中)
Cookie:网站为了辨别用户身份进行session跟踪,并储存在用户本地终端上的数据(通常经过加密)
X-Forwarded-For:简称XFF头,代表了HTTP的请求端真实的IP。它被认为是客户端通过HTTP代理或者负载均衡器连接到web服务端获取源ip地址的一个标准(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库或某文件[通过修改XXF头可以实现伪造IP])。
Rerferer:浏览器向 WEB 服务器表明自己的页面来源。
Host:客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号。

网站目录扫描

状态码-返回包

网站目录扫描的前提,需要涉及状态码

状态码请本地搜索 “SEC-Study-0000-http/https”文章进行查看。

代理-本地代理与远程代理

  • 本地代理:

    • 开启BP后截取数据包,浏览器必须安装证书,手机模拟器也需要安装代理(两者必须在同一个局域网)。
    • BP可以实现很多功能,实际可以实现BP爆破等。
  • 远程代理的作用

    • 远程代理的站点:快代理
    • 地址白名单:白名单地址不用验证账号和密码就可以使用该代理 - 绑定你的公网IP
    • 查真实ip的网站ip138.com:查自己的网络出口IP地址
    • 远程代理的作用:避免自己的IP被封禁。 - 跳板

建站

阿里云购买计时服务器(记得释放,用香港的) - 阿里云购买域名 - 宝塔一键搭建网站 - 配置域名解析