XSS漏洞概述

XSS漏洞概述
XSS漏洞概述
跨站脚本(Cross Site Scripting)攻击,一直是非常热门的WEB漏洞,在OWASP的TOP10里面排前三
没有对web前端的输入边界进行严格的过滤是XSS漏洞形成的主要原因。
攻击着可以通过构造脚本语句使得输入的内容被当作HTML的一部分来执行,当用户访问到该页面
时,就会触发该恶意脚本,从而获取用户的敏感数据(比如cookie数据)。
XSS漏洞发生在web前端,主要对网站用户造成危害,并不会直接危害服务器后台数据。
XSS漏洞概述-XSS漏洞攻击流程
XSS漏洞概述_第1张图片
XSS漏洞概述-XSS类型
 反射型XSS(Reflected XSS)
通过XSS漏洞改造带有攻击脚本的URL,发送URL给目标,触发恶意脚本,一次性,所见即所得
一般出现在查询类页面等。

 存储型XSS (Stored XSS)
通过XSS漏洞将带恶意脚本注入到服务器后台(数据库或者文件中),访问到该页面触发恶意脚本,永久性
一般出现在留言板等。

 DOM型XSS (DOM-based XSS)
DOM(Document Objeet Model)—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)
的一种漏洞,它是通过修改页面的DOM节点而形成的。
Dom xss也是一种反射性。

反射型和存储型的区分是脚本是否保存在服务器上,而DOM-xss是通过修改页面的DOM节点来形成的XSS。

XSS漏洞-测试过程
① 在目标站点上找到输入点,比如查询接口,留言板等;
② 输入一个“唯一”字符,点击提交后,查看当前状态下的源码文件;
③ 通过搜索定位到唯一字符,结合唯一字符前后语法构造script,并合理的对HTML标签进行闭合;
④ 提交构造的script,看是否可以成功执行,如果成功执行则说明存在XSS漏洞;
TIPS:
1.一般查询接口容易出现反射型XSS,留言板容易出现存储型XSS;
2.由于后台可能存在过滤措施,构造的script可能会被过滤掉,而无法生效,或者环境限制了执行(浏览器);
3.通过变化不同的script,尝试绕过后台过滤机制;
4.最快的发现XSS漏洞的方法还是通过web漏洞扫描工具,如Nesuss, AWVS,Appscan等;
用dvwa作例子,先设置低级别测试反射性XSS

XSS漏洞概述_第2张图片

输入111返回结果
查看代码


在pre标签中

先用 测试
XSS漏洞概述_第3张图片
在低级别下测试成功,分析一下这个xss源代码
XSS漏洞概述_第4张图片
在这里是没有作任何过滤的。
接下来在中级别下进行测试,一样的输入
XSS漏洞概述_第5张图片

猜想这里可能存在过滤script的语句,那么构造一个 ipt>alert("xss222")
Hello World!
本例演示 getElementById 方法!
来自 intro 段落的文本:Hello World!
下面是演示代码
DOM XSS漏洞代码:
存储型XSS ,现在用dvwa进行测试,先使用低级别
过滤方面来说其实跟反射性的差不多,只是这个存储型是长期存在的(不被管理员发现)
先上图
XSS漏洞概述_第12张图片
发现 name行限制输入10个字,message行不限制,猜想name行限制10个字符是通过前端
实现,那么这个时候直接打开查看元素功能修改限制实现绕过。
XSS漏洞概述_第13张图片
修改成1000,确保足够位置输入
在name行输入测试 message任意输入
XSS漏洞概述_第14张图片
成功执行。这样代码保留在后代,如果用户访问到这里,或者用户点击这类链接,那么就中招了。
下面分析下代码
XSS漏洞概述_第15张图片
这里发现对message执行了一个stripslasnes函数,就是对 ‘/’进行清除,阻止恶意代码。
下面对中级别进行测试, 一样的用刚刚代码试试
XSS漏洞概述_第16张图片
发现失败了,

XSS防范措施
1.对前端输入做过滤和编码;
---比如之允许输入指定类型的字符,比如电话号格式,注册用户名限制等等,输入检查需要在服
务器端完成,在前端完成的限制是容易被绕过的;
---对特殊字符进行过滤和转义;
2.对输出做过滤和编码:在变量值输出到前端的HTML时进行编码或转义;
3. 给关键的cookie使用http-only;

   


你可能感兴趣的:(XSS漏洞概述)