security
2019-06-14 15:55:32 31 举报
AI智能生成
登录查看完整内容
security
作者其他创作
大纲/内容
web安全
常用攻击方式
文件上传
原理:攻击者利用程序缺陷绕过系统对文件的验证与处理策略将恶意程序上传到服务器并获得执行服务器端命令的能力
危害
如果恶意攻击者通过利用上传漏洞上传一些 以 PHP、ASP、JSP脚本为内容的文件(webshell)
1: 控制整个网站程序
2:执行系统命令
3: 获取数据库链接,进行数据库危险操作
测试方法
1: 安全工具扫描
2: 手工测试
防御方法
1: 白名单检查文件扩展名,禁止上传危险的文件类型,如jsp jar war等,上传文件要保存的文件名和目录名由系统根据时间生成,不允许用户自定
2: 上传文件的保存目录不可执行,不能上传到tomcat apache等软件容器里,避免利用容器编译运行程序
3: 隐藏上传目录
文件下载
原理:服务器端应用由于业务需要,有时会提供用户访问服务器资源的功能,例如文件下载等。当应用未对用户提交的路径等参数进行校验,并且该路径在用户权限范围内,可导致非预期的文件访问行为,甚至可访问服务器任意文件,此类安全缺陷称为“文件下载漏洞”
1: 读取web应用配置文件,获得用户名、密码等信息,可能导致web应用、服务器、其他应用系统被攻击者控制
2: 攻击者进行穷举猜测或结合目录枚举等漏洞获取服务器资源,可能导致备份文件、数据库敏感数据、应用源代码及其他敏感信息泄露
1: 权限校验(请求参数、cookie等、编码数据解码后处理)。Java中可以使用getCanonicalPath方法得到解析后的路径,再与预期路径对比判断其合法性;PHP可以配置open_basedir = /dir/,将用户文件访问限制在指定的区域。
2: 过滤(白名单[0-9a-zA-Z]、黑名单../等)
3: 文件路径或文件数据直接存储在数据库(杜绝跨目录访问)
sql注入
原理:通过把sql命令插入到form表单或者网址的query参数字符串部分,最后达到欺骗服务器执行恶意的sql命令
1:拖库。数据库数据泄露,数据安全事件。
2: 利用select \"<?php @eval($_POST[value])>\" into outfile \"F:\\\\www\\\\test.php\",生成可输入脚本的文件
1:sqlmap(一款用来检测与利用SQL注入漏洞的免费开源工具)
2: 手动测试,盲注
3: fuzzing测试。模糊测试,是一种软件测试技术
4: 安全工具扫描
1:参数化查询(预编译,Java,PrepareStatement()),可彻底杜绝SQL注入
2: 过滤(白名单、黑名单)
3: 限制应用用户数据库操作权限
4: 输入内容格式限制(类型、长度)
5: 使用框架(Mybatis、IBatis等)
XSS
名称:Cross-site scripting(跨站脚本攻击)
原理:当程序在解析XML输入时,允许引用外部实体,导致能够引用一个外部恶意文件
1:执行系统命令/代码
2: 内网端口探测
3: 文件读取
4: 攻击内网服务
5: DDOS攻击
1: 手动测试
1: 禁用xml解析外部实体
2: 过滤用户提交的xml数据(过滤关键词:<!DOCTYPE,<!ENTITY,SYSTEM,PUBLIC)
3: 只解析特定可信的公用外部实体
XEE
原理: 当应用程序在发送给浏览器的页面中包含用户提供的数据,但没有经过适当验证和转义,在用户的浏览器中执行攻击者定制的脚本。
危害:攻击者在受害者浏览器中执行脚本以劫持用户会话,插入恶意内容,重定向用户,使用恶意软件劫持用户浏览器等。结合其他漏洞产生危害,比如结合CSRF攻击实现用户cookie的大面积盗取。
漏洞分类:存储型,反射型,DOM型
2: fuzzing测试
3: 安全工具扫描
1: 输入过滤(过滤,拦截,黑白名单)
2: 输出编码/转义
3: cookie增加HttpOnly属性
远程代码执行/代码注入
1:用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,
2:可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。漏洞被利用,可导致任意
3:代码在服务器主机端执行,造成服务器权限被窃取、敏感信息泄漏、重要业务数据被破坏等安全风险。
Java反序列化漏洞、OS命令注入等
2: 安全工具扫描
限制对应目录的执行权限
敏感信息泄漏
原因
1: 用户敏感信息未脱敏;
2: 服务端信息泄露(错误信息提示、目录泄露、日志文件、硬编码、常见地址、端口暴露等);
3: 客户端敏感信息泄露(注释代码未删除、前后端展示信息不一致等);
4: 外部github等第三方代码托管;
1: 用户数据泄露风险;
2: 泄露公司源码、服务端敏感信息,机密数据;
1: 用户敏感信息脱敏;
2: 限制服务端数据访问权限;
3: 禁止公司数据存放在外部平台;
4: 加强宣导,提升员工安全意识;
其它安全防范
1: 不要使用超级用户运行web服务,对于apache、tomcat等web服务器,安装后要以系统用户或指定权限的用户运行,如果系统中被植入了asp、php、jsp等木马程序文件,以超级用户身份运行,webshell提权后获得超级用户的权限进而控制整个系统和计算机。
2: 服务器的安全和web服务器的安全 A、服务器做好各项安全设置,病毒和木马检测软件的安装(注:webshell的木马程序不能被该类软件检测到),启动防火墙并关闭不需要的端口和服务。 B、提升web服务器的安全设置 C、对以下命令进行权限控制(以windows为例): cmd.exe net.exe net1.exe ping.exe netstat.exe ftp.exe tftp.exe telnet.exe
3:定期对部署环境进行升级,对于部署的容器,如tomcat apache定时升级,对存在的安全问题进行防御
4:对开源插件的使用要谨慎,了解其漏洞并做相应的防范,减少对开源系统的使用
5: 如对于网上公开的框架漏洞要及时升级修复,如struts2远程命令执行漏洞等
其它web攻击方式
CSRF
名称:Cross-site request forgery(跨站请求伪造)
原理:通过伪装来自受信任用户的请求来利用受信任的网站
危害:攻击者可以让受害者用户修改任何允许修改的数据,执行任何用户允许的操作,例如修改密码,登录注销等
SSRF
名称:Server-side Request Forgery(服务端请求伪造)
原理:SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。
1:可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;
2: 攻击运行在内网或本地的应用程序(比如溢出);
3: 对内网web应用进行指纹识别,通过访问默认文件实现;
4: 攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);
5: 利用file协议读取本地文件等。
DDOS攻击
原理:通过大量恶意流量占用带宽和计算资源以达到瘫痪对方网络的目的
1:被攻击主机无法与外界通信;
2: 无法及时响应正常用户;
3: 被攻击主机挂起甚至死机;
4: 应用生产文件无法保存;
短信验证码漏洞
绕过短信验证码、短信轰炸
0 条评论
回复 删除
下一页