admin管理员组

文章数量:1547189

我是Dream,今天继续学习web基础。

客户端-Web应用安全

01 WEB访问流程

前端/客户端漏洞:钓鱼、暗链、XSS、点击劫持CSRF、URL跳转。

后端/服务端漏洞:SQL注入、命令注入文件上传、文件包含、暴力破解

02 客户端安全

前端是第一道们,在设计程序页面的时候,就可以考虑安全问题,设置过滤

后端是第二道门,在增删改查数据时,可以设置过滤

从某种意义上讲,都对企业造成了伤害,伤害同样大。

03 浏览器

随着互联网的发展,人们发现浏览器才是互联网最大的入口,绝大多数用户使用互联网的工具是浏览器。

一方面,浏览器天生就是一个客户端,如果具备了安全功能,就可以像安全软件一样对用户上网起到很好的保护作用;

另一方面,浏览器安全也成为浏览器厂商之间竞争的一张底牌,浏览器厂商希望能够针对安全建立起技术门槛,以获得竞争优势。

因此近年来随着浏览器版本不断更新,浏览器安全功能变得越来越强大。

04 Cookie/Session

Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。比方:打开一个页面,输入账号密码,不小心操作失误,关闭了窗口,需要重新输入账号密码。要跟踪该会话,必须引入一种机制。

Cookie就是这样的一种机制。它可以弥补HTTP协议无状态的不足。在Session出现之前,基本上所有的网站都采用Cookie来跟踪会话

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容

但如果黑客入侵了浏览器,Cookie的内容就会被黑客获取。

除了使用Cookie,Web应用程序中还可以使用Session来记录客户端状态。Session是服务器端使用的一种记录客户端状态的机制,使用时比Cookie简单一些,相应的也增加了服务器的存储压力

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

黑客如果入侵成功,获得的Cookie是SessionID(随机生成的字符),相当于多了一层防护。Session比Cookie更安全。

Cookie/Session的区别

01 session在服务器端,cookie在客户端(浏览器)。

02 session默认被存在服务器的一个文件里(不是内存)

03 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

04 一般情况,登录信息等重要信息存储在session,其他信息存储在cookie

05 同源策略

同源策略(Same origin policy):是由NetScape提出的一个著名的安全策略。所谓同源,指的是协议、域名、端口相同。浏览器出于安全方面的考虑,只允许本域名下的接口交互,不同源的客户端脚本,在没有明确授权的情况下,不能读写对方的资源。

它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现

06 浏览器沙箱

Sandbox即沙箱,对于浏览器来说,采用Sandbox技术,无疑可以让不受信任的网页代码运行在一个受限的环境中,从而保护本地文件的安全。

浏览器的多进程架构,将浏览器的各个功能分开,当一个进程崩溃时,也不会影响到其他进程。

在现今的浏览器中,虽然有许多进程架构和Sandbox保护,但浏览器所加载的一些第三方插件却往往不受Sandbox管辖,比如近年来Pwn2Own大会上被攻克的浏览器,往往都是因为第三方插件出现的安全漏洞导致的Flash, PDF.  NetFramework在近年来都成为浏览器攻击的热点

07 恶意网站拦截

恶意网站拦截工作原理很简单,一般都是浏览器周期性的从服务器获取一份最新恶意网址的黑名单,如果用户上网时访问的网址存在于黑名单中,浏览器就会弹出一个警告页面

常见的恶意网址:

1. 一类是挂马网站,这些网站通常包含有恶意的脚本JavascritptFlash,通过利用浏览器的漏洞,包括一些插件,执行shellcode,在用户电脑植入木马

2. 另一类是钓鱼网站,通过模仿知名网站的相似页面来欺骗用户。


WEB安全-OWASP TOP10

01 OWASP简介

Open Web Application Security Project 开放式Web应用程序安全项目(OWASP)是一个非营利组织,不附属于任何企业或财团。因此,由OWASP提供和开发的所有设施和文件都不受商业因素的影响。OWASP支持商业安全技术的合理使用,它有一个论坛,在论坛里信息技术专业人员可以发表和传授专业知识和技能。

在信息安全中OWASP TOP 10 是渗透测试人员都会涉及到的一个项目,意思是10项最严重的Web应用程序安全风险例表,该例表总结并更新Web应用程序中最可能、最常见、最危险的十大漏洞

目前有3个版本OWASP TOP 10 , 2021是最新的版本,2013和2017的是之前两个版本。

注入是一大问题。黄色排名下降,绿色排名上升,蓝色归类。

A01 访问控制崩溃

描述:通过身份验证的用户,可以访问其他用户的相关信息,没有实施恰当的访问权限。攻击者可以利用这个漏洞去查看未授权的功能和数据。

例如:访问用户的账户、敏感文件、获取和正常用户相同的权限等。

也就是我们常说的越权漏洞

概念:未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据。例如:访问其他用户的账户、查看敏感文件。修改其他用户的数据、更改访问权限等。

1. 通过修改URL、内部应用程序状态或HTML页面绕过访问控制检查,或简单地使用自定义的API攻击工具。

2.允许将主键更改其他用户的记录,例如查看或编辑他人的账户。

3.特权提升。在不登录的情况下假扮用户,或以用户身份登录时充当管理员

4.以未通过身份验证的用户身份强行浏览的通过身份验证时才能看到的页面、或作为标准用户访问具有相关权限的页面、或API没有对POST、PUT、DELETE强制执行访问控制

A02 敏感数据暴露

很多Web应用程序和API都无法正确保护敏感数据,例如:财务数据、医疗数据和PII数据。攻击者可泄露容易受到破坏,因此,我们需要对敏感数据加密,这些数据包括:传输过程中的数据、存储的数据以通过窃取或修改未加密的数据来实施信用卡诈骗、身份盗窃或其他犯罪行为。未加密的敏感数据以及浏览器的交互数据

敏感数据暴露存在原因

1. 数字系统越来越多,用户个人信息收集后存储分散,业务使用中管理不规范。

2. 随着企事业单位规模的扩大,员工数量逐步增加,信息安全意识参差不齐,可能存在违规使用随意下载用户个人信息的行为。

 如何防范

加强员工意识,禁止上传代码到github等网站

谨慎使用第三方云服务,不要把工作相关的数据存到云端

禁止使用工作邮箱注册非工作相关网站。

A03 注入

概念:注入即是指Web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定好的查询语句的结尾上添加额外的执行语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到响应的数据信息。

  SQL注入

含义:所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令目的的入侵行为。

原因:SQL命令可以进行查询、插入、删除等操作,直接将这些命令拼接起来。所以你提交这些命令之后,就可以间接地操控数据库了。

万能密码:Admin or 1=1 #

Select*fromTablewhereName='Admin

br1=1#andPassword='YY

其中#是注释的意思

这个语句的意思是不是完全发生了改变?

他现在变成了从Table中挑选Name为admin的用户名,哪怕不存在这个用户名他也是可以登录的.

因为or是两边有一个为真,全部就都为真。

所以现在任意的账号都可以登录,哪怕不输入密码

A04 不安全设计

漏洞产生原因:在开发软件时,在关键身份验证、访问控制、业务逻辑和关键流部位没有进行安全的设计。由于开发过程中的设计缺陷,可能导致注入、文件上传等漏洞被利用; 

漏洞利用

01 业务逻辑的显性体现

1、支付逻辑

2、密码找回

3、验证码暴力破解

4、验证码重复使用

5、验证码客户端回显

6、验证码绕过

7、验证码自动识别

02 支付逻辑漏洞

所有涉及购买、支付等方面的功能处就有可能存在支付漏洞

挖掘:寻找网站的支付系统、或兑换系统,抓包判断有没有敏感信息可以修改。

利用:

1、修改支付价格

2、修改支付状态

6、多重替换支付

3、修改购买数量

7、重复支付

8、最小额支付

4、修改优惠卷、积分

9、最大额支付问题

5、修改支付接口

10、无限制试用

A05 安全配置不当

安全配置错误是最常见的安全问题,这通常是由于不安全的默认配置不完整的临时配置、开源云存储、错误的HTTP标头配置以及包含敏感信息的详细错误信息所造成的。·因此,我们不仅需要对所有的操作系统、框架、库和应用程序进行安全配置,而且必须及时修补和升级它们。

默认的账号密码也是不安全配置

可能出现的风险点

◆应用程序启用或者安装了不必要的安全功能

默认账户名和密码没有修改

◆应用软件已过期或出了新版本未更新

◆应用程序服务器,应用程序框架等未进行安全配置。

◆错误处理机制披露大量敏感信息

◆对于更新的系统,禁用或不安全地配置安全功能

ActiveMQ和Tomcat的默认账号和密码都是admin/admin

1、ActiveMQ物理路径泄漏漏洞

3、ActiveMQPUT任意文件上传漏洞

2、ActiveMQ反序例化漏洞(CVE-2015-5254)

4、ActiveMQ信息泄漏漏洞(CVE-2017-15709)

中国电信--交换机弱口令--wooyun-2015-094251

网秦某站弱口令导致的一次内网漫游--wooyun-2016-0219717

A06 使用已知含有漏洞的组件

概念

组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。

如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据丢失或服务器接管。同时,使用含有已知漏洞的组件的应用程序和API可能会破坏应用程序防御、造成各种攻击并产生严重影响

如何防范

移除不使用的依赖、不需要的功能、组件、文件和文档。

仅从官方渠道安全的获取组件,并使用签名机制来降低组件被篡改或加入恶意漏洞的风险。

◆持续监控如CVE和CNVD等是否发布已使用组件的漏洞信息,可以使用软件分析工具来自动完成此功能。订阅关于使用组件安全漏的警告邮件。

A07 认证崩溃

概念

通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会

话令牌,或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。

在开发web应用程序时,开发人员往往只关注Web应用程序所需的功能,所以常常会建立自

定义的认证和会话方案。但是要正确的实现这些方案却是很难的。结果就在退出、密码管理

超时、密码找回、帐户更新等方面存在漏洞。

可能出现的风险点

◆充许暴力破解破解密码或者账号。

◆允许默认的、弱的或众所周知的密码,例如“admin/123456”或"admin/admin"。

◆使用明文、加密或弱散例密码

◆缺少或失效的多因素身份验证

◆暴露URL中的会话ID(例如URL重写)。

旧密码泄露会话ID使用时间过长

如何防范

◆在可能的情况下,实现多因素身份验证,以防止自动、凭证填充暴力破解和被盗凭据再利用攻击。

检查弱口令,模拟爆破操作。

◆限制或逐渐延迟失败的登录尝试。记录所有失败信息并在凭据填充、暴力破解或其他攻击被检测时提醒管理员

◆使用服务器端安全的内置会话管理器,在登录后生成高度复杂的新随机会话ID。会话ID不能在URL中,可以安全地存储和当登出闲置、绝对超时后使其失效

A08 软件和数据完整性失败

概念

软件和数据完整性故障与不能防止完整性违规的代码和基础设施有关。一个例子是应用程序依赖来自不受信任的来源、存储库和内容交付网络(CDN)的插件、库或模块。不安全的CI/CD管道可能会导致未经授权的访问、恶意代码或系统受损。最后,许多应用程序现在包括自动更新功能,其中更新在没有充分完整性验证的情况下被下载并应用于以前受信任的应用程序。攻击者可能会上传自已的更新以分发并在所有安装上运行。另一个例子是对象或数据被编码或序例化为攻击者可以看到和修改的结构,容易受到不安全的反序例化

如何防范

通常有一下3个思路:

1、使用数字签名或类似机制来验证软件或数据来自预期来源且未被更改;

2、确保使用安全工具验证组件不包含已知漏洞;

3、确保未签名或未加密的序例化数据不会在没有检查或数字签名的情况下发送到不受信任的客户端;

A09 不足的日子记录和监控

概念

不足的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持续性或转向更多系统,以及篡改、提取或销毁数据

大多数缺陷研究显示,缺陷被检测出的时间超过200天,直通常通过外部检测方检测而不是通过内部流程或监控检测。

导致被黑客攻击而不知道。

◆未记录可审计性事件,如:登录、登录失败和高额交易。

◆告警和错误事件未能产生或产生不足的和不清晰的日志信息。

◆日志信息仅在本地存储。

◆没有利用应用系统和API的日志信息来监控可疑活动。

◆对于实时或准实时的攻击,应用程序无法检测、处理和告警。

A10 服务端请求伪造

什么是服务端请求伪造?

应用程序发送精心设计的请求的对其他网站进行攻击。

一般情况下,SSRF攻击的自标是从外网无法访问的内部系统。

利用一个可以发起网络请求的服务,当做跳板来攻击其它服务

简单来说就是:

A让B帮忙访问C

SSRF的成因

SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能直没有对自标地址做过滤与限制。ssrf是利用存在缺陷的web应用作为代理去攻击远程和本地的服务器

也就是说,对于为服务器提供服务的其他应用没有对访问进行限制,如果我构造好我的访问包,那我就有可能利用自标服务对他的其他服务器应用进行调用。

SSRF常见危害

1.可以对服务器所在内网、本地进行端口扫描,获取一些服务的信息等

2.目标网站本地敏感数据的读取

3.内外网主机应用程序漏洞的利用

4.内外网Web站点漏洞的利用


XRAY

安装好了之后,cmd,测试电脑运行环境是python(python version),会出现python的版本号,然后从xray的页面输入cmd:

输入xray Tab键,然后输入genca,获取证书。

最底下的ca就是证书,然后点击证书,添加到信任区。

接着,用ipconfig查询ip,打开靶场,复制连接,主动扫描靶场

xray_windows_amd64.exe webscan --basic-crawler 靶场ip --html-output 报告名称.html

这是一个全面扫描的命令,会对靶场进行全面的扫描。

形成报告pikachu1

被动扫描靶场

01 在靶场所在的浏览器设置xray的代理,并开启代理

02 在xray所在的文件夹地址输入cmd

输入被动扫描命令:xray_windows_amd64.exe webscan --listen 靶场地址:代理设置的端口 --html-output 报告名称.html

打开靶场,靶场的ip不能用127.0.0.1开启。

这是一个被动扫描的命令,只有操作靶场,才会形成报告。不操作就没有报告。

本文标签: web