前言:好久没有更新了,主要看了我之前的文章,觉得有些滥竽充数,以后我尽量保证每篇文章的质量,所以更新周期可能慢一点
基础入门
壹.基础概念
域名
1.什么是域名
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。 比如www.baidu.com
,这就是一个域名,简单来说就是ip不好记,所以有了域名来方便记忆。可以联想到地址和经纬度的关系
2.怎么注册域名
一种是找专门的域名提供商进行注册,例如,阿里云等等。
一种方式就是个人通过专业的注册平台自行完成注册
3.顶级域名(一级域名),二级域名,子域名
3.1顶级域名(一级域名)
Top-level domains,first-level domains(TLDs),也翻译为国际顶级域名,也成一级域名。
.com 供商业机构使用,但无限制最常用
.net 原供网络服务供应商使用,现无限制
.org 原供不属于其他通用顶级域类别的组织使用,现无限制
.edu / .gov / .mil 供美国教育机构/美国政府机关/美国军事机构。因历史遗留问题一般只在美国专用
.aero 供航空运输业使用
.biz 供商业使用
.coop 供联合会(cooperatives)使用
.info 供信息性网站使用,但无限制
.museum 供博物馆使用
.name 供家庭及个人使用
.pro 供部分专业使用
.asia 供亚洲社区使用
.tel 供连接电话网络与因特网的服务使用
.post 供邮政服务使用
.mail 供邮件网站使用
3.2二级域名
二级域(或称二级域名;英语:Second-level domain;英文缩写:SLD)是互联网DNS等级之中,处于顶级域名之下的域。二级域名是域名的倒数第二个部分,例如在域名example.baidu.com中,二级域名是Baidu。
.com 顶级域名/一级域名,更准确的说叫顶级域
baidu.com 二级域名,更准确的说叫二级域
tieba.baidu.com 三级域名,更准确的说叫三级域
detail.tieba.baidu.com 四级域名,更准确的说叫四级域
3.3子域名
子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。
DNS
1.什么是dns
DNS是计算机域名系统(Domain Name System 或 Domain Name Service)的缩写,它是由解析器和域名服务器组成的,作用是把域名转换成为网络可以识别的ip地址
在计算机中有一个HOST文件,他里面就可以存放域名和对应的IP地址
2.cdn和dns
cdn全称是内容分发网络。其目的是让用户能够更快速的得到请求的数据。简单来讲,cdn就是用来加速的,他能让用户就近访问数据,这样就更更快的获取到需要的数据。举个例子,现在服务器在北京,深圳的用户想要获取服务器上的数据就需要跨越一个很远的距离,这显然就比北京的用户访问北京的服务器速度要慢。但是现在我们在深圳建立一个cdn服务器,上面缓存住一些数据,深圳用户访问时先访问这个cdn服务器,如果服务器上有用户请求的数据就可以直接返回,这样速度就大大的提升了。
cdn实际上是一个就近访问,那么现在有一个问题是,我们怎么知道用户的所在位置从而给他分配最佳的cdn节点呢。这就需要dns服务来进行定位了。当我们通过使用dns服务的时候,可以根据他使用的LDNS服务器来进行一个定位,例如我们的调度服务器看到他是来自深圳电信的LDNS服务器,那么我们就认为该用户来自深圳电信,然后调度服务器可以让该用户去访问深圳电信的CDN服务器,这样就让用户访问到了最优的cdn节点。通过dns服务我们可以很快的定位到用户的位置,然后给用户分配最佳cdn节点
3.常见的dns攻击
1.) 缓存投毒(DNS污染)
通常也称为域名系统投毒或DNS缓存投毒。它是利用虚假Internet地址替换掉域名系统表中的地址,进而制造破坏。当网络用户在带有该虚假地址的页面中进行搜寻,以访问某链接时,网页浏览器由于受到该虚假条目的影响而打开了不同的网页链接。在这种情况下,蠕虫、木马、浏览器劫持等恶意软件就可能会被下载到本地用户的电脑上
2.) DNS劫持
DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。这类攻击一般通过恶意软件来更改终端用户TCP/IP设置,将用户指向恶意DNS服务器,该DNS服务器会对域名进行解析,并最终指向钓鱼网站等被攻击者操控的服务器
3.) 域名劫持
域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者什么也不做使得请求失去响应,其效果就是对特定的网址不能访问或访问的是假网址。一旦您的域名被劫持,用户被引到假冒的网站进而无法正常浏览网页,用户可能被诱骗到冒牌网站进行登录等操作导致泄露隐私数据
4.) DNS DDOS攻击
针对DNS的DDoS攻击通过控制大批僵尸网络利用真实DNS协议栈发起大量域名查询请求,利用工具软件伪造源IP发送海量DNS查询,发送海量DNS查询报文导致网络带宽耗尽而无法传送正常DNS查询请求。发送大量非法域名查询报文引起DNS服务器持续进行迭代查询,从而达到较少的攻击流量消耗大量服务器资源的目的
5.) 反射式DNS放大攻击
DNS 反射放大攻击主要是利用 DNS 回复包比请求包大的特点,放大流量,伪造请求包的源 IP 地址为受害者 IP,将应答包的流量引入受害的服务器。
脚本语言
1.常见的脚本语言
脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。
Scala、JavaScript,VBScript,ActionScript,MAXScript,ASP,JSP,PHP,SQL,Perl,Shell,python,Ruby,JavaFX,Lua,AutoIt等
不同的脚本语言的编写规则不一样,程序产生的漏洞自然也不一样(代码审计)
后门
1.什么是后门?有哪些后门?
后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。类别:网页、线程插入、扩展、C/S后门
2.后门在安全测试中的实际意义?
例如后门藏在网页上、软件内,悄无声息的进行攻击者想要的操作
3.关于后门需要了解哪些?(玩法,免杀)
深知攻击型再反侦察,防止被相关软件识别到
web的组成架构模型
网站源码:分脚本类型,分应用方向
操作系统:Windows,Linux
中间件(搭建平台):apache,iis,nginx,tomcat等
数据库:access,MySQL,mssql,Oracle等
WEB相关安全漏洞
web源码对应漏洞SQL注入 文件上传 XSS 代码执行 变量覆盖 逻辑漏洞 反序列化等等
web中间件对应漏洞未授权访问
web数据库对应漏洞内核漏洞
web系统层对应漏洞提权漏洞,安全代码执行
其他第三方对应漏洞电脑第三方软件
APP或PC应用结合类移动端,PC端,网页端
贰.数据包拓展
1.http和https的区别(https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods)
• http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
• http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
• http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份 认证的网络协议,比http协议安全。
2.tcp/ip 体系
体系结构协议主要用途tcp/iptcp,udp,http…互联网
3.IP和端口
什么是ip?
ip地址是电子设备(计算机,路由器)在互联网上的唯一标识,相当于你的电子设备在互联网中的门牌号
内网IP和公网ip
内网IP:路由以内的网络,可以连接互联网,但是互联网不能直接连接内网(需要端口映射)
公网IP:互联网中的IP,可以直接和互联网资源互通,不需要端口映射
什么是端口?
端口是应用程序在计算机中的唯一标识
常用端口:
21/tcp FTP 文件传输协议
22/tcp SSH 安全登录,文件传输和端口重定向
23/tcp Telent 不安全的文本传输
25/tcp SMTP Simple Mail Transfer Protocol (E-mail)
80/tcp HTTP 超文本传送协议 (WWW)
443/tcp HTTPS 能提供加密和通过安全端口传输的另一种HTTP
4.网站访问的实现
CS架构和BS架构的区别
主要区别: Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的.)
什么是http?超文本传输协议
作用:传输协议定义了浏览器和客户端传输数据的格式
HTTP协议特点:
1.基于tcp/ip协议
2.默认端口80
3.请求和响应一一对应
4.每次请求相互独立,是无状态协议
请求消息 -request
1 请求行
请求方法描述GETGET方法请求一个指定资源的表示形式,使用GET的请求应该只被用于获取数据HEADHEAD方法请求一个与GET请求的响应相同的响应,但没有响应体。POSTPOST方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用。PUTPUT方法用请求有效载荷替换目标资源的所有当前表示。DELETEDELETE方法删除指定的资源。CONNECTCONNECT方法建立一个到由目标资源标识的服务器的隧道。OPTIONSOPTIONS方法用于描述目标资源的通信选项。TRACETRACE方法沿着到目标资源的路径执行一个消息环回测试。PATCHPATCH方法用于对资源应用部分修改。
请求方式 请求url 协议及版本
GET /page/jointleboratory HTTP/1.1
GET 和 POST 请求方式区别:
1.post请求在请求头中多了一行:content-type
2.get请求在url中且有上限,
2 请求头
标识自己
✦Host:请求主机域名/IP地址
Host:
www.baidu.com
✦User-Agent:告诉服务器浏览器的版本信息,共服务器解决浏览器兼容问题
User-Agent:Mozilla/5.0(Windows NT 10.0);Win64;x64)…
✦Accept:传输文件类型
Accept:text/html,application/xhtml+xml,…
✦Referer:告诉服务器从哪里来
Referer:
http://www.baidu.com/
✦Accept-Encoding:浏览器申明自己可接收的编码方法
Accept-Encoding:gzip,deflate,br
✦Accept-Language:浏览器申明自己可接收的语言
Accept-Language:zh-CN,zh;q=0.9,la;q=0.8,en;q=0.7
✦Cookie:令牌
因为http是无状态的,为了避免重复登录等问题,而引入的
3 请求空行
这里就是个空行
4 请求体
响应消息-response
1 响应行
协议及版本 响应状态码 状态码描述
HTTP/1.1 200 OK
HTTP 响应状态代码指示特定 HTTP请求是否已成功完成。响应分为五类:信息响应(
100
–
199
),成功响应(
200
–
299
),重定向(
300
–
399
),客户端错误(
400
–
499
)和服务器错误 (
500
–
599
)。
响应状态码含义100这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求,如果已经完成,则忽略它。101该代码是响应客户端的 Upgrade (en-US)标头发送的,并且指示服务器也正在切换的协议。102此代码表示服务器已收到并正在处理该请求,但没有响应可用。103此状态代码主要用于与Link链接头一起使用,以允许用户代理在服务器仍在准备响应时开始预加载资源200请求成功。成功的含义取决于HTTP方法: GET:资源已被提取并在消息正文中传输。 HEAD:实体标头位于消息正文中。 POST:描述动作结果的资源在消息体中传输。 TRACE:消息正文包含服务器收到的请求消息201该请求已成功,并因此创建了一个新的资源。这通常是在POST请求,或是某些PUT请求之后返回的响应。202请求已经接收到,但还未响应,没有结果。意味着不会有一个异步的响应去表明当前请求的结果,预期另外的进程和服务去处理请求,或者批处理。203服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集。例如,包含资源的元数据可能导致原始服务器知道元信息的超集。使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回200 OK的情况下才是合适的。204服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。响应可能通过实体头部的形式,返回新的或更新后的元信息。如果存在这些头部信息,则应当与所请求的变量相呼应。如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。由于204响应被禁止包含任何消息体,因此它始终以消息头后的第一个空行结尾。205服务器成功处理了请求,且没有返回任何内容。但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束。206服务器已经成功处理了部分 GET 请求。类似于 FlashGet 或者迅雷这类的 HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。该请求必须包含 Range 头信息来指示客户端希望得到的内容范围,并且可能包含 If-Range 来作为请求条件。207由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。208在 DAV 里面使用: propstat 响应元素以避免重复枚举多个绑定的内部成员到同一个集合。226服务器已经完成了对资源的 GET 请求,并且响应是对当前实例应用的一个或多个实例操作结果的表示。300被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向。301被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。302请求的资源现在临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。303对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。304如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304 响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。306在最新版的规范中,306 状态码已经不再被使用。307请求的资源现在临时从不同的URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。308这意味着资源现在永久位于由
Location:
HTTP Response 标头指定的另一个 URI。 这与
301 Moved Permanently HTTP
响应代码具有相同的语义,但用户代理不能更改所使用的 HTTP 方法:如果在第一个请求中使用
POST
,则必须在第二个请求中使用
POST
。4001、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。 2、请求参数有误。404请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。405请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。 鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。406请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。423正在访问的资源被锁定。429用户在给定的时间内发送了太多请求(“限制请求速率”)。431服务器不愿意处理请求,因为它的 请求头字段太大( Request Header Fields Too Large)。 请求可以在减小请求头字段的大小后重新提交。451用户请求非法资源,例如:由政府审查的网页。500服务器遇到了不知道如何处理的情况。501此请求方法不被服务器支持且无法被处理。只有
GET
和
HEAD
是要求服务器支持的,它们必定不会返回此错误代码。502此错误响应表明服务器作为网关需要得到一个处理这个请求的响应,但是得到一个错误的响应。503服务器没有准备好处理请求。 常见原因是服务器因维护或重载而停机。 请注意,与此响应一起,应发送解释问题的用户友好页面。 这个响应应该用于临时条件和
Retry-After
:如果可能的话,HTTP头应该包含恢复服务之前的估计时间。 网站管理员还必须注意与此响应一起发送的与缓存相关的标头,因为这些临时条件响应通常不应被缓存。508服务器在处理请求时检测到无限循环。511511 状态码指示客户端需要进行身份验证才能获得网络访问权限。
2 响应头
3 响应空行
4 响应体
用IP访问网站比用域名访问网站所在的目录高
叁.web源码拓展
Web源码在安全测试中是非常重要的信息来源,可以用来代码审计漏洞也可以用来做信息突破口,其中Web源码有很多技术需要简明分析。比如:获取某ASP源码后可以采用默认数据库下载为突破,获取某其他脚本源码漏洞可以进行代码审计挖掘或分析其业务逻辑等,总之源码的获取将为后期的安全测试提供了更多的思路。
1.cms
CMS是Content Management System的缩写,意为"内容管理系统"。 内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市场
它包含:
- 文档模板
- 脚本语言或标记语言
- 与数据库集成
2.cms识别
在线识别工具:
http://whatweb.bugscaner.com/look/
https://www.yunsee.cn/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mYzTqrSP-1645844356361)(C:\Users\杨世斌\AppData\Roaming\Typora\typora-user-images\image-20220213143519108.png)]
3.源码获取途径
扫描工具探测备份文件
CMS识别技术获取CMS名称然后从网上下载
百度直接搜索:源码
咸鱼上会有卖
第三方源码站:比如菜鸟源码
各种行业对应
4.总结
关注应用分类及脚本类型估摸出可能存在的漏洞(其中框架例外),在获取源码后可进行本地安全测试(本地安全测试(手工使用工具去扫描,不需要接触代码))或代码审计,也可以分析其目录工作原理(数据库备份,bak文件等),未获取到的源码采用各种方法想办法获取
5.演示
ASP注入演示
- 打开靶场,打开asp注入
- 进入网站,打开任意界面,查看页面的后缀,根据后缀判定
- 查看网页底部,发现关键词XYCMS
- 搜索XYCMS源码,下载
- 打开文件夹,寻找关键数据库路径文件xydata,找到文件xycms.mdb(asp特有文件)
- 该文件存有管理员的账号密码
- 根据下载的源码路径,可以去尝试访问网站的目录: http://192.168.139.137:8003/xydata/xycms.mdb,下载到文件![img](https://img-blog.csdnimg.cn/img_convert/07e1d3eb79f0ebd7b5a484e3bb9d03b1.png)
- 尝试访问到后台
- 数据库中admin数据 密码MD5解密
- 使用用户密码即可登录
肆.数据库及系统
前言
除去搭建平台中间件,网站源码外,容易受到攻击的还有操作系统,数据库,第三方软件平台等,其中此类攻击也能直接影响到Web或服务器的安全,导致网站或服务器权限的获取
1.操作系统
1.1如何判断网站搭载在什么操作系统上
在url中,windows操作系统对大小写不敏感,Linux对大小写敏感。
如果没有给出网站域名,只给出了网站IP,可以通过ttl值判断,但是通过ttl值判断不完全准确,ping这个ip就可以知道ttl值;比较准确的是nmap扫描
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NEFqddoH-1645844356368)(C:\Users\杨世斌\AppData\Roaming\Typora\typora-user-images\image-20220212100856029.png)]
1.2两者区别
网站路径、大小写、文件在两个系统之间的适用性,兼容性
如果判断出是哪种操作系统,就会从操作系统所支持的漏洞类型下手
1.3操作系统层面漏洞类型
- SQL注入漏洞 SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。- 跨站脚本漏洞 跨站脚本攻击(Cross-site scripting,通常简称为XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、窃取密码、传播恶意代码等攻击。XSS攻击使用到的技术主要为HTML和Javascript,也包括VBScript和ActionScript等。XSS攻击对WEB服务器虽无直接危害,但是它借助网站进行传播,使网站的使用用户受到攻击,导致网站用户帐号被窃取,从而对网站也产生了较严重的危害。
- 弱口令漏洞 弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。设置密码通常遵循以下原则:**(1)** 不使用空口令或系统缺省的口令,这些口令众所周之,为典型的弱口令。**(2)** 口令长度不小于8个字符。**(3)** 口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。**(4)** 口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。**(5)** 口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。**(6)** 口令不应该为用数字或符号代替某些字母的单词。**(7)** 口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。**(8)** 至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。- HTTP报头追踪漏洞 HTTP/1.1(RFC2616)规范定义了HTTP TRACE方法,主要是用于客户端通过向Web服务器提交TRACE请求来进行测试或获得诊断信息。当Web服务器启用TRACE时,提交的请求头会在服务器响应的内容(Body)中完整的返回,其中HTTP头很可能包括Session Token、Cookies或其它认证信息。攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。该漏洞往往与其它方式配合来进行有效攻击,由于HTTP TRACE请求可以通过客户浏览器脚本发起(如XMLHttpRequest),并可以通过DOM接口来访问,因此很容易被攻击者利用
- Struts2远程命令执行漏洞 Apache Struts是一款建立Java web应用程序的开放源代码架构。Apache Struts存在一个输入过滤错误,如果遇到转换错误可被利用注入和执行任意Java代码。网站存在远程代码执行漏洞的大部分原因是由于网站采用了Apache Struts Xwork作为网站应用框架,由于该软件存在远程代码执高危漏洞,导致网站面临安全风险。CNVD处置过诸多此类漏洞- 框架钓鱼漏洞(框架注入漏洞) 框架注入攻击是针对Internet Explorer 5、Internet Explorer 6、与 Internet Explorer 7攻击的一种。这种攻击导致Internet Explorer不检查结果框架的目的网站,因而允许任意代码像Javascript或者VBScript跨框架存取。这种攻击也发生在代码透过多框架注入,肇因于脚本并不确认来自多框架的输入。这种其他形式的框架注入会影响所有的不确认不受信任输入的各厂商浏览器和脚本。
- 文件上传漏洞 文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。因此,在开发网站及应用程序过程中,需严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关目录的执行权限,防范webshell攻击。- 应用程序测试脚本泄露 由于测试脚本对提交的参数数据缺少充分过滤,远程攻击者可以利用洞以WEB进程权限在系统上查看任意文件内容。防御此类漏洞通常需严格过滤提交的数据,有效检测攻击
- 私有IP地址泄露漏洞 IP地址是网络用户的重要标示,是攻击者进行攻击前需要了解的。获取的方法较多,攻击者也会因不同的网络情况采取不同的方法,如:在局域网内使用Ping指令,Ping对方在网络中的名称而获得IP;在Internet上使用IP版的QQ直接显示。最有效的办法是截获并分析对方的网络数据包。攻击者可以找到并直接通过软件解析截获后的数据包的IP包头信息,再根据这些信息了解具体的IP。
2.数据库
2.1常见数据库开放端口
1433 sqlserver
1521 oracle
1527 Derby
3306 mysql
5432 postgresql
5000 db2
9092 pointbase
6379 redis
27017 mongodb
2.2常见脚本和数据库搭配关系
php↔mysql
asp↔access,asp↔sql server(mssql)
asp.net(aspx)↔sql server(mssql)
jsp↔Oracle
2.3常见容器与数据库和脚本的搭配
IIS+access+asp
IIS+sql server+asp
apache+mysql+php
nginx+mysql+php
tomcat+Oarcle+jsp
tomcat+mysql+jsp
2.4数据库类型区别及识别意义
每个数据库里面的安全机制,内部结构都有些许不一样,同样产生的漏洞也不一样。不同的数据库,攻击方法、漏洞类型及影响都有不同
2.5数据库常见漏洞类型及攻击
弱口令攻击:通过弱口令登录到数据库中,得到网站管理员数据信息,登录网站后台,进行修改
2.6简述数据库层面漏洞影响范围
通过漏洞,进行攻击,也可以获取数据库的相关权限,进行一系列的操作
/*****************************************************************************/
/*****************************************************************************/
伍.加密编码算法
前言
在渗透测试中,常见的密码等敏感信息会采用加密处理,其中作为安全测试人员必须要了解常见的加密方式,才能为后续的安全测试做好准备。
常见加密算法
MD5,SHA,ASC,进制,时间戳,URL,BASE64,Unescape,AES,DES等
1.MD5(不可逆)
16位和32位,加密密文字符串由A-Z,0-9随机分配,80%网站管理员或用户密码加采取MD5加密。(不可逆)
网上的MD5解密都是采用了枚举方法
2.SHA
由A-Z,0-9随机组合,SHA1,SHA256,SHA384,SHA512长度固定。(不可逆)
3.进制
16进制加密
4.时间戳
网站或者服务器脚本语言里经常会使用,会在数据库里用户登录和注销,注册里会使用
5.URL
浏览器只做一次加密,在渗透绕过的时候可能会使用二次,三次加密方式
6.BASE64
大小写随机组合,在字符串后面经常出现一个或两个等号
明文越长,密文越长
常见应用:代码、密码、参数
浏览器只做一次加密,在渗透绕过的时候可能会使用二次,三次加密方式
7.unescape
%u+4位数字,对应两位字符,主要应用WEB应用上
8.AES
是一种安全的加密方式,涉及到密码,偏移量,数据块,填充,在加密时候涉及到4种随机性。解密难度大。用base64解密出来是乱码,有很大可能是AES加密。有时候/出现在字符串里面。比较注重安全和大型网站、安全比赛
注:必须有密码和偏移量,否则无法进行解密
9.DES
类似于BASE64,有时候+会出现字符串里
]
4.时间戳
网站或者服务器脚本语言里经常会使用,会在数据库里用户登录和注销,注册里会使用
5.URL
浏览器只做一次加密,在渗透绕过的时候可能会使用二次,三次加密方式
[外链图片转存中…(img-aXwaP7LU-1645844356372)]
6.BASE64
大小写随机组合,在字符串后面经常出现一个或两个等号
明文越长,密文越长
常见应用:代码、密码、参数
浏览器只做一次加密,在渗透绕过的时候可能会使用二次,三次加密方式
[外链图片转存中…(img-SjxHan1Y-1645844356373)]
7.unescape
%u+4位数字,对应两位字符,主要应用WEB应用上
[外链图片转存中…(img-TrPmkg00-1645844356373)]
8.AES
是一种安全的加密方式,涉及到密码,偏移量,数据块,填充,在加密时候涉及到4种随机性。解密难度大。用base64解密出来是乱码,有很大可能是AES加密。有时候/出现在字符串里面。比较注重安全和大型网站、安全比赛
注:必须有密码和偏移量,否则无法进行解密
[外链图片转存中…(img-PKc7tUHp-1645844356374)]
9.DES
类似于BASE64,有时候+会出现字符串里
版权归原作者 Guigui-23 所有, 如有侵权,请联系我们删除。