XSS漏洞概述
XSS漏洞概述
跨站脚本(Cross Site Scripting)攻击,一直是非常热门的WEB漏洞,在OWASP的TOP10里面排前三
。
没有对web前端的输入边界进行严格的过滤是XSS漏洞形成的主要原因。
攻击着可以通过构造脚本语句使得输入的内容被当作HTML的一部分来执行,当用户访问到该页面
时,就会触发该恶意脚本,从而获取用户的敏感数据(比如cookie数据)。
XSS漏洞发生在web前端,主要对网站用户造成危害,并不会直接危害服务器后台数据。
XSS漏洞概述-XSS漏洞攻击流程
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
对
输入111返回结果
查看代码
在pre标签中
先用 测试
在低级别下测试成功,分析一下这个xss源代码
在这里是没有作任何过滤的。
接下来在中级别下进行测试,一样的输入
猜想这里可能存在过滤script的语句,那么构造一个 ipt>alert("xss222")ipt>
测试成功,接下来分析下代码
发现使用了一个php中的str_replace函数,对name传入的值进行