2023_OWASP TOP10_漏洞详情

OWASP TOP 10 漏洞讲解

1 、 s q l 注入 1、sql注入 1、sql注入

原理:
SQL 注入就是指 web
应用程序对用户输入的数据合法性没有过滤或者是判断,前端传入的参数是攻击者可以控制,并且参数带入数据库的查询,攻击者可以通过构造恶意的 sql
语句来实现对数据库的任意操作。

分类:
1、报错注入
2、bool 型注入
3、延时注入
4、宽字节注入

防御:
1.使用预编译语句,绑定变量
2.使用存储过程
3.使用安全函数
4.检查数据类型

2 、失效的身份认证和会话管理 2、失效的身份认证和会话管理 2、失效的身份认证和会话管理

原理:
在开发web应用程序时,开发人员往往只关注Web应用程序所需的功能,所以常常会建立自定义的认证和会话方案。但是要正确的实现这些方案却是很难的。结果就在退出、密码管理、超时、密码找回、帐户更新等方面存在漏洞。

防御:
1、区分公共区域和受限区域。
2、对最终用户帐户使用帐户锁定策略。
3、支持密码有效期。
4、能够禁用帐户。
5、不要存储用户密码。
6、要求使用强密码。
7、不要在网络上以纯文本形式发送密码。
8、保护身份验证 Cookie。
9、使用 SSL 保护会话身份验证 Cookie。
10、对身份验证 cookie 的内容进行加密。
11、限制会话寿命。
12、避免未经授权访问会话状态。

3 、跨站脚本攻击( X S S ) 3、跨站脚本攻击(XSS) 3、跨站脚本攻击(XSS)

XSS是跨站脚本攻击,原理是攻击者向有XSS漏洞的网站中输入恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。

分类:反射型(非持久型)XSS、存储型(持久型)XSS、DOM型XSS.

区别:
DOM XSS和反射型XSS、存储型XSS的差别在于DOM XSS的代码并不需要服务器参与,触发XSS靠的是浏览器端的DOM解析,完全是客户端的事情。

预防:
1.使用XSS Filter,即跨站脚本过滤器,用于分析用户提交的输入,并过滤可能存在的脚本攻击及恶意的THML或简单的HTML格式错误等。
2.输入过滤
输入是否仅仅包含合法的字符;
输入字符串是否超过最大长度限制;
输入如果为数字,数字是否在指定的范围;
输入是否符合特殊的格式要求,如E-mail地址、IP地址等
3.输出编码

<(小于号) 转成 &lt;
> (大于号)转成 &gt;
& (和号)转成 &amp;
" (双引号)转成 &quot;
' (单引号)转成 &#39;

4.黑名单和白名单
5.内容安全策略(csp):CSP用于限制浏览器查看您的页面,以便它只能使用从受信任来源下载的资源。

4 、直接引用不安全的对象 4、直接引用不安全的对象 4、直接引用不安全的对象

定义:
不安全的直接对象引用(IDOR)允许攻击者绕过网站的身份验证机制,并通过修改指向对象链接中的参数值来直接访问目标对象资源,这类资源可以是属于其他用户的数据库条目以及服务器系统中的隐私文件等等。

出现的原因:
Web应用往往在生成Web页面时会用它的真实名字,且并不会对所有的目标对象访问时来检查用户权限,所以这就造成了不安全的对象直接引用的漏洞。
服务器上的具体文件名、路径或数据库关键字等内部资源被暴露在URL或网页中,攻击者可以尝试直接访问其他资源。

防御措施:
1.使用基于用户或会话的间接对象访问,这样可防止攻击者直接攻击未授权资源
2.访问检查:对任何来自不受信源所使用的所有对象进行访问控制检查
3.避免在url或网页中直接引用内部文件名或数据库关键字
4.验证用户输入和url请求,拒绝包含./ …/的请求

5 、安全配置错误 5、安全配置错误 5、安全配置错误

定义:
安全配置错误可以发生在一个应用程序堆栈的任何层面,通常是由于不安全的默认配置、不完整的临时配置、开源云存储、错误的HTTP
标头配置以及包含敏感信息的详细错误信息所造成的。

影响:
攻击者能够通过未修复的漏洞、访问默认账户、不再使用的页面、未受保护的文件和目录等来取得对系统的未授权的访问或了解。

防御措施:
1、 配置所有的安全机制
2、 最小原则,关掉或限制不使用的服务
3、 更改默认账户信息
4、 使用日志和警报
5、 回显信息不显示任何与实际错误相关的信息
6、 检查和修复安全配置项

6 、敏感信息泄露 6、敏感信息泄露 6、敏感信息泄露

漏洞描述:
由于管理员或者技术人员等各种原因导致敏感信息泄露。许多web应用程序和app都无法正确保护敏感数据,攻击者可以通过窃取或修改未加密的数据来实施信用卡诈骗、身份盗窃或其他犯罪行为。未加密的敏感数据容易受到破坏,因此,我们需要对敏感数据加密,这些数据包括:传输过程中的数据、存储的数据以及浏览器的交互数据。

检测方法:
1、手工挖掘,查看web容器或网页源码代码,可能存在敏感信息。比如访问url下的目录,直接列出了目录下的文件列表,错误的报错信息包含了网站的信息。
2、工具挖掘,像爬虫之类的工具可以扫描到敏感文件路径,从而找到敏感数据。

防范措施:
1、 对系统处理、存储或传输的数据进行分类,根据分类进行访问控制。
2、 对用户敏感信息的传输和存储进行加密
3、 强化安全意识

7 、缺少功能级的访问控制 7、缺少功能级的访问控制 7、缺少功能级的访问控制

原理:
大多数Web应用程序的功能在UI页面显示之前,会验证功能级别的访问权限。但是,应用程序需要在每个功能被访问时在服务器端执行相同的访问控制检查。如果请求没有被验证,攻击者能够伪造请求从而在未经适当授权时访问功能。

测试方法:
1、 保证合法授权用户可以访问成功
2、 限制非法未授权用户的访问

防御措施:
1、 设计严格的权限控制系统,对于每个请求和URL都要进行校验和权限确认,防止非法请求被执行
2、 对于每个功能的访问,都要有明确的角色授权,采用过滤器的方式校验每个请求的合法性
3、 实现Web访问的IP白名单列表,禁止不可信的IP访问Web系统

8 、跨站请求伪造( C S R F ) 8、跨站请求伪造(CSRF) 8、跨站请求伪造(CSRF)

CSRF概念:
CSRF跨站点请求伪造(Cross—Site Request
Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。
如下:其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。

攻击原理:
CSRF攻击攻击原理及过程如下:

1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
5.
浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。


分类:
GET型和POST型。


防御手段:
1、验证 HTTP Referer 字段。
根据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该HTTP请求的来源地址。
2、在请求地址中添加 token 并验证
在HTTP请求中以参数的形式加入一个随机产生的token(随机字符串),并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。
3、二次验证
在转账等关键操作之前提供当前用户的密码或者验证码。二次验证可以有效防御CSRF 攻击。

9 、使用含有已知漏洞的组件 9、使用含有已知漏洞的组件 9、使用含有已知漏洞的组件

原理:
大多数的开发团队并不会把及时更新组件和库当成他们的工作重心,更不关心组件和库的版本,然而应用程序使用带有已知漏洞的组件会破坏应用程序防御系统,可能导致严重的数据丢失或服务器接管。

防御措施:
1.标识正在使用的所有组件和版本,包括所有依赖项。
2.及时关注这些组件的安全信息并保证他们是最新的。
3.建立使用组件的安全策略,禁止使用未经安全评估的组件。
4.在适当情况下,对组件进行安全封装,精简不必要的功能,封装易受攻击部分。

10 、未验证的重定向和转发 10、未验证的重定向和转发 10、未验证的重定向和转发

重定向:
重定向是服务端根据逻辑,发送一个状态码(通常为3xx),告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL。(重定向是在客户端完成的)
转发:
转发是在服务器内部将请求转发给另一个资源,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,因为这个跳转过程是在服务器实现的,并不是在客户端实现的所以客户端并不知道这个跳转动作,所以它的地址栏还是原来的地址。(转发是在服务器端完成的)

两者的区别:
1、重定向是浏览器向服务器发送一个请求并收到响应后再次向一个新地址发出请求,转发是服务器收到请求后为了完成响应跳转到一个新的地址。
2、重定向有两次请求,不共享数据,转发是有一次请求且共享数据。
3、重定向后地址栏会发生变化,转发不会。
4、重定向的地址可以是任意地址,转发的地址只能是当前应用类的某一个地址。

预防措施:
1、重定向外部网站需要验证是否在白名单。
2、转发内部网站要验证是否有权限,有权限才转发。

学习网络安全技术的方法无非三种:

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

第三种就是去找培训。

image.png

接下来,我会教你零基础入门快速入门上手网络安全。

网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。

第一阶段:基础准备 4周~6周

这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
image.png

第二阶段:web渗透

学习基础 时间:1周 ~ 2周:

① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
image.png

配置渗透环境 时间:3周 ~ 4周:

① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。

渗透实战操作 时间:约6周:

① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
image.png
以上就是入门阶段

第三阶段:进阶

已经入门并且找到工作之后又该怎么进阶?详情看下图
image.png

给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值