,构造闭合,在div里面通过我们的DOM的方法去获取到这个输入,然后再输出到div里面,但是它输入后既不会在URL里面,也不会被后台存储,因此在该场景下比较鸡肋。另一种场景就是,第一次输入后,会把输入的内容显示在URL中,然后后台把从URL中获取信息,将其赋值给a标签,点一下a标签,就会把其中的内容写到div里面,点击div对应的字段,即可执行脚本。同样也是先输入一些单引号双引号尖括号等特殊字符,submit之后,被原样输出,说明存在XSS漏洞,如。_">
赞
踩
目录
Cross-Site Scripting:跨站脚本漏洞
Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;
XSS的危害
XSS攻击流程图
XSS常见几种漏洞
判断
输入特殊字符后,发现并没有对输入进行限制,说明存在XSS漏洞。
在查询接口,先用设置--更多工具--web开发者工具将输入框的限制长度改大(将20改大)
注入“恶意代码”,<script>alert('xss')</script>(js中的弹窗函数)
即出现弹窗
post型也是如此,只不过get型是以URL的形式提交数据,post型是以表单的形式来提交的。
简单认识一下存储型XSS
同样也是先输入一些单引号双引号尖括号等特殊字符,submit之后,被原样输出,说明存在XSS漏洞,如
查看页面源代码,可以看到
输入的特殊字符被原封不动的输出在p标签里,没有做任何过滤和转移的处理。
在留言板中,当留言以后,即使刷新页面,留言也仍然存在,原因是被后台存起来了,存到数据库里了,或者是存到配置文件里了(右键--查看页面源码--control+f可以进行关键字搜索搜索)
最后在留言板输入恶意代码,在前端就会执行。以后,每进入这个页面,恶意代码都会执行一次,成为永久型XSS.
DOM可以理解成访问HTML的一个标准接口,DOM在前端提供了一个通过js对整个HTML去进行操作的这么一个接口,它是前端的操作接口,和后端没有数据的交互。输入内容#'οnclick="alert(111)">,构造闭合,在div里面通过我们的DOM的方法去获取到这个输入,然后再输出到div里面,但是它输入后既不会在URL里面,也不会被后台存储,因此在该场景下比较鸡肋。
另一种场景就是,第一次输入后,会把输入的内容显示在URL中,然后后台把从URL中获取信息,将其赋值给a标签,点一下a标签,就会把其中的内容写到div里面,点击div对应的字段,即可执行脚本
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。