专业微网站开发,英山县城乡建设规划局网站,临沂做网站电话,wordpress开启memcached目录
前言
XSS概念及分类
反射型XSS(非持久性XSS)
存储型XSS(持久型XSS)
如何测试XSS漏洞
方法一#xff1a;
方法二#xff1a;
XSS漏洞修复
原则#xff1a;不相信客户输入的数据
处理建议
资料获取方法 前言
以前都只是在各类文档中见到过XSS#xff0c;也进…目录
前言
XSS概念及分类
反射型XSS(非持久性XSS)
存储型XSS(持久型XSS)
如何测试XSS漏洞
方法一
方法二
XSS漏洞修复
原则不相信客户输入的数据
处理建议
资料获取方法 前言
以前都只是在各类文档中见到过XSS也进行过相关的学习但是都是一知半解过了一段时间就忘了。
前几天我们收到了了一份标题为《XX账号昵称参数中存在存储XSS漏洞》的报告文档来源是一个叫漏洞盒子的机构看它的官方介绍是一个互联网安全测试众测平台。
第一次在实际工作中遇到相关的问题所以决定再系统的学习一下此篇为学习记录。 XSS概念及分类
XSS 全称(Cross Site Scripting)直译过来就是跨站脚本攻击,是Web程序中最常见的漏洞。
有点类似于SQL注入可以简单理解为“HTML注入”把用户输入的数据当做脚本执行,进而达到想要的目的。而这种目的通常是恶意的,比如获取用户的Cookie导航到恶意网站,携带木马等。
XSS攻击可以根据攻击发生的实时性分为以下几类
反射型XSS(非持久性XSS)
简单说可充当执行脚本的恶意数据由用户从“外部”输入通过提交输入的方式“嵌入”到网页url中。
简单举例 针对存在XSS攻击的某个网页输入框中输入“恶意数据”并提交通常这类提交操作对应着一个get请求当我们把这个请求发送给其他用户并让用户在web浏览器中打开请求这时就会把恶意数据当作脚本再次执行比如发送cookie等信息到指定的邮箱等。
存储型XSS(持久型XSS)
类似反射型XSS,不同的是其“恶意数据”本身就是包含在网页源码中、或者自动从服务器内部读取并“嵌入”网页中。
简单举例 黑客在某个论坛写了一篇文章并在文章中写入了用会充当脚本执行的数据比如一段恶意javascript代码这样所有浏览该文章的用户都会自动在其浏览器中执行这段恶意代码。
非持久性XSS漏洞一般威胁的是用户个体持久型XSS所威胁的对象可能是是大量的用户. 如何测试XSS漏洞
站在一个测试的角度我们要怎么来对XSS漏洞进行测试呢
方法一
查看代码查找关键的变量, 客户端将数据传送给Web 服务端一般通过三种方式 Querystring, Form表单以及cookie. 例如在ASP的程序中通过Request对象获取客户端的变量
%
strUserCode Request.QueryString(“code”);
strUser Request.Form(“USER”);
strID Request.Cookies(“ID”);
%假如变量没有经过htmlEncode处理 那么这个变量就存在一个XSS漏洞
方法二
准备测试脚本:
/scriptalert(document.cookie)/script!--
scriptalert(document.cookie)/script!--
onclickalert(document.cookie)在网页中的Textbox或者其他能输入数据的地方输入这些测试脚本看能不能弹出对话框能弹出的话说明存在XSS漏洞 XSS漏洞修复
原则不相信客户输入的数据 XSS之所以会发生 是因为用户输入的数据变成了代码。所以我们需要对用户输入的数据进行HTML Encode处理。 将其中的中括号、“单引号”、“引号”之类的特殊字符进行编码。 攻击代码不一定在script/script中所以要做好以下措施
将重要的cookie标记为http only, 这样的话Javascript中的document.cookie语句就不能获取到cookie了. 只允许用户输入我们期望的数据。例如年龄的textbox中只允许用户输入数字。 而数字之外的字符都过滤掉。对数据进行Html Encode 处理
过滤或移除特殊的Html标签 例如: script, iframe , lt; for , gt; for , quot for过滤JavaScript 事件的标签。 例如 onclick, onfocus 等等。处理建议 1、输入过滤在用户输入的参数进行过滤过滤掉’’,’’等符号或者scriptinputonerror等标签。 2、输出过滤将用户输入内容作为页面内容的时候必须经过检测与过滤。使用HTMLEncode将以下特殊字符进行转码 资料获取方法
【留言777】 各位想获取源码等教程资料的朋友请点赞 评论 收藏三连
三连之后我会在评论区挨个私信发给你们~