基础入门-概念名词
基础入门-概念名词
域名
什么是域名?
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
比如www.baidu.com,这就是一个域名,简单来说就是ip不好记,所以有了域名来方便记忆。可以联想到地址和经纬度的关系(上海 :经度 121.48 纬度 31.22)
域名在哪里注册?
找个域名注册商的网站(比如阿里、万网),搜索想要的域名(由于国内并非所有域名都支持备案,目前提供主流可备案域名有:
.com, .cn, .com.cn, .net, .top, .wang, .vip, .company, .org.cn,.ac.cn, .site, .online, .ren .store, .tech, .xyz, .club, .link, .pro, .red, .info, .biz, .ltd, .gov.cn, .mobi, .city 等。)
注册流程
填写域名资料。若你是以公司名义注册域名,则需要填写企业资料、联系人信息;若你是以个人名义注册,请切换到个人栏,填写个人信息。域名英文信息将会根据你填写的中文自动翻译,请核对是否有误,若有误请及时进行修改。
确认域名账单。确认域名注册人信息、账单无误后,使用支付宝或微信扫码支付即可完成注册。
域名实名验证。因国内法律法规要求,域名注册后需要进行实名认证,通过认证后即可正式生效。若审核有误,请及时进行修改,再次提交审核。
域名备案及绑定网站。如果你需要在国内上线,则需要进行网站备案。
什么是二级域名多级域名?
如baidu.com是由前面的字符串“baidu”和后面的域名后缀“.com”组成的,这就是我们常说的顶级域名,也称为一顶域名。
国际顶级域名的子域名叫做二级域名。
如A.com是一级域名,A.B.com则是二级域名。一级域名较二级域名级别更高,而二级域名则是依附于一级域名下的附属分区域名,即二级域名是一级域名的细分层级。
通常情况下可通过网址上【.】数量来判断域名层级,有多少【.】就为几级域名,如A.com是一级域名,A.B.com则是二级域名。
如:baidu.com 是百度的顶级域名,zhidao.baidu.com 是二级域名,zhidao.zhidao.baidu.com 是三(多)级域名,*.baidu.com 是泛域名。
需要注意的是:
(1)、“.”的个数并不能完全代表域名的等级,因为有些域名后缀是比较特殊的。如.com.cn,.com.hk,.cn.com等,看起来像是一级域名了,其实他们都只是一个域名后缀而已。所以在判断域名的等级的时候,首先要对一些特殊的域名后缀有深入的了解。
(2)、不管是三级域名还是四级,五级……域名都是往顶级域名的左边推演,而不是右边。
(3)、形如baidu.com/cn 是往一级域名的右边拓展,以目录的形式而且用“/”代替“.”的域名不能成为“某某”级域名,如果严谨的话,甚至不能把他们叫做域名,应该叫做网址。“/”下面“cn”一般称为“二级目录”。
三级域名一般是大型综合网站自建网站使用的比较多,因为大型综合网站的业务比较多,又不想使用其他的顶级域名。现在也有一些免费三级域名申请,一般是不建议个人申请这种三级域名使用的,因为这种域名都只有使用权而没有所有权,所有权是掌握在顶级域名所有者手上的,使用别人的域名对自身后期发展还是有很大限制的。
域名发现对于安全测试意义?
进行渗透测试时,其主域名找不到漏洞时,就可以尝试去测试收集到的子域名,有可能测试子域名网站时会有意向不到的效果,然后可以由此横向到主网站。
DNS
什么是DNS?
有关DNS,我想到的就是那个面试经常会被问到的“输入url地址到页面显示发生了啥”,在这个过程中,我们首先会判断如果这个url是个域名,那么就需要进行域名解析。
所以为什么要进行域名解析呢?
在互联网上,通信是基于TCP/IP协议来进行的
其中的IP协议被称为网际协议,如果TCP|UDP定义了数据传输的方式,那么通过IP协议,我们就可以知道数据传输的地点。不过日常我们也是可以通过域名
去访问对应的地址,而事实上只有IP地址才可以寻找到对应服务器,因此当你使用域名去访问,首先经历的是一个域名解析
的过程,将域名转换成对应的IP地址,再去寻址。
DNS 就是一个域名系统,提供的服务是将域名转换成ip地址的工作,你可以把它当做一名翻译官。
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
DNS 从属于应用层协议(包括http smtp ftp)
DNS 域名解析流程
- 用户主机上运行这DNS的客户端(就是我们的pc机,或者手机客户端)
- 浏览器将接收到的url中抽取出域名字段,就是访问的主机名,并将这个主机名传送给DNS应用的客户端
http://www.baidu.com/
比如像这么一个地址 - DNS客户端向DNS服务器发送一份查询报文(包含要访问的主机名字段)
- 该DNS客户机最终得到一份回答报文,其中包含该主机名对应的ip地址
- 浏览器收到来自DNS的ip地址,向该ip地址定位的http服务器发起TCP连接
DNS 服务体系
在上面的DNS转换过程中我们可以看到,域名经过在DNS服务器上找到相对应的ip返回就可以了,但是,这个找到域名的过程其实里面要复杂的多,下面一起来看看吧:
下面会涉及到一个需要注意的点:用户主机的DNS客户端接收到后,向网络中发送一个DNS查询报文。所有DNS请求和回答报文使用的UDP数据报经过端口53发送
。
- 一次UDP名字服务器交换可以短到两个包:
一个查询包、一个响应包。
- 一次TCP交换则至少包含9个包:
三次握手初始化TCP会话、一个查询包、一个响应包以及四次分手的包交换。
考虑到效率原因,TCP连接的开销大,故采用UDP作为DNS的运输层协议,这也将导致只有13个根域名服务器的结果。
-
当我们在浏览器中输入
http://www.baidu.com/
的时候,操作系统先检查本地hosts文件是否有对应的ip映射,如果有直接调用 -
如果没有,查找本地DNS解析缓存,如果有直接调用
-
如果没有,(在TCP/IP中有设置一个首选DNS服务器,也就是本地DNS服务器),如果该服务器上有,映射,返回ip
-
如果本地DNS服务器本地区域文件与缓存解析都失效,根据本地DNS服务器的设置(是否设置转发)进行查询
以上整个过程就是递归查询
5.无转发:
- 本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP
- 本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址 给本地DNS服务器。
- 当本地DNS服务器收到这个地址后,就会找域服务器,重复上面的动作,进行查询,直至找到www . baidu.com主机。
6.有转发:
- 此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,
- 上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。
- 不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
以上整个过程就是迭代查询
提示:无论是本地DNS服务器用的是转发还是根DNS服务器提示,最后都是要把结果返回给本地DNS服务器的
客户端到本地DNS服务器就是递归查询,而DNS服务器之间的交互查询是迭代查询
本地hosts与DNS的关系?
hosts
hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
hosts与 DNS 的共同点
hosts与DNS的共同点: 都是做域名解析的,解决IP地址与域名的对应关系问题。 在早期的时候,计算机数量还不是很多,通过修改本地hosts文件就能解决域名解析的工作。后来随着互联网的发展,计算机的数量越来越多,在每一个计算机上都维护、更新hosts文件的工作量也越来越大。DNS的出现就是解决了hosts文件无法满足海量计算机与域名的对应关系问题,将域名解析工作转移到了DNS服务器上,在本地计算机上只需要配置DNS服务器的IP地址即可。
hosts与DNS的区别
DNS也是用来解析IP地址的,只不过hosts文件用户可以自由修改,但DNS上的内容用户是无法修改的,只可以选择使用哪个DNS服务。一般默认使用电信服务商,但也可以选择第三方服务,如Google,阿里,百度等。
hosts的特点、优缺点以及适用场景
特点:在对域名解析的时候, 计算机会
优先
查看本地的hosts文件(C:\Windows\System32\drivers\etc\hosts)中是否存在相应的域名解析记录。如果存在则返回域名对应的IP地址,如果不存在则在通过DNS来查到该域名对应的IP地址。
优点:
速度快
(由于是本地的,不通过网络,查询速度较快)属于
主动
解析 (它能将域名强制的指向我们期望它解析到的那个IP地址)
缺点:
维护
比较麻烦(当域名解析记录更新或者有新的域名解析记录的时候, 需要我们更新所有计算机的hosts文件)
存在安全问题
(如中电脑病毒情况下,可能会恶意修改hosts文件)
应用场景:
适用于小型公司局域网或本地的域名解析工作。
当DNS服务器解析出错的时候,可以通过临时修改hosts文件来解决域名解析问题。
通过修改hosts文件,添加相应的记录,可以达到屏蔽广告的效果。
早期的时候可以通过修改hosts文件,上google网站。现在该方法应该是无效的了。
DNS服务的特点、优缺点以及适用场景
特点: 管理海量域名解析工作,为广大互联网用户提供服务。
优点:
维护工作量降低(原先是维护每台计算机的hosts文件,现在只需要维护DNS服务器即可)
提供统一的服务,相对较安全(通过DNS服务器解析到的IP地址,一般都是我们期望的)
缺点:
解析速度慢(尽管DNS有缓存机制,但相对hosts文件而已,速度还是慢了一点)
存在一定风险(在内网环境,如果主、从DNS服务器都挂了且没有备机的情况,将无法完成域名的解析工作)
应用场景:
适用于大型互联网或中大型公司局域网DNS的解析工作。
可以用作反垃圾邮件以及安全防护等
CDN是什么?
CDN的全称是Content Delivery Network,即内容分发网络。
简单理解成一个离用户很近的,可以从上面获取到完整的原始数据的服务器,它会定期和拥有原始内容的服务器进行同步,保证用户可以从上面获取到最新的内容。
CDN的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上(单纯只使用DNS解析,直接PING就会显示出自己的真实IP,如果又使用CDN,PING出来的IP就不是用户的真实IP而是CDN服务器的IP节点。需要绕过CDN后去找真实IP地址:拓展:判断是否存在CDN并绕过,寻找真实IP)。
CDN可以大幅度的体改下载速度,提高带宽,加速了网站的访问——用户与内容之间的物理距离缩短,用户的等待时间也得以缩短。
CDN 具体流程?
当部署了CDN的网络,我们使用url进行访问的时候,回和之前说的DNS域名解析过程有那么一些不一样,具体来看个例子:
比如我们现在要去腾讯视频点播一集电视剧:
-
当我们点击这个app上的内容,app也会根据这个url地址去本地的DNS域名解析系统寻求IP地址解析
-
本地DNS系统会将域名解析的权利给我们CDN专用的DNS服务器
-
CDN专用DNS服务器,
将CDN的全局负载均衡设备IP地址
返回用户 -
用户根据ip地址向CDN的负载均衡设备发起内容URL访问请求
-
CDN负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的缓存服务器。
-
负载均衡设备告诉用户这台缓存服务器的IP地址,让用户向所选择的缓存服务器发起请求
-
用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端
-
如果这台缓存服务器上并没有用户想要的内容,那么这台缓存服务器就要网站的源服务器请求内容。
-
源服务器返回内容给缓存服务器,缓存服务器发给用户,并根据用户自定义的缓存策略,判断要不要把内容缓存到缓存服务器上。
CDN与DNS的关系?
刚才说到cdn实际上是一个就近访问,那么现在有一个问题是,我们怎么知道用户的所在位置从而给他分配最佳的cdn节点呢。这就需要dns服务来进行定位了。当我们通过使用dns服务的时候,可以根据他使用的LDNS服务器来进行一个定位,例如我们的调度服务器看到他是来自深圳电信的LDNS服务器,那么我们就认为该用户来自深圳电信,然后调度服务器可以让该用户去访问深圳电信的CDN服务器,这样就让用户访问到了最优的cdn节点。
通过dns服务我们可以很快的定位到用户的位置,然后给用户分配最佳cdn节点,但是这种调度方式存在一个问题,例如,当我 是北京联通的用户但是使用的却是深圳电信的ldns的话,调度服务器会给我分配到深圳电信的cdn服务器,这样就产生了错误的调度。
常见的DNS安全攻击有哪些?
缓存投毒
通常也称为域名系统投毒或DNS缓存投毒。它是利用虚假Internet地址替换掉域名系统表中的地址,进而制造破坏。当网络用户在带有该虚假地址的页面中进行搜寻,以访问某链接时,网页浏览器由于受到该虚假条目的影响而打开了不同的网页链接。在这种情况下,蠕虫、木马、浏览器劫持等恶意软件就可能会被下载到本地用户的电脑上。
DNS劫持
DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。这类攻击一般通过恶意软件来更改终端用户TCP/IP设置,将用户指向恶意DNS服务器,该DNS服务器会对域名进行解析,并最终指向钓鱼网站等被攻击者操控的服务器。
域名劫持
域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者什么也不做使得请求失去响应,其效果就是对特定的网址不能访问或访问的是假网址。一旦您的域名被劫持,用户被引到假冒的网站进而无法正常浏览网页,用户可能被诱骗到冒牌网站进行登录等操作导致泄露隐私数据。
DNS DDoS攻击
针对DNS的DDoS攻击通过控制大批僵尸网络利用真实DNS协议栈发起大量域名查询请求,利用工具软件伪造源IP发送海量DNS查询,发送海量DNS查询报文导致网络带宽耗尽而无法传送正常DNS查询请求。发送大量非法域名查询报文引起DNS服务器持续进行迭代查询,从而达到较少的攻击流量消耗大量服务器资源的目的。
反射式DNS放大攻击
所有放大攻击都利用了攻击者和目标Web资源之间的带宽消耗差异,由于每个机器人都要求使用欺骗性IP地址打开DNS解析器,该IP地址已更改为目标受害者的真实源IP地址,然后目标会从DNS解析器接收响应。为了创建大量流量,攻击者以尽可能从DNS解析器生成响应的方式构造请求。结果,目标接收到攻击者初始流量的放大,并且他们的网络被虚假流量阻塞,导致拒绝服务。
脚本语言
常见的脚本语言类型有哪些?
脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言
常见的脚本语言类型:Python、JavaScript、Asp (逐渐淘汰,基本都是小站点在使用)、Aspx、php (目前比较流行)javaweb、 pl、cgi等
不同脚本类型与安全漏洞的关系?
不同的脚本语言的编写规则不一样,程序产生的漏洞自然也不一样(代码审计)。
漏洞挖掘代码审计与脚本类型的关系?
更严谨的语言,安全性相对更高
后门
什么是后门?
后门是指一种绕过安全性控制而获取对程序或系统访问权的方法。在软件的开发阶段,程序员常会在软件内创建后门以便可以修改程序中的缺陷。如果后门被其他人知道,或者在发布软件之前没有删除,那么它就成了安全隐患。
有哪些后门?
网页后门
此类后门程序一般都是服务器上正常 的web服务来构造自己的连接方式,比如非常流行的ASP、cgi脚本后门等。
线程插入后门
这种后门在运行时没有进程,所有网络操作均播入到其他应用程序的进程中完成。也就是说,即使受控制端安装的防火墙拥有“应用程序访问权限”的功能,也不能对这样的后门进行有效的警告和拦截,也就使对方的防火墙形同虚设了!因为对它的查杀比较困难,这种后门本身的功能比较强大,是“居中家旅行、入侵攻击”的必备品哦!
扩展后门
所谓的扩展后门,在普通意义上理解,可以看成是将非常多的功能集成到了后门里,让后门本身就可以实现很多功能,方便直接控制肉鸡或者服务器,这类的后门非常受初学者的喜爱,通常集成了文件上传/下载、系统用户检测、HTTP访问、终端安装、端口开放、启动/停止服务等功能,本身就是个小的工具包,功能强大。
C/S后门
传统的木马程序常常使用C/S构架,这样的构架很方便控制,也在一定程度上避免了“万能密码”的情况出现,对后门私有化有一定的贡献,这方面分类比较模糊,很多后门可以归结到此类中,比如较巧妙的就是ICMP Door了
账号后门
账号后门技术是指黑客为了长期控制目标计算机,通过后门在目标计算机中建立一个备用管理员账户的技术。一般采用克隆账户技术。克隆账户一般有两种方式,一个是手动克隆账户,一个是使用克隆工具。
后门在安全测试中的实际意义?
在获取到相关权限的时候,后门就相当于一个管道,提供一个通道去连接网站或者服务器,使得攻击者可以控制整个网站或者服务器去达到自己的目标
关于后门需要了解那些?(玩法,免杀)
• 玩法(创建后门之后我们可以怎么样操作?):
网站后门:便于控制网站
软件后门:用于控制
服务器后门:可以进行脱库、盗取信息
• 免杀:防止相关东西检测到后门
免杀技术全称为反杀毒技术Anti Anti- Virus简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等黑客技术,所以难度很高,一般人不会或没能力接触这技术的深层内容。其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。
• 技术分类
1、开源免杀:指在有病毒、木马源代码的前提下,通过修改源代码进行免杀。
2、手工免杀:指在仅有病毒、木马的可执行文件(.exe)(PE文件)的情况下进行免杀。
WEB
WEB的组成架构模型?
网站源码:分脚本类型,分应用方向
操作系统:Windows linux
中间件(搭建平台):apache iis tomcat nginx等
数据库:access mysql mssql oracle sybase db2 psotsql等。存储了大量与网站相关的数据以及管理员数据
架构漏洞安全测试简要介绍?
安全测试分为四个层面,包括通信层、应用服务层、系统层、管理层的测试
为什么要从WEB层面为主为首?
用户接触web层面最多,大部分都是从web页面入手慢慢渗透到服务器。直接从操作系统入手不太现实(大部分情况下接触不到)。
WEB相关安全漏洞
WEB源码类对应漏洞
git源码泄露
svn源码泄露
hg源码泄漏
CVS泄露
Bazaar/bzr泄露
网站备份压缩文件
WEB-INF/web.xml
泄露DS_Store 文件泄露
SWP 文件泄露
GitHub源码泄漏
WEB中间件对应漏洞
IIS中间组件--1、PUT漏洞2、短文件名猜解3、远程代码执行4、解析漏洞
Apache中间组件--1、解析漏洞2、目录遍历
Nginx中间组件--1、文件解析2、目录遍历3、CRLF注入4、目录穿越
Tomcat中间组件--1、远程代码执行2、war后门文件部署
jBoss中间组件--1、反序列化漏洞2、war后门文件部署
WebLogic中间组件--1、反序列化漏洞2、SSRF3、任意文件上传4、war后门文件部署
其它中间件相关漏洞--1、FastCGI未授权访问、任意命令执行2、PHPCGI远程代码执行
WEB数据库对应漏洞
弱口令、SQL注入等
WEB系统层对应漏洞
提权、代码执行漏洞等。
其他第三方对应漏洞
被利用的第三方ActiveX插件漏洞,涉及迅雷、暴风影音、百度超级搜霸、realplayer等多款常见软件的部分版本中,而且其中多数漏洞曾经是或者现在仍是0day漏洞。它是相对于系统漏洞后一些插件的漏洞来说的,所以叫第三方漏洞。
APP或pc应用结合类
有些APP内核就是网站