攻击方式

利用输出值转义漏洞

  • 跨站脚本攻击(XSS)

  • SQL注入攻击

  • OS命令注入攻击

  • HTTP首部注入攻击

  • 邮件首部注入攻击

  • 文件目录遍历攻击

利用设置或设计缺陷

  • 强制游览

  • 开放重定向

  • 不正确的错误消息处理

利用会话管理疏忽

  • 跨站请求伪造(CSRF)

  • 会话劫持

  • 会话固定攻击

其他漏洞

  • 点击劫持(界面伪装)

  • DoS攻击

  • 密码破解

跨站脚本攻击

形式

  • 直接脚本植入

  • 埋置脚本陷阱

影响

  • 利用虚假输入表单骗取用户个人信息

  • 窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求

  • 插入伪造的文章或图片

案例

获取用户账号密码

获取用户cookie信息

防御

  • 设置X-XSS-Protection头

  • 对cookie中设置httponly

  • xss filter(检查输入,设置白名单)

  • 输出检查(编码、转义,常用编码:html编码,js编码,16进制等)

  • 针对不同位置的输出,使用不同的处理方式

  • 处理富文本

  • header中使用content-Sencurity-Policy字段,规定请求js的域名白名单(CSP策略)

跨站请求伪造

形式

  • 通过设置好的陷阱,强制对认证的用户进行非预期的状态更新

影响

  • 利用已通过认证的用户权限更新设定信息等

  • 利用已通过认证的用户权限购买商品

  • 利用已通过认证的用户权限在留言板上发表言论

案例

防御

  • 检查Referer字段

  • 添加校验token

  • 在 HTTP头中自定义属性并验证(改动很大,代价较高)

点击劫持

形式

  • 利用透明按钮或链接做陷阱,覆盖在Web页面上,诱使用户点击

影响

  • 用户在不知情的情况下,执行了非预期和破坏性的操作

案例

防御

  • 设置X-FRAME-OPTIONS头

  • 对于Firefox的用户,使用NoScript扩展

  • javascript禁止内嵌(有局限性)

会话劫持

形式

  • 通过非正规的生成方法推测会话ID

  • 通过窃听或XSS攻击盗取会话ID

  • 通过会话固定攻击强行获取会话ID

影响

  • 伪装成用户登录,进行破坏性操作

案例

防御

  • 对cookie中设置httponly,防止会话id被窃取

  • 验证HTTP头部信息,检测请求一致性

  • 关闭透明化SessionID(不用Cookie存放SessionID,用URL传递)

  • 定时更新Session名称

会话固定攻击

形式

  • 预先准备好会话id,诱使用户使用和认证,实现身份窃取

影响

  • 伪装成用户登录,进行破坏性操作

案例

防御

  • 每当用户登陆的时候就进行重置sessionID

  • sessionID闲置过久时,进行重置sessionID

  • 大部分防止会话劫持的方法对会话固定攻击同样有效(结合使用)

DoS攻击

形式

  • 集中请求,造成服务器资源过载(服务器很难分辨正常请求和攻击请求)

  • 攻击安全漏洞使服务停止

影响

  • 造成web应用服务瘫痪

案例

防御

  • 隐藏服务器的真实IP地址

  • 过滤不必要的服务和端口

  • 异常流量的清洗过滤

  • 分布式集群防御

SQL注入攻击

形式

  • 利用查询参数,干扰SQL执行

影响

  • 非法查看或篡改数据库内的数据

  • 规避认证

  • 执行和数据库服务器业务关联的程序等

案例

数据库表结构

查询干扰

防御

  • 不要使用动态SQL

  • 不要将敏感数据保留在纯文本中

  • 限制数据库权限和特权

  • 避免直接向用户显示数据库错误

  • 对访问数据库的Web应用程序使用Web应用程序防火墙(WAF)

  • 定期测试与数据库交互的Web应用程序

  • 将数据库更新为最新的可用修补程序

OS命令注入攻击

形式

  • 利用命令参数,干扰OS执行

影响

  • 窃取和破坏操作系统文件

案例

防御

  • 采用白名单,或使用正则表达式进行过滤和校验

  • 不要让用户可以直接控制eval()、system、exec、shell_exec等函数的参数

  • 在进入执行命令函数和方法前,对变量进行过滤,对敏感字符进行转义

HTTP首部注入攻击

形式

  • 通过在响应首部字段内插入换行,添加任意响应首部或主体

影响

  • 设置任何Cookie信息

  • 重定向至任意URL

  • 显示任意的主体(HTTP响应截断攻击)

案例

首部注入攻击

响应截断攻击

防御

  • 创建安全字符白名单,只接受白名单中的字符出现在HTTP响应头文件中

  • 在将数据传送到http响应头之前,删除所有的换行符

  • 使用服务器端验证机制,并禁止全部用户在任何与响应头有关的输入请求中使用回车换行符(即CRLF)

  • 对用户的数据进行合法性校验,对特殊的字符进行编码

  • 将用户数据放入uri之前应充分过滤,避免特殊字符

邮件首部注入攻击

形式

  • 利用非法内容,实现恶意注入

影响

  • 对任意邮件地址发送广告邮件或病毒邮件

案例

防御

  • 使用正则表达式来过滤用用户提交的数据

  • 使用外部组件和库,提供防范这个问题像 ZEND mail、PEAR mail和swift mailer

  • ModSecurity可以阻止服务器级别的电子邮件注入

文件目录遍历攻击

形式

  • 通过非法截断其目录路径,实现文件访问

影响

  • 非法浏览、篡改或删除Web服务器上的文件

案例

防御

  • 合理配置Web服务器的目录权限

  • 尽可能采用白名单的形式,验证所有的输入

  • 对用户的输入进行验证,特别是路径替代字符如“../”和“~/”

  • 当程序出错时,不要显示内部相关配置细节

  • 净化数据:对用户传过来的文件名参数进行硬编码或统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝

  • 使用chrooted环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,使其即使越权也在访问目录之内

web攻击与防御的更多相关文章

  1. 常见【十种】WEB攻击及防御技术总结

    最近参加了一个WEB安全培训,感觉WEB攻击跟防御都是挺有意思的.以下总结比较简短,仅供观赏哈. 一.XSS攻击 [介绍] xss攻击是跨站脚本攻击,例如在表单中提交含有可执行的javascript的 ...

  2. web攻击和防御措施

    1.SQL注入:参照下面的链接 http://www.cnblogs.com/chenhaoyu/p/8758888.html 2.跨网站脚本攻击(Cross Site Scripting, XSS) ...

  3. 常见web攻击以及防御

    xss攻击: 跨站脚本攻击,攻击者在网页中嵌入恶意代码,当用户打开网页,脚本程序便开始在客户端的浏览器上执行,以盗取客户端cookie,用户名密码,下载执行病毒木马程序,甚至是获取客户端admin权限 ...

  4. web攻击之零:WEB攻击及防御技术汇总

    一.XSS攻击 [介绍] xss攻击是跨站脚本攻击,例如在表单中提交含有可执行的javascript的内容文本,如果服务器端没有过滤或转义这些脚本,而这些脚本由通过内容的形式发布到了页面上,这个时候如 ...

  5. web攻击与防御技术--SQL注入

    sql注入是WEB安全中比较重要而复杂的一个东西.而且危害性比较大. 一般来讲SQL注入的话首先要识别注入点.一个是看能不能注入另外一个是看是什么类型的注入比如说字符,数字,搜索(?)等等 GET.P ...

  6. web攻击与防御技术-平台搭建与暴力破解

    平台搭建是首先安装xampp并把pikachu的压缩文件解压在HTdocs下 然后 点击后显示 安装成功 首先随便输入一些东西 然后用burpsuite抓包 对username和password字段进 ...

  7. 简单总结几种常见web攻击手段及其防御方式

    web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...

  8. 简单地总结几种常见web攻击手段及其防御方式

    web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...

  9. web安全-XSS攻击及防御

    XSS攻击的原理 xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻 ...

随机推荐

  1. [兴趣使然]用python在命令行下画jandan像素超载鸡

    下午刷煎蛋的时候看到 Dthalo 蛋友发的系列像素超载鸡,就想自己试试用python脚本画一个,老男孩视频里的作业真没兴趣,弄不好吧没意思,往好了写,自己控制不好,能力不够. 所以还是找自己有兴趣的 ...

  2. 题解 SP375 【QTREE - Query on a tree】

    \[ \texttt{Preface} \] 这题在 \(\text{Luogu}\) 上竟然不能交 \(C++\) ,会一直 \(Waiting\) ,只能交非 \(C++\) 的语言. 所以打完了 ...

  3. 《C语言》—— 数组详解

    书籍使我变成了一个幸福的人,使我的生活变成轻松而舒适的诗.--高尔基 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues. https://github.com/midou-tec ...

  4. 大数据篇:Zookeeper

    Zookeeper 1 Zookeeper概念 Zookeeper是什么 是一个基于观察者设计模式的分布式服务管理框架,它负责和管理需要关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Z ...

  5. who 命令

    1)显示系统启动时间 [root@node1 ~]# who -b 系统引导 2020-01-10 11:41 2)显示系统当前的运行级别 [root@node1 ~]# who -r 运行级别 3 ...

  6. Vue实战之【企业开发常见问题】

    1.vue框架使用注意事项和经验 1.1 解决Vue动态路由参数变化,页面数据不更新 问题描述: 遇到动态路由如:/page/:id 从/page/1 切换到 /page/2 发现页面组件没有更新 解 ...

  7. windows本地安装以及使用Jenkins

    首先保证本地已安装JDK,Jenkins是需要Java开发的,需要JDK运行环境,此处不提供,网上一大把. 一.Jenkin安装: 下载Jekins,到官网下载,https://jenkins.io/ ...

  8. 一个sio.c的实现及遇到的多任务执行问题

    https://sourceforge.net/p/cadcdev/lwip/ci/491e00038f26dc5d775f120aa49519a066819ebf/tree/kos/sio.c /* ...

  9. eslint报"Extra semicolon"错误的解决

    手机赚钱怎么赚,给大家推荐一个手机赚钱APP汇总平台:手指乐(http://www.szhile.com/),辛苦搬砖之余用闲余时间动动手指,就可以日赚数百元 使用 vue-cli 构建的项目,模版是 ...

  10. 【STM32H7教程】第62章 STM32H7的MDMA,DMA2D和通用DMA性能比较

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第62章       STM32H7的MDMA,DMA2D和通 ...