大家好,好久不见,我是考完研耍了几天发现还有一堆事得干结果仓促回来复健(预习)的wl,ctf的wp可能得耽搁一会,研应该考不上了,所以得重新学习知识去准备实习了,这周应该会更新许多网安基础知识。
言归正传:
OWASP Top 10相信不用过多解释,这是学网安或者打ctf的人都会遇到的概念,不知道的去罚站。按例这里附上网站:https://owasp.org/ 不要问为什么复杂进浏览器没反应,问出来我只能说:
出处来自网络,侵权请联系up
当然我是英语糕手,所以我在国内看的简介和介绍,这里也分享给大家两个论坛,有些点我自己考虑不到,自己改别人点装成自己的也没不要就直接沾上了:
GPT介绍的,雀氏让我看到了很多可以用的新知识,不过小白目前用到的不多:
FreeBuf(https://www.freebuf.com/):FreeBuf是一个专注于网络安全的社区平台,他们提供了许多关于OWASP Top 10漏洞的文章和解读,适合学习和了解这些漏洞。
安全客(https://www.anquanke.com/):安全客是一个知名的安全技术平台,他们在网站上发布了许多关于OWASP Top 10漏洞的文章和教程,包括漏洞原理、实例和防御方法等。
按例,此处感谢:
https://www.freebuf.com/vuls/377762.html
OWASP Top 10 & 靶场漏洞&获得系统立足点总结
和
https://blog.csdn.net/Wufjsjjx/article/details/132103936?ops_request_misc=&request_id=&biz_id=102&utm_term=OWASP%20top10&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-132103936.142^v99^pc_search_result_base3&spm=1018.2226.3001.4187
网络安全入门必知的OWASP top 10漏洞详解
1.注入
老朋友,sql注入和os注入,其实还有一些注入,但是我还没学到,就不献丑了。原理很简单,就是因为对输入合法性判断和过滤不严格,导致现有程序被恶意的sql或者os命令利用并执行。例如万能密码什么的。
具体产生原因是:
未审计的数据输入框
实用网址直接传递变量
未过滤的特殊字符
SQL错误回显
如何防范:
1.进行严格转义或者过滤
2.对数据类型,长度进行严格定义
3.通过waf防御
4.限制对数据库访问的权限
OS注入就是system(‘’)那套语句了,也就是通过shell执行OS(操作系统)命令
2.失效的身份验证
也就是攻击者通过各种手段利用身份认证缺陷获取高权限并进行攻击应用服务,也就是冒充其他用户身份这种,最简单的就是弱口令攻击。
常见原因有:
1.允许暴力破解或者运行弱密码,使用明文加密或弱加密方法,
2.缺少或失效的多因素身份认证,暴露url的会话id
3.旧密码泄露,会话id使用过长
防范则可以采用:
1.实现多因素身份验证
2.检查弱口令,模拟爆破操作,强制让用户使用强密码
3.限制或逐渐延长失败的登录尝试,记录失败信息,并针对爆破和攻击行为上报管理员
4.使用服务器内的安全内置会话管理器,生存随机复杂的会话id
3.敏感信息泄露
最简单的原理,最难防止的行为。
原因:
1.信息收集后存储分散,使用中管理不规范
2.安全意识参差不齐,存在违规使用,随意下载用户个人信息的行为
3.应用维护或开发人员无意间上传敏感数据,如github文件泄露
4.敏感数据文件的权限设置错误,如网站目录下的数据库备份文件泄露
5.网络协议、算法本身的弱点,如telnet、ftp、md5等。
粗俗点讲就是安全意识问题,和安全知识问题,你只要少一点‘坚持访问’,少去点莫名其妙的链接和邮件,少下莫名其妙的软件,就可以防范大多数的泄露问题。
防范:
1.加强安全意识。
2.谨慎使用云服务和其他插件
4.XML外部实体漏洞----XXE
原理就是应用程序解析XML文件时包含了对外部实体的引用,攻击者传递恶意包含XML代码的文件,读取指定的服务器资源。ctf题也遇到过,可以搜一下我的wp,记得与xss区分,我刚了解的时候闹过笑话=-=,学习xxe得学一下HTML前端的XML知识。
防范:
1.使用简单数据格式,例如json(虽然json也有漏洞= =但是面试时该说还是得说)。
2.及时修复或更新应用程序或者系统所使用的xml处理器和库
3.实施积极的白名单进行输入验证,过滤和清理
4.验证xml或xsl是否使用xsd验证或其他验证方式
5.使用waf,网关等防护
5.无效的访问控制
也就是越权访问这类的问题,比如路径穿越,php伪协议这类的问题,当然我也不是很确定是否属于,但是都是访问未经允许的页面或查看其他敏感信息。如有错请纠正。
原理:
1.修改url,html或者程序绕过检查或使用自定义api攻击工具
2.修改主键以看到其他用户记录或者查看编辑其他人的账户
3.越权访问
4.绕过认证看到未经允许的页面,或者api没对post等进行限制
防范:
1.默认除公共资源外的其他资源的拒绝访问。
2.严格判断权限
3.记录失败的访问控制,适当向管理员告警
4.对api或控制器访问进行限制
5.用户注销后,令牌如jwt令牌应当失效
6.安全配置错误
开发或者维护人员设置了错误的配置,如python开发中对于Django框架在生产环境中启用了Debug模式,在url地址后拼接错误的信息,通过爆错的值网站中的目录等敏感信息。
例如:
1.默认账号密码没有修改
2.程序启用或者安装了不必要的安全功能
3.应用已经过期或者新版本未更新,未进行安全配置
4.错误处理机制披露了大量敏感信息,对更新的系统,禁用或不安全配置安全功能
防范:
1.按照加固手册加固
2.临时文件要删除
3.搭建最小化平台(这个我还不了解,可以自行学习)
7.跨站脚本攻击---XSS
跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表CSS(Cascading Style Sheets)的缩写混淆故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击!(这里吐槽csdn不登录没办法复制)
三个类型:
1.反射型
2.存储型
3.DOM型
懒狗时间:
我也不是很熟悉所以就不妄议了。
8.不安全的反序列化漏洞
应用程序在反序列化数据对象时,执行了攻击者传递的恶意数据对象,由于在反序列化时会调用一些魔术方法,如果魔术方法中包含了一些危险函数或者方法就可被利用执行敏感操作。
反序列化不必多说了,其实我觉得反序列化基础是我讲的内容里最多最细的那几个了。建议看一下视频后再做相应题目或者漏洞练手。
这里给出本站内xenny的php序列化和反序列化教程教程:
https://www.bilibili.com/video/BV1tv411y7DA/?spm_id_from=333.337.search-card.all.click
以及本人有关反序列化的题目解析:
由简到难:
https://www.bilibili.com/read/cv18094700/
https://www.bilibili.com/read/cv18129820/
https://www.bilibili.com/read/cv18660727/
防范:
对数据对象签名,并作完整检查
数据对象中的数据做严格的类型检查,限制一部分恶意攻击
隔离反序列化操作环境
减少危险函数或者方法的使用
9.使用含有已知漏洞的组件
在做题或者渗透的时候可以先看版本,如果你对漏洞熟悉且他的版本不是很稳定的话很容易找到对应版本的漏洞
原理:
1.软件易受攻击,不再支持或者已经过时
2.没有对更新的升级过的或者打过补丁的组件进行兼容性测试
防范:
及时更新、修复组件漏洞
移除不再使用的依赖组件
10.日志记录和监控不足导致的风险
对于日志的监控不足,造成攻击者攻击系统、应用、盗取数据等操作无法被发现和追查。
影响:
无法判断安全事件的发生
无法判断和修复漏洞
导致再次被入侵
防范:
1.确保登录,访问,输入验证失败能记录到日志中,以便分析用户
2.确保日志能被集中日志管理
3.确保高额交易有完整性控制的审计信息
4.建立有效的监控和告警机制
到后面可以发现很多都比较简单,其实是因为大点很多,就像高等数学看着每章题目很少。可是知识点一拉出来就巨多,当然也因为我饿了,所以写到后面比较快,以后应该会慢慢更新。
希望我的内容能帮到你,那么,期待我们下一集再见!