-
Notifications
You must be signed in to change notification settings - Fork 420
/
items.js
5331 lines (5330 loc) · 427 KB
/
items.js
1
2
3
4
5
6
7
8
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
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
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
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
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* Items - the set of available items and vectors */
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define([], factory);
} else if (typeof exports === 'object') {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory();
} else {
// Browser globals (root is window)
root.items = factory();
}
}(this, function () {
return [
{ /* ID 1 - XSS via formaction - requiring user interaction (1) */
'id' : 1,
'category' : 'html5',
'name' : {
'en' : 'XSS via formaction - requiring user interaction (1)',
'ja' : 'formaction\u7d4c\u7531\u3067\u306eXSS - \u30e6\u30fc\u30b6\u306e\u4ecb\u5728\u304c\u5fc5\u8981',
'ru' : 'Пассивный скриптинг через formaction (1)',
'cs' : 'XSS pomocí formaction - vyžaduje uživatelskou interakci (1)',
'de' : '',
'tr' : 'formaction ile XSS - kullanıcı etkileşimi gerektiren (1)',
'zh' : '通过formaction属性进行XSS - 需要用户进行交互 (1)'
},
'data' : '<form id="test"></form><button form="test" formaction="%js_uri_alert%">X</button>',
'trigger' : 'document.getElementsByTagName("button")[0].click()',
'description': {
'en' : 'A vector displaying the HTML5 form and formaction capabilities for form hijacking outside the actual form.',
'ja' : 'HTML5\u306eform\u3068formaction\u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u65e2\u5b58\u306eform\u3092\u5916\u5074\u304b\u3089\u4e57\u3063\u53d6\u308b\u624b\u6cd5',
'ru' : 'Вектор демонстрирует возможности HTML 5 атрибутов form и formaction по захвату внешней формы.',
'cs' : 'Ukázka možností zneužití form a formaction k převzetí kontroly z místa mimo formulář',
'de' : '',
'tr' : 'Bu vektör HTML5 form ve formaction yetenekleri ile asıl form dışındaki formu hijack edebilmeyi gösterir.',
'zh' : '这个向量展示了通过HTML5的form和formaction从外部劫持表单的一种方法.'
},
'urls' : ['http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#attr-fs-formaction'],
'howtofix' : {
'en' : 'Don\'t allow users to submit markup containing "form" and "formaction" attributes or transform them to bogus attributes. Avoid "id" attributes for forms as well as submit buttons.',
'ja' : '\u0022form\u0022\u3068\u0022formaction\u0022\u5c5e\u6027\u3092\u542b\u3080\u8981\u7d20\u3092\u30e6\u30fc\u30b6\u306b\u5165\u529b\u3055\u305b\u306a\u3044\u3001\u3042\u308b\u3044\u306f\u305d\u308c\u3089\u306e\u5c5e\u6027\u3092\u7121\u52b9\u306a\u5024\u306b\u5909\u63db\u3059\u308b\u3053\u3068\u3002\u0022id\u0022\u5c5e\u6027\u306fform\u3060\u3051\u3067\u306a\u304fsubmit\u30dc\u30bf\u30f3\u306b\u3064\u3044\u3066\u3082\u5bfe\u5fdc\u3059\u308b\u3053\u3068\u3002',
'ru' : 'Не разрешайте пользовательскую разметку, содержащую атрибуты form и formaction или неправильные значения этих атрибутов. Избегайте атрибут id в формах, как и элементы ввода submit типа.',
'cs' : 'Nedovolte uživatelům vložit kód obsahující atributy "form" a "formaction" či jejich "zkomolené" tvary. Vyhněte se atributu "id" u formulářů i u odesílacích tlačítek.',
'de' : '',
'tr' : 'Kullanıcıların "form" ve "formaction" markup\'larını yollamaları engellenmeli veya bu özellikler kullanışsız hale getirilmelidir. Submit butonlarında olduğu gibi formlarda "id" özelliklerinden kaçının.',
'zh' : '不要让用户提交包含 "form" 和 "formaction"属性的标签.避免在form中出现id属性及提交按钮.'
},
'browsers' : {
'firefox' : ['4.0', 'latest'],
'opera': ['10.5', 'latest'],
'chrome': ['10.0', 'latest'],
'safari' : ['4.0.4', 'latest'],
'internet explorer' : ['10', 'latest (inside form element)']
},
'tags' : ['xss', 'html5', 'opera', 'chrome', 'firefox', 'formaction', 'javascript', 'button'],
'reporter' : '.mario'
},
{ /* ID 2 - XSS via x-imap4-modified-utf7 (1) */
'id' : 2,
'category' : 'charset',
'name' : {
'en' : 'XSS via x-imap4-modified-utf7 (1)',
'ja' : 'x-imap4-modified-utf7\u3092\u5229\u7528\u3057\u305fXSS (1)',
'ru' : 'XSS с использованием x-imap4-modified-utf7 (1)',
'cs' : 'XSS via x-imap4-modified-utf7 (1)',
'de' : '',
'tr' : 'x-imap4-modified-utf7 ile XSS (1)',
'zh' : '通过x-imap4-modified-utf7编码进行XSS (1)'
},
'data' : '<meta charset="x-imap4-modified-utf7">%js_utf7_alert_1%',
'description': {
'en' : 'This vector shows how UTF7 derivations can be used to generate very hard to detect XSS vectors in exotic charsets',
'ja' : '\u3053\u306e\u653b\u6483\u624b\u6cd5\u306f\u3001\u691c\u51fa\u304c\u975e\u5e38\u306b\u56f0\u96e3\u306a\u3001\u98a8\u5909\u308f\u308a\u306acharset\u306b\u3088\u308bXSS\u306e\u624b\u6bb5\u3068\u306a\u308a\u5f97\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002',
'ru' : 'Этот вектор показывает, как ответвление кодировки UTF7 может быть использовано для создания очень труднообнаружимых XSS векторов.',
'cs' : 'Tento kód ukazuje, jak použít UTF7 k vytvoření velmi obtížně dešifrovatelného XSS útoku',
'de' : '',
'tr' : 'Bu vektör UTF-7 türevlerinin tespiti zor egzotik karakter kodlamalarıyla türetilmiş XSS vektörleri için nasıl kullanılabileceğini göstermektedir.',
'zh' : '这个向量说明UTF-7编码能产生很多你意想不到的XSS向量.'
},
'urls' : [],
'howtofix' : {
'en' : 'Make sure no <META> tags can be injected and the website is delivered with a charset.',
'ja' : '\u653b\u6483\u8005\u306b\u3088\u308b\u003cmeta\u003e\u8981\u7d20\u306e\u633f\u5165\u304c\u4e0d\u53ef\u80fd\u306a\u3053\u3068\u3001web\u30b5\u30a4\u30c8\u304ccharset\u3092\u6b63\u3057\u304f\u9001\u51fa\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u3002',
'ru' : 'Убедитесь, что тег <META> не может быть внедрен и страницы сайта отправляются с указанием кодировки.',
'cs' : 'Ujistěte se, že do stránky nemůže být vložen žádný <META> tag a že webová stránka má definovanou znakovou sadu.',
'de' : '',
'tr' : 'Websitesinin karakter kodlaması ile sunulduğundan ve herhangi bir <META> etiketinin enjekte edilmediğinden emin olun.',
'zh' : '确保没有被注入<META>标签,及网站已申明了上下文的编码方式.'
},
'browsers' : {
'firefox': [
'2.x', '3.6.28'
]
},
'tags' : ['xss', 'utf7', 'firefox', 'charset'],
'reporter' : '.mario'
},
{ /* ID 3 - XSS via x-imap4-modified-utf7 (2) */
'id' : 3,
'category' : 'charset',
'name' : {
'en' : 'XSS via x-imap4-modified-utf7 (2)',
'ja' : 'x-imap4-modified-utf7\u3092\u5229\u7528\u3057\u305fXSS (2)',
'ru' : 'XSS с использованием x-imap4-modified-utf7 (2)',
'cs' : 'XSS via x-imap4-modified-utf7 (2)',
'de' : '',
'tr' : 'x-imap4-modified-utf7 ile XSS (2)',
'zh' : '通过x-imap4-modified-utf7编码进行XSS (2)'
},
'data' : '<meta charset="x-imap4-modified-utf7">%js_utf7_alert_2%',
'description': {
'en' : 'This vector shows how UTF7 derivations can be used to generate very hard to detect XSS vectors in exotic charsets',
'ja' : '\u3053\u306e\u653b\u6483\u624b\u6cd5\u306f\u3001\u691c\u51fa\u304c\u975e\u5e38\u306b\u56f0\u96e3\u306a\u3001\u98a8\u5909\u308f\u308a\u306acharset\u306b\u3088\u308bXSS\u306e\u624b\u6bb5\u3068\u306a\u308a\u5f97\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002',
'ru' : 'Этот вектор показывает, как ответвление кодировки UTF7 может быть использовано для создания очень труднообнаружимых XSS векторов.',
'cs' : 'Tento kód ukazuje, jak použít UTF7 k vytvoření velmi obtížně dešifrovatelného XSS útoku',
'de' : 'Bu vektör UTF-7 türevlerinin tespiti zor egzotik karakter kodlamalarıyla türetilmiş XSS vektörleri için nasıl kullanılabileceğini göstermektedir.',
'zh' : '这个向量说明UTF-7编码能产生很多你意想不到的XSS向量.'
},
'urls' : [],
'howtofix' : {
'en' : 'Make sure no <META> tags can be injected and the website is delivered with a charset.',
'ja' : '\u653b\u6483\u8005\u306b\u3088\u308b\u003cmeta\u003e\u8981\u7d20\u306e\u633f\u5165\u304c\u4e0d\u53ef\u80fd\u306a\u3053\u3068\u3001web\u30b5\u30a4\u30c8\u304ccharset\u3092\u6b63\u3057\u304f\u9001\u51fa\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u3002',
'ru' : 'Убедитесь, что тег <META> не может быть внедрен и страницы сайта отправляются с указанием кодировки.',
'cs' : 'Ujistěte se, že do stránky nemůže být vložen žádný <META> tag a že webová stránka má definovanou znakovou sadu.',
'de' : '',
'tr' : 'Websitesinin karakter kodlaması ile sunulduğundan ve herhangi bir <META> etiketinin enjekte edilmediğinden emin olun.',
'zh' : '确保没有被注入<META>标签,及网站已申明了上下文的编码方式.'
},
'browsers' : {
'firefox': [
'2.x', '3.6.28'
]
},
'tags' : ['xss', 'utf7', 'firefox', 'charset'],
'reporter' : '.mario'
},
{ /* ID 4 - Self-including DOM Worker XSS */
'id' : 4,
'category' : 'dom',
'name' : {
'en' : 'Self-including DOM Worker XSS',
'ja' : '',
'ru' : 'Скриптинг в DOM с помощью объекта Worker.',
'cs' : 'XSS pomocí objektu Worker',
'de' : '',
'tr' : 'DOM Worker objesi ile XSS',
'zh' : '通过DOM Worker包含上下文本身进行XSS'
},
'data' : '0?<script>Worker("#").onmessage=function(_)eval(_.data)</script> :postMessage(importScripts(\'data:;base64,cG9zdE1lc3NhZ2UoJ2FsZXJ0KDEpJyk\'))',
'description': {
'en' : 'A self-including code snippet utilizing a DOM worker and firing a message event to itself causing script execution',
'ja' : '\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u5b9f\u884c\u306b DOM workers \u3068 message \u30a4\u30d9\u30f3\u30c8\u3092\u5229\u7528\u3057\u305f\u3001\u81ea\u8eab\u3092 include \u3059\u308b\u30b3\u30fc\u30c9',
'ru' : 'Исполнение кода происходит благодаря отсылке javascript-сообщения методом postMessage и приёму его на той же странице объектом Worker, к обработчику события onmessage которого привязана функция, запускающая метод eval.',
'cs' : 'Samovkládací kód používá DOM worker a poslání zprávy, která spustí vykonání skriptu',
'de' : '',
'tr' : 'Kendini dahil eden kod parçası bir DOM worker kullanarak ve kendisine betik çalıştırmak için bir mesaj tetikleyerek XSS\'e sebebiyet verir.',
'zh' : '这是一个self-including的例子,通过DOM worker包含上下文的方式触发事件引起脚本执行.'
},
'urls' : ['https://developer.mozilla.org/En/Using_web_workers'],
'howtofix' : {
'en' : '',
'ja' : '',
'ru' : '',
'cs' : '',
'de' : '',
'tr' : ''
},
'browsers' : {
'firefox': [
'3.5', '15.0'
]
},
'tags' : ['xss', 'dom', 'firefox', 'worker', 'self-inclusion', 'e4x'],
'reporter' : '.mario'
},
{ /* ID 5 - Firefox crypto object - hidden eval() */
'id' : 5,
'category' : 'dom',
'name' : {
'en' : 'Firefox crypto object - hidden eval()',
'ja' : 'Firefox crypto \u30aa\u30d6\u30b8\u30a7\u30af\u30c8 - \u96a0\u308c\u305f eval()',
'ru' : 'Объект crypto в Firefox - скрытый eval()',
'cs' : 'Firefox crypto object - skrytý eval()',
'de' : '',
'tr' : 'Firefox kripto objesi - saklı eval()',
'zh' : 'Firefox crypto 对象 - 隐式eval()'
},
'data' : '<script>crypto.generateCRMFRequest(\'CN=0\',0,0,null,\'%js_alert%\',384,null,\'rsa-dual-use\')</script>',
'description': {
'en' : 'This vector uncovers a hidden eval() inside the Firefox crypto object',
'ja' : 'Firefox crypto \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5185\u306b\u96a0\u3055\u308c\u305f eval\u0028\u0029 \u6a5f\u80fd\u3067\u3059\u3002',
'ru' : 'Этот вектор срывает покровы с объекта crypto в Firefox, выявляя внутри него скрытый eval().',
'cs' : 'Ukázka volání eval(), skrytého v objektu crypto ve Firefoxu',
'de' : '',
'tr' : 'Bu vektör Firefox\'un kripto objesi içindeki saklı olan eval() fonksiyonunu ortaya çıkartır.',
'zh' : '这个向量披露了火狐中crypto对象的一个隐式eval()'
},
'urls' : ['https://developer.mozilla.org/en/JavaScript_crypto'],
'howtofix' : {
'en' : '',
'ja' : '',
'ru' : '',
'cs' : '',
'de' : '',
'tr' : ''
},
'browsers' : {
'firefox': [
'2.x', '34.0'
]
},
'tags' : ['xss', 'dom', 'firefox', 'crypto', 'eval', 'csp', 'proprietary'],
'reporter' : '.mario'
},
{ /* ID 6 - Firefox setter based JavaScript execution */
'id' : 6,
'category' : 'javascript',
'name' : {
'en' : 'Firefox setter based JavaScript execution',
'ja' : 'Firefox\u306esetter\u306b\u3088\u308bJavaScript\u306e\u5b9f\u884c',
'ru' : 'Исполнение кода в Firefox с использованием setter',
'cs' : 'Spuštění kódu pomocí setterů ve Firefoxu',
'de' : '',
'tr' : 'Firefox\'da setter tabanlı JavaScript çalıştırma',
'zh' : '基于Firefox setter执行Javascript'
},
'data' : '<script>({set/**/$($){_/**/setter=$,_=1}}).$=%js_alert_only%</script>',
'description': {
'en' : 'Using setters on Gecko/Firefox to execute JavaScript without parenthesis',
'ja' : 'Gecko\u002fFirefox\u306esetter\u306b\u3088\u308b\u62ec\u5f27\u3092\u4f7f\u308f\u306a\u3044JavaScript\u306e\u5b9f\u884c',
'ru' : 'Применение setter`ов в Gecko/Firefox для выполнения JavaScript без использования круглых скобок.',
'cs' : 'Použití setterů v Gecko/Firefoxu k vykonání JavaScriptu',
'de' : '',
'tr' : 'Gecko/Firefox üzerinde setter\'lar ile parantezler kullanmadan JavaScript çalıştırmak için kullanılır.',
'zh' : '在Gecko/Firefox里可以使用setter间接调用Javascript函数,而不需要括号.'
},
'urls' : ['https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Working_with_Objects#Defining_Getters_and_Setters'],
'howtofix' : {
'en' : '',
'ja' : '',
'ru' : '',
'cs' : '',
'de' : '',
'tr' : ''
},
'browsers' : {
'firefox': [
'1.x', '3.6.28'
]
},
'tags' : ['xss', 'dom', 'firefox', 'setter', 'proprietary'],
'reporter' : '.mario'
},
{ /* ID 7 - Self-executing focus event via autofocus */
'id' : 7,
'category' : 'html5',
'name' : {
'en' : 'Self-executing focus event via autofocus',
'ja' : 'autofocus\u306b\u3088\u308bfocus\u30a4\u30d9\u30f3\u30c8\u3092\u5229\u7528\u3057\u305f\u81ea\u5df1\u5b9f\u884c',
'ru' : 'Автофокусировка как способ автоматического исполнения кода',
'cs' : 'Automatické vyvolání obsluhy fokusu pomocí autofocus',
'de' : '',
'tr' : 'autofocus ile kendiliğinden çalışabilir focus olayı',
'zh' : '通过autofocus属性执行本身的focus事件'
},
'data' : '<input onfocus=%js_write% autofocus>',
'description': {
'en' : 'This vector uses an input element with autofocus to call its own focus event handler - no user interaction required',
'ja' : 'autofocus \u5c5e\u6027\u3092\u6301\u3064 input \u8981\u7d20\u3092\u4f7f\u3063\u3066\u81ea\u8eab\u306efocus\u30a4\u30d9\u30f3\u30c8\u306e\u30cf\u30f3\u30c9\u30e9\u3092\u547c\u3073\u51fa\u3059\u624b\u6cd5\u3002\u30e6\u30fc\u30b6\u306e\u4ecb\u5728\u306f\u4e0d\u8981\u3002',
'ru' : 'Этот вектор использует тег input с атрибутом autofocus, чтобы вызвать свой собственный обработчик события фокусировки без взаимодействия с пользователем.',
'cs' : 'Tento útok používá elementu autofocus k vyvolání obslužné rutiny pro událost focus - bez zásahu uživatele',
'de' : '',
'tr' : 'Bu vektör autofocus çağrısı ile bir input öğesi kullanır ve kendisinin focus olayını yakalar - kullanıcı etkileşimi gerekmemektedir.',
'zh' : '这个向量是使焦点自动跳到输入元素上,触发焦点事件 - 无需用户交互'
},
'urls' : ['http://www.w3.org/Bugs/Public/show_bug.cgi?id=9602','http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#autofocusing-a-form-control'],
'howtofix' : {
'en' : 'User submitted markup should not contain "autofocus" attributes.',
'ja' : '\u30e6\u30fc\u30b6\u306e\u5165\u529b\u3057\u305fHTML\u65ad\u7247\u306b \u0022autofocus\u0022 \u5c5e\u6027\u304c\u542b\u307e\u308c\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u3002',
'ru' : 'Пользовательская разметка не должна содержать атрибут autofocus.',
'cs' : 'Uživatelsky vkládaný kód by neměl obsahovat atribut "autofocus".',
'de' : '',
'tr' : 'Kullanıcı tanımlı markup\'lar "autofocus" özelliğini barındırmamalıdır.',
'zh' : '检测用户提交的内容中是否含有"autofocus"属性'
},
'browsers' : {
'firefox' : ['4.0', 'latest'],
'opera': ['9.0', 'latest'],
'safari' : ['4.0', 'latest'],
'chrome': ['4.0', 'latest'],
'internet explorer': ['10.0', 'latest']
},
'tags' : ['xss', 'autofocus', 'chrome', 'opera'],
'reporter' : 'Gareth'
},
{ /* ID 8 - Self-executing blur event via autofocus competition */
'id' : 8,
'category' : 'html5',
'name' : {
'en' : 'Self-executing blur event via autofocus competition',
'ja' : 'blur\u30a4\u30d9\u30f3\u30c8\u306b\u3088\u308bautofocus\u306e\u596a\u3044\u5408\u3044\u306b\u3088\u308b\u81ea\u5df1\u5b9f\u884c',
'ru' : 'Потеря фокуса, инициированная фокусировкой на другом теге, как способ автоматического исполнения кода.',
'cs' : 'Automatické vyvolání obsluhy události blur pomocí soupeřících autofocusů',
'de' : '',
'tr' : 'autofocus ile kendiliğinden çalışabilir blur olayı',
'zh' : '通过多个autofocus竞争焦点来触发blur事件'
},
'data' : '<input onblur=%js_write% autofocus><input autofocus>',
'description': {
'en' : 'Here we have two HTML input elements competing for the focus - and one executing JavaScript on losing its focus',
'ja' : '\u30d5\u30a9\u30fc\u30ab\u30b9\u3092\u596a\u3044\u5408\u30462\u3064\u306einput\u8981\u7d20\u304c\u3042\u308a\u3001\u4e00\u65b9\u304c\u30d5\u30a9\u30fc\u30ab\u30b9\u3092\u5931\u3063\u305f\u5834\u5408\u306bJavaScript\u304c\u5b9f\u884c\u3055\u308c\u308b\u3002',
'ru' : 'В этом примере мы видим два тега input, конкурирующих за фокус, и один из них исполняет JavaScript при потере им фокуса.',
'cs' : 'V tomto případě máme dva HTML elementy, které soupeří o focus - a jeden z nich vyvolá událost blur, jakmile druhý získá focus',
'de' : '',
'tr' : 'Burada iki adet HTML input öğemiz var - bir tanesi focus özelliğini kaybederken JavaScript çalıştırıyor',
'zh' : '这里我们有两个HTML input元素竞争焦点,但焦点到另一个input元素时,前面那个将会触发blur事件'
},
'urls' : ['http://www.w3.org/Bugs/Public/show_bug.cgi?id=9602','http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#autofocusing-a-form-control'],
'howtofix' : {
'en' : 'User submitted markup should not contain "autofocus" attributes.',
'ja' : '\u30e6\u30fc\u30b6\u306e\u5165\u529b\u3057\u305fHTML\u65ad\u7247\u306b \u0022autofocus\u0022 \u5c5e\u6027\u304c\u542b\u307e\u308c\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u3002',
'ru' : 'Пользовательская разметка не должна содержать атрибут autofocus.',
'cs' : 'Uživatelsky vkládaný kód by neměl obsahovat atribut "autofocus".',
'de' : '',
'tr' : 'Kullanıcı tanımlı markup\'lar "autofocus" özelliğini barındırmamalıdır.',
'zh' : '检测用户提交的内容中是否含有"autofocus"属性'
},
'browsers' : {
'safari' : ['4.0', 'latest'],
'chrome': ['4.0', 'latest']
},
'tags' : ['xss', 'autofocus', 'blur', 'chrome', 'safari'],
'reporter' : '.mario'
},
{ /* ID 9 - Opera link-source JavaScript execution via CSS */
'id' : 9,
'category' : 'css',
'name' : {
'en' : 'Opera link-source JavaScript execution via CSS',
'ja' : 'CSS\u7d4c\u7531\u306eOpera link\u30bd\u30fc\u30b9\u306b\u3088\u308bJavaScript\u306e\u5b9f\u884c',
'ru' : 'Исполнение JavaScript в Opera с помощью CSS-свойства link-source',
'cs' : 'Vykonání skriptu z CSS pomocí link-source v Opeře',
'de' : '',
'tr' : 'Opera link-source özelliğinden yararlanarak CSS ile JavaScript çalıştırma',
'zh' : '使用Opera的CSS属性link-source执行javascript'
},
'data' : '<a style="-o-link:\'%js_uri_alert%\';-o-link-source:current">X</a>',
'trigger' : 'location=document.getElementsByTagName("a")[0].style.OLink.slice(1, -1)',
'description': {
'en' : 'Opera allows setting link sources for arbitrary HTML elements - making them clickable and execute JavaScript. Note that Opera 11.0-11.01 requires an actual <a> tag to have this work - while earlier versions work with other tags too. For later versions still available a data URI.',
'ja' : 'Opera\u306f\u4efb\u610f\u306eHTML\u8981\u7d20\u306b\u3001\u30af\u30ea\u30c3\u30af\u3057\u3066\u5b9f\u884c\u3067\u304d\u308bJavaScript\u3092\u542b\u3081\u308b\u3053\u3068\u306e\u3067\u304d\u308blink\u30bd\u30fc\u30b9\u306e\u8a2d\u5b9a\u3092\u8a31\u3057\u3066\u3044\u308b\u3002',
'ru' : 'Opera позволяет устанавливать ссылки для любых HTML-тегов, делать их интерактивными и пригодными для внедрения JavaScript. Обратите внимание, что в Opera 11.0-11.01 необходимо, чтобы такая ссылка устанавливаливалась для тега <a>, но не для остальных тегов. Для более старших версий остается доступным протокол data, с помощью которого можно достичь аналогичного эффекта.',
'cs' : 'Opera umožňuje nastavit link source pro některé HTML elementy. Můžou tak vyvpolat potřebnou akci po kliknutí',
'de' : '',
'tr' : 'Opera keyfi olarak eklenen HTML öğeleri için "link sources" atanmasına izin vermektedir - tıklanabilir yapılarak JavaScript çalıştırılabilir',
'zh' : 'Opera允许给任何HTML元素设置link sources,它们将可以点击和执行javascript.注意:opera 11要求是<a>标签,早期版本任意'
},
'urls' : ['http://www.aptana.com/reference/html/api/CSS.field.-o-link-source.html', 'https://hackvertor.co.uk/hvurl/3c'],
'howtofix' : {
'en' : '',
'ja' : '',
'ru' : '',
'cs' : '',
'de' : '',
'tr' : ''
},
'browsers' : {
'opera': [
'8.0', '12.0 (limited)'
]
},
'tags' : ['xss', 'css', 'link-source', 'opera', 'proprietary'],
'reporter' : '.mario'
},
{ /* ID 10 - JavaScript execution via <VIDEO> poster attribute */
'id' : 10,
'category' : 'html5',
'name' : {
'en' : 'JavaScript execution via <VIDEO> poster attribute',
'ja' : '',
'ru' : 'Исполнение JavaScript с помощью атрибута poster тега <VIDEO>',
'cs' : 'Vykonání JavaScriptu pomocí atributu poster v elementu <VIDEO>',
'de' : '',
'tr' : '<VIDEO> etiketinin poster özelliği ile JavaScript çalıştırma',
'zh' : '通过<VIDEO>的poster属性执行Javascript',
},
'data' : '<video poster=%js_uri_alert%//></video>',
'description': {
'en' : 'Opera 10.5+ allows using poster attributes in combination with javascript: URIs. This bug has been fixed in Opera 11.',
'ja' : '',
'ru' : 'Opera 10.5+ поддерживает атрибут poster в сочетании с псевдоскриптом.',
'cs' : 'Opera 10.5+ umožňuje vložit do atributu poster URL se schématem javascript:',
'de' : '',
'tr' : 'Opera 10.5+ poster özelliğinin javascript: URI\'leri ile ortaklaşa kullanımına izin vermektedir.',
'zh' : 'Opera 10.5+的poster属性允许使用javascript: URI.这个bug在opera11中已修复'
},
'urls' : [],
'howtofix' : {
'en' : 'Make sure only relative URIs, http URIs and correctly MIME-typed data URIs can be used for VIDEO poster attributes',
'ja' : '',
'ru' : 'Убедитесь, что для атрибута poster допускаются только относительные URI, http URI и правильные MIME типы для data:URI .',
'cs' : 'Ujistěte se, že v atributu poster jsou vloženy pouze relativní URI, URI s http:// a datová URI se správným MIME typem.',
'de' : '',
'tr' : 'VIDEO poster özelliğinde sabit URI\'ler, http URI\'ler ve düzgünce MIME-type edilmiş veri URI\'leri kullandığınızdan emin olun.',
'zh' : '确保VIDEO的poster属性是相对URI、http URI和MIME-typed正确的data URI'
},
'browsers' : {
'opera': ['10.5', '11.01']
},
'tags' : ['xss', 'poster', 'video', 'opera', 'html5'],
'reporter' : '.mario'
},
{ /* ID 11 - SVG executing JavaScript via <G> tag and onload attribute */
'id' : 11,
'category' : 'svg',
'name' : {
'en' : 'SVG executing JavaScript via <G> tag and onload attribute',
'ja' : '',
'ru' : 'Исполнение JavaScript в SVG с помощью элемента <G> и атрибута onload',
'cs' : 'Vykonání JavaScriptu v SVG pomocí elementu <G> a atributu onload',
'de' : '',
'tr' : 'SVG <G> etiketi ve onload özelliğini kullanarak JavaScript çalıştırma',
'zh' : '通过SVG中G标签的onload属性执行Javascript'
},
'data' : '<svg xmlns="http://www.w3.org/2000/svg"><g onload="%js_uri_alert%"></g></svg>',
'description': {
'en' : 'SVG files can execute JavaScript via onload events on any element without user interaction',
'ja' : '',
'ru' : 'SVG-файлы могут исполнять JavaScript с помощью обработчиков onload в любых элементах без взаимодействия с пользователем.',
'cs' : 'SVG soubory mohou vykonat JavaScript pomocí události onload u libovolného elementu i bez uživatelské interakce',
'de' : '',
'tr' : 'SVG dosyaları hiçbir kullanıcı etkileşimi gerektirmeden herhangi bir öğenin onload olayı ile JavaScript çalıştırabilir.',
'zh' : 'SVG文件中可以通过任意元素的onload事件执行Javascript,且不需要用户交互'
},
'urls' : ['https://developer.mozilla.org/en/SVG'],
'howtofix' : {
'en' : 'SVG files should not be treated as images - especially when coming to uploads. An SVG file can contain arbitrary HTML data as well as event handlers in native elements',
'ja' : '',
'ru' : 'SVG-файлы не должны рассматриваться в качестве изображений - особенно, когда дело касается загрузки. SVG-файл может содержать произвольные данные HTML, а также обработчики событий в собственных элементах.',
'cs' : 'SVG soubory nejsou důvěryhodné jako třeba obrázky - obzvlášť při uploadu. Soubor SVG může obsahovat HTML data stejně jako obsluhu událostí.',
'de' : '',
'tr' : 'SVG dosyaları sadece birer resim olarak işlenmemeli - özellikle yüklemeler ile geliyorsa. Bir SVG dosyası keyfi HTML verileri ve bu HTML verileride normal öğeleri içinde olay yakalayıcıları içerebilir.',
'zh' : '在上传时不能把SVG当图片处理,因为它可以包含任意HTML,且能被浏览器解析'
},
'browsers' : {
'opera': ['10.0', '12.0'],
'chrome': ['4.0', '35.0'],
'firefox': ['3.0', '3.6.28'],
'safari' : ['5.0', '5.1.7'],
'internet explorer': ['9.0', 'latest']
},
'tags' : ['xss', 'svg', 'onload', 'opera', 'firefox', 'chrome', 'internet explorer'],
'reporter' : '.mario'
},
{ /* ID 12 - Self-executing JavaScript via <BODY> onscroll autofocus */
'id' : 12,
'category' : 'html5',
'name' : {
'en' : 'Self-executing JavaScript via <BODY> onscroll autofocus',
'ja' : '',
'ru' : 'Самовыполнение JavaScript с помощью обрабочкика onscroll тега <BODY> и autofocus',
'cs' : 'Automaticky vykonaný JavaScript pomocí onscroll a autofocus',
'de' : '',
'tr' : '<BODY> onscroll autofocus olayı ile kendiliğinden çalıştırılabilir JavaScript',
'zh' : '通过autofocus触发<Body>的onscroll执行Javascript.'
},
'data' : '<body onscroll=%js_alert%><br><br><br><br><br><br>...<br><br><br><br><input autofocus>',
'description': {
'en' : 'This vector triggers an onscroll event executing JavaScript on <BODY> due to an autofocus on an <INPUT> way further down the page.',
'ja' : '',
'ru' : 'В этом векторе исполнение JavaScript достигается путем искусственного вызова события scroll (прокрутка страницы) тега <BODY>, происходящем из-за автофокусировки на теге <INPUT> в конце страницы.',
'cs' : 'V tomto případě je spuštěn kód pro událost onscroll, protože po načtení je přesunut focus na input, který je na stránce hodně dole',
'de' : '',
'tr' : 'Bu vektör <BODY> üzerindeki onscroll olayının JavaScript çalıştırmasını tetiklemektedir. <INPUT> öğesinin autofocus özelliği sayfasının aşağı kaydırılmasını sağlamaktadır.',
'zh' : '这个向量是使用autofocus移开焦点的方式来移动滚动条,这样就触发了<BODY>的onscroll事件'
},
'urls' : ['http://www.w3.org/Bugs/Public/show_bug.cgi?id=9602'],
'howtofix' : {
'en' : '',
'ja' : '',
'ru' : '',
'cs' : '',
'de' : '',
'tr' : ''
},
'browsers' : {
'firefox' : ['4.0', 'latest'],
'opera': ['9.0', 'latest'],
'safari' : ['4.0', 'latest'],
'chrome': ['4.0', 'latest']
},
'tags' : ['xss', 'autofocus', 'scroll', 'chrome', 'opera'],
'reporter' : '.mario'
},
{ /* ID 13 - Client-side denial of service via repeat templates */
'id' : 13,
'category' : 'dos',
'name' : {
'en' : 'Client-side denial of service via repeat templates',
'ja' : '',
'ru' : 'Отказ в обслуживании со стороны клиента с помощью повторяющихся шаблонов',
'cs' : 'DoS u klienta pomocí repeat templates',
'de' : '',
'tr' : 'repeat template\'leri ile istemci taraflı DoS',
'zh' : '通过repeat templates DoS客户端'
},
'data' : '<x repeat="template" repeat-start="999999">0<y repeat="template" repeat-start="999999">1</y></x>',
'description': {
'en' : 'This vector uses the repeat template syntax specifies in the WebForms 2.0 draft. By using nested tags repeating themselves all over again the client can be forced to deny service or even crash.',
'ja' : '',
'ru' : 'Этот вектор использует синтаксис повторящихся шаблонов, определенный в черновике WebForms 2.0. При использовании вложенных тегов повторения могут провоцировать отказ в обслуживании или даже аварийное завершение работы клиента.',
'cs' : 'Tento útok využívá syntaxi opakovacích šablon, definovaných v draftu WebForms 2.0. Použitím vnořených tagů bude šablona generovat obsah znovu a znovu, dokud prohlížeč nezastaví běh nebo nespadne.',
'de' : '',
'tr' : 'Bu vektör WebForms 2.0 şablonunda yer alan repeat template yazımını kullanmaktadır. İç içe etiketlerin kendilerini istemci üzerinde tekrarlaması ile istemcinin servisi durdurması yada servisin çakılması sağlanabilir.',
'zh' : '这个向量是使用WebForms 2.0草案中的repeat template规范.利用嵌套一遍一遍的repeat标签本身,使用客户端崩溃.'
},
'urls' : ['http://www.whatwg.org/specs/web-forms/current-work/#repeatingFormControls'],
'howtofix' : {
'en' : 'Avoid allowing users submitting HTML containing repeat or "repeat-start"/"repeat-end" attributes. If necessary validate the numerical values used for them to be reasonably small.',
'ja' : '',
'ru' : 'Не разрешайте пользовательскую HTML-разметку , содержащую атрибуты repeat или repeat-start/repeat-end. При необходимости проверяйте, чтобы используемые в них численные значения были относительно невелики.',
'cs' : 'Nedovolte uživatelům vkládat HTML s atributy repeat-start nebo repeat-end. Pokud je to nutné, zkontrolujte, zda jsou použitá čísla rozumně malá.',
'de' : '',
'tr' : 'Kullanıcı tanımlı HTML kodlarının repeat veya "repeat-start"/"repeat-end" özelliklerini içermediğinden emin olunmalıdır. Gerekirse tekrarlama için kullanılan rakamlar denetlenmeli ve küçük rakamlar olduğundan emin olunmalıdır.',
'zh' : '不要允许用户提交的HTML中包含repeat或repeat 或repeat-start、repeat-end属性.如果有这需求可以验证他们的值是否过大.'
},
'browsers' : {
'opera': ['10.0', '10.10']
},
'tags' : ['dos', 'repeat', 'template', 'webforms', 'opera', 'proprietary'],
'reporter' : '.mario'
},
{ /* ID 14 - Client-side denial of service via faulty regular expressions */
'id' : 14,
'category' : 'dos',
'name' : {
'en' : 'Client-side denial of service via faulty regular expressions',
'ja' : '',
'ru' : 'Отказ в обслуживании со стороны клиента с помощью неправильного регулярного выражения',
'cs' : 'DoS v prohlížeči pomocí chybného regulárního výrazu',
'de' : '',
'tr' : 'Bozuk düzenli ifadeler ile istemci taraflı DoS',
'zh' : '通过恶意的正则表达式DoS客户端'
},
'data' : '<input pattern=^((a+.)a)+$ value=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!>',
'description': {
'en' : 'Opera 10 allows client side validation via the pattern attribute. In case the pattern value is a badly written regex the client can be "dossed" with short customized character sequences.',
'ja' : '',
'ru' : 'Opera 10 поддерживает проверку правильности пользовательского ввода с помощью атрибута pattern. В случае, если параметр pattern является ошибочно написанным регулярным выражением, это может вызвать отказ в обслуживании с клиентской стороны.',
'cs' : 'Opera 10 dovoluje ověření na straně klienta pomocí regulárních výrazů v atributu pattern. Pokud je v tomto atributu zadán zákeřně zapsaný regulární výraz, lze tím klienta pomocí krátké znakové sekvence zatížit',
'de' : '',
'tr' : 'Opera 10 pattern özelliği ile istemci taraflı düzenli ifade denetimine izin vermekte. Bu durumda pattern değerine kötü bir regex yazılabilir ve istemci dos edilebilir.',
'zh' : 'Opera 10 支持使用pattern属性进行验证,如果正则表达式写的有问题,那么可能会导致"dossed".'
},
'urls' : ['http://www.whatwg.org/specs/web-apps/current-work/#the-pattern-attribute', 'http://en.wikipedia.org/wiki/Regular_expression_Denial_of_Service_-_ReDoS'],
'howtofix' : {
'en' : 'Don\'t allow users to submit HTML containing "pattern" attributes and make sure your own client side regular expressions used for validation are well written and not vulnerable against easy ReDoS attacks.',
'ja' : '',
'ru' : 'Не разрешайте пользовательскую HTML-разметку , содержащую атрибут pattern и убедитесь, что ваши собственные клиентские регулярные выражения корректно написаны и неуязвимы для ReDoS атак.',
'cs' : 'Nedovolte uživatelům vložit HTML s atributem "pattern" a ujistěte se, že vaše vlastní regulární výrazy použité pro validaci jsou robustní a nejsou náchylné k podobným DoS útokům.',
'de' : '',
'tr' : 'Kullanıcıların "pattern" özelliği içeren HTML sağlamalarına izin vermeyin ve istemci tarafında yazmış olduğunuz denetleme regex\'lerinin iyi yazıldığından, ReDoS zafiyeti içermediğinden emin olun.',
'zh' : '不要允许用户提交的HTML中含有"pattern"属性,确保验证的正则写的没啥问题.'
},
'browsers' : {
'opera': ['10.0'],
'firefox': ['12.0', 'latest']
},
'tags' : ['dos', 'pattern', 'regex', 'html5', 'validation', 'opera', 'proprietary'],
'reporter' : '.mario'
},
{ /* ID 15 - JavaScript execution via sharp variables */
'id' : 15,
'category' : 'javascript',
'name' : {
'en' : 'JavaScript execution via sharp variables',
'ja' : '',
'ru' : 'Выполнение JavaScript с помощью диез-переменных',
'cs' : 'Vykonání JavaScriptu přes #proměnné',
'de' : '',
'tr' : 'Diyez\'ler ile JavaScript çalıştırma',
'zh' : '使用sharp variables执行Javascript'
},
'data' : '<script>({0:#0=%js_alert_only%/#0#/#0#(0)})</script>',
'description': {
'en' : 'This vector demonstrates how sharp variables and cyclic references can be used for obfuscation to hide the actual method execution.',
'ja' : '',
'ru' : 'Этот вектор демонстрирует использование диез-переменных (sharp variables) и циклических ссылок для обфускации фактического вызова метода.',
'cs' : 'V ukázce jsou použity #proměnné a kruhové reference k zamaskování vykonávaného skriptu',
'de' : '',
'tr' : 'Bu vektör diyezler ve devirli referansların kullanımı ile asıl çalıştırlmak istenen kodun saklanması için nasıl anlaşılamaz hale getirilebileceğini göstermektedir.',
'zh' : '这个向量展示了sharp variables和循环引用能用与做混淆和隐式执行代码'
},
'urls' : ['https://developer.mozilla.org/en/Sharp_variables_in_JavaScript'],
'howtofix' : {
'en' : '',
'ja' : '',
'ru' : '',
'cs' : '',
'de' : '',
'tr' : ''
},
'browsers' : {
'firefox': ['2.x', '11.0']
},
'tags' : ['xss', 'javascript', 'firefox', 'sharp', 'proprietary'],
'reporter' : '.mario'
},
{ /* ID 16 - Using onbegin and HTML+TIME to execute JavaScript */
'id' : 16,
'category' : 'behavior',
'name' : {
'en' : 'Using onbegin and HTML+TIME to execute JavaScript',
'ja' : '',
'ru' : 'Использование onbegin и HTML+TIME для вызова JavaScript',
'cs' : 'Použití onbegin a HTML+TIME k vykonání JavaScriptu',
'de' : '',
'tr' : 'onbegin ve HTML+TIME kullanarak JavaScript çalıştırma',
'zh' : '使用HTML+TIME和onbegin执行Javascript'
},
'data' : 'X<x style=`behavior:url(#default#time2)` onbegin=`%js_write%` >',
'description': {
'en' : 'The HTML+TIME behavior allows to use arbitrary tags to execute JavaScript via onbegin event handlers.',
'ja' : '',
'ru' : 'Поведение HTML+TIME позволяет достичь исполнения JavaScript в произвольном теге с помощью обработчика события onbegin.',
'cs' : 'HTML+TIME umožňuje běžnému tagu vyvolat JavaScript pomocí obsluhy události begin',
'de' : '',
'tr' : 'HTML+TIME behavior özelliği kullanılarak ve onbegin olay yakalayıcısı ile JavaScript çalıştırılabilmektedir.',
'zh' : '使用HTML+TIME behavior可以使任意标签处理onbegin事件.'
},
'urls' : ['http://msdn.microsoft.com/en-us/library/ms533102%28VS.85%29.aspx'],
'howtofix' : {
'en' : 'Don\'t allow behavior properties in user submitted CSS and markup and don\'t rely on blacklists regarding dangerous HTML tags. The rather unknown HTML+TIME API provides too many ways to execute JavaScript with and without user interaction on exotic ways. Avoid blacklists if possible.',
'ja' : '',
'ru' : 'Не позволяйте свойства поведений в пользовательских стилях и разметке и не полагайтесь на черные списки в отношении опасных HTML-тегов. Достаточно нераспространенные HTML+TIME API предоставляют слишком много экзотических способов исполнения JavaScript без взаимодействия с пользователем. Избегайте черных списков, если это возможно.',
'cs' : 'Nedovolte vlastnost "behavior" v uživatelském CSS či HTML. Poměrně neznámé API HTML+TIME nabízí velmi mnoho způsobů, jak vykonat skript, ať už s uživatelskou interakcí či bez ní.',
'de' : '',
'tr' : 'Kullanıcı tanımlı CSS\'lerde behavior özelliğine izin vermeyin ve tehlikeli HTML taglarına karşı kullanılan kara listelere güvenmeyin. Daha doğrusu HTML+TIME API\'si kullanıcı etkileşimi gerektiren veya gerektirmeyen birçok farklı yoldan JavaScript çalıştırılabilmesini sağlar. Mümkünse kara listelerden kaçının.',
'zh' : '不允许用户在提交的标签或CSS中含有behavior属性,HTML+TIME API提供了很多方法来执行Javascript,如果有可能,不用使用黑名单的方式处理HTML危险标签.'
},
'browsers' : {
'internet explorer': ['5.5', '8.0']
},
'tags' : ['xss', 'javascript', 'ie', 'behavior', 'html+time', 'onbegin'],
'reporter' : '.mario'
},
{ /* ID 17 - Opera XML-stylesheets executing JavaScript */
'id' : 17,
'category' : 'xml',
'name' : {
'en' : 'Opera XML-stylesheets executing JavaScript',
'ja' : '',
'ru' : 'Исполнение JavaScript с помощью XML-таблицы стилей в Opera ',
'cs' : 'XML stylesheet vykoná JavaScript v Opeře',
'de' : '',
'tr' : 'Opera XML-stylesheets ile JavaScript çalıştırma',
'zh' : '通过Opera XML-stylesheets执行JavaScript'
},
'data' : '<?xml-stylesheet href="%js_uri_alert%"?><root/>',
'description': {
'en' : 'Opera 9.x and 10.0 allow to apply XML-stylesheets with JavaScript URIs and. The vectors even works if the page is delivered as text/html.',
'ja' : '',
'ru' : 'Opera 9.x и 10,0 позволяет применять XML-таблицы стилей с псевдоскриптом, который в дальнейшем выполняется без взаимодействия с пользователем. Вектор работает, даже если страница отправляется как text/html.',
'cs' : 'Opera 9.x a 10.0 umožňuje použít XML stylesheets s JavaScriptovými URI a vykonat tak JavaScript bez uživatelské interakce. Útok funguje i pokud je stránka poslána jako text/html.',
'de' : '',
'tr' : 'Opera 9.x ve 10.0 JavaScript URI\'leri ile XML stylesheets uygulanmasına izin vermektedir ve kullanıcı etkileşimi gerektirmeden JavaScript çalıştırmaktadır. Bu vektör sadece sayfa text/html olarak sunulmuşsa çalışır.',
'zh' : 'Opera 9.x和10.0允许XML-stylesheets使用Javascript URI.这个向量在mime-type是text/html的情况下是也有效的.'
},
'urls' : [],
'howtofix' : {
'en' : 'Make sure that user input cannot contain XML stylesheets or tags not consisting of <\\w+ - because this vector would only be matched via <\\?\\w+ but still executes JavaScript without user interaction. Avoid blacklists is possible.',
'ja' : '',
'ru' : 'Убедитесь, что пользовательская разметка не может содержать XML-таблицы и теги, не состоящие из <\\w+ - потому что этот вектор будет соответствовать только <\\?\\w+ . Избегайте черных списков, если это возможно.',
'cs' : 'Ujistěte se, že uživatel nesmí vložít XML stylesheet nebo tagy, které neodpovídají <\\w+. Tento druh útoku může být identifikován jen podle <\\?\\w+',
'de' : '',
'tr' : 'Kullanıcı girdisinin XML stylesheets içermediğinden veya tagların <\\w+ şeklinde oluşmadığından emin olun - çünkü bu vektör sadece <\\?\\w+ ile eşleşir ama yine kullanıcı etkiletişimi olmadan JavaScript çalıştırır. Kara listelerden kaçının.',
'zh' : '确保用户输入的没有包含XML stylesheets或者只允许能被<\\w+匹配的标签 - 因为这个向量需要<\\?\\w+才能匹配.黑名单是有可能被绕过的.'
},
'browsers' : {
'opera': ['9.x', '10.10']
},
'tags' : ['xss', 'javascript', 'opera', 'xml', 'css', 'proprietary'],
'reporter' : '.mario'
},
{ /* ID 18 - Entities inside <SCRIPT> and comparable tags */
'id' : 18,
'category' : 'xml',
'name' : {
'en' : 'Entities inside <SCRIPT> and comparable tags',
'ja' : '',
'ru' : 'HTML-эквиваленты внутри <SCRIPT> и аналогичных тегов',
'cs' : 'Entity v tagu SCRIPT a podobných',
'de' : '',
'tr' : '',
'zh' : '<SCRIPT>和其它类似标签内的Entities'
},
'data' : '<script xmlns="http://www.w3.org/1999/xhtml">%js_alert_entities%</script>',
'description': {
'en' : 'By specification user agents allow using HTML entities between <SCRIPT> and <STYLE> tags in case the document is being delivered and rendered as X(HT)ML.',
'ja' : '',
'ru' : 'Согласно спецификации пользовательским агентам разрешено распознавать HTML-эквиваленты внутри тегов <SCRIPT> и <STYLE> в случае, если документ отдается и обрабатывается как X(HT)ML.',
'cs' : 'Podle specifikace smí být v případě, že dokument je poslán jako X(HT)ML, vloženy do elementů SCRIPT a STYLE HTML entity.',
'de' : '',
'tr' : '',
'zh' : ''
},
'urls' : [],
'howtofix' : {
'en' : 'Make sure filters and detection systems consider the fact of having entities to be allowed inbetween <SCRIPT>, <STYLE> and other tags - and not only in attributes.',
'ja' : '',
'ru' : 'Убедитесь, что фильтры и системы обнаружения учитывают возможность наличия HTML-эквивалентов внутри тегов <SCRIPT>, <STYLE> и других, а не только в атрибутах.',
'cs' : 'Ujistěte se, že vaše filtry a detektory průniku respektují fakt, že SCRIPT, STYLE a další tagy mohou obsahovat entity.',
'de' : '',
'tr' : '',
'zh' : '确保过滤器或其它检测系统考虑了<script>或<style>和其它标签之间允许有Entities的事实.而不仅仅是属性.'
},
'browsers' : {
'opera': ['8.x', 'latest'],
'firefox' : ['1.x', 'latest'],
'chrome': ['3.0', 'latest'],
'safari' : ['5.0', 'latest'],
'internet explorer': ['9.0', 'latest']
},
'tags' : ['xss', 'javascript', 'opera', 'internet explorer', 'firefox', 'chrome', 'safari', 'xml', 'entity'],
'reporter' : '.mario'
},
{ /* ID 19 - XSS via ¼ and ¾ in MacFarsi, MacArabic and MacHebrew */
'id' : 19,
'category' : 'charset',
'name' : {
'en' : 'XSS via ¼ and ¾ in MacFarsi, MacArabic and MacHebrew',
'ja' : '',
'ru' : 'XSS c использованием ¼ and ¾ в кодировках MacFarsi, MacArabic and MacHebrew',
'cs' : 'XSS via ¼ a ¾ v MacFarsi, MacArabic a MacHebrew',
'de' : '',
'tr' : 'MacFarsi, MacArabic ve MacHebrew karakter kodlamalarında, ¼ ve ¾ ile XSS',
'zh' : ''
},
'data' : '<meta charset="x-mac-farsi">\xBCscript \xBE%js_alert%//\xBC/script \xBE',
'description': {
'en' : 'Buggy charset implementations in Firefox allow to craft HTML structures without using the usual characters such as < and >. Most affected charsets are from the Mac charset family - such as mac-farsi, mac-arabic and mac-hebrew.',
'ja' : '',
'ru' : 'Ошибочная реализация кодировок в Firefox позволяет создавать HTML-структуры без использования привычных символов, таких как "<" и ">". Несколько подверженных кодировок из семейства Mac - mac-farsi, mac-arabic и mac-hebrew.',
'cs' : 'Chybná implementace znaků ve Firefoxu umožňuje vutvářet HTML struktury bez obvyklých znaků < a >. Většina ovlivněných znakových sad je z rodiny Mac - jako mac-farsi, mac-arabic a mac-hebrew.',
'de' : '',
'tr' : 'Hatalı karakter seti uyarlamaları Firefox\'ta HTML yapısını < ve > karakterlerini kullanmadan bozmaya yaramaktadır. Mac karakter seti ailesindeki birçok karakter seti etkilenmektedir - mac-farsi, mac-arabic ve mac-hebrew gibi. '
},
'urls' : ['https://twitter.com/#!/hasegawayosuke/status/25984750035'],
'howtofix' : {
'en' : 'User input should never allow <META> tags to avoid re-setting the charset. In case the website is encoded in one of the affected charsets make sure to have your filter be aware that for Firefox < (<) and ¼ are equivalent - as well as other characters too.',
'ja' : '',
'ru' : 'Пользовательскому вводу никогда не должен быть разрешен тег <МЕТА> во избежание переопределения кодировки. В случае, если веб-сайт кодируется в одной из указанных кодировок, убедитесь, что вашему фильтру известно, что для Firefox символы < (<) и ¼ эквивалентны, аналогично и в отношении других сиволов.',
'cs' : 'Data od uživatele nesmí nikdy obsahovat META tag, kterým by mohl přenastavit kódování. Pokud je web nakódován v jedné z výše uvedených znakových sad, tak se ujistěte, že je vašemu filtru známo, že Firefox bere znaky < (<) a ¼ jako totožné',
'de' : '',
'tr' : 'Kullanıcı girdisinde asla <META> taglarına karakter setlerinin tekrar ayarlarlanmalarını sağlaması için izin verilmemelidir. Bu durumda etkilenen karakter setleri ile çözümleme yapan web sitelerinin filtreleri Firefox için geçerli olan bu durumdan haberdar olmalıdır - < (<) ve ¼ denktir. - aynı zamanda diğer karakterlerde.'
},
'browsers' : {
'firefox' : ['2.x', '3.6.28']
},
'tags' : ['x-mac-arabic', 'x-mac-farsi', 'x-mac-hebrew', 'firefox', 'charset'],
'reporter' : 'hasegawayosuke'
},
{ /* ID 20 - JavaScript execution via overwritten ReferenceError object */
'id' : 20,
'category' : 'javascript',
'name' : {
'en' : 'JavaScript execution via overwritten ReferenceError object',
'ja' : '',
'ru' : 'Исполнение JavaScript через переопределение объекта ReferenceError',
'cs' : 'Vykonání JavaScriptu pomocí přepsaného objektu ReferenceError',
'de' : '',
'tr' : 'Üstüne yazılmış ReferenceError objesi ile JavaScript çalıştırma',
'zh' : '通过覆盖ReferenceError对象执行Javascript'
},
'data' : '<script>ReferenceError.prototype.__defineGetter__(\'name\', function(){%js_alert%}),x</script>',
'description': {
'en' : 'This JavaScript vector shows how overwriting the ReferenceError object and causing the exact same kind of error afterwards can lead to JavaScript execution. This is of course the same for most other error objects and should be taken into consideration when implementing JavaScript sandboxes or comparable.',
'ja' : '',
'ru' : 'Этот JavaScript-вектор показывает, как переопределяя объект ReferenceError и вызывая такого же рода ошибку впоследствии, можно вызвать выполнение JavaScript. Это, разумеется, действительно для большинства других объектов ошибкок и должнo приниматься во внимание при разработке JavaScript-песочниц и т.п.',
'cs' : 'Tento JavaScriptový útok ukazuje, jak lze vyvolat vykonání JavaScriptu pomocí přepsání objektu ReferenceError a vyvolání takové chyby. Totéž platí analogicky pro většinu ostatních chybových objektů a je třeba na to dát pozor, pokud implementujete JS sandboxy či podobné techniky.',
'de' : '',
'tr' : 'Bu JavaScript vektörü ReferenceError objesinin nasıl üstüne yazılacağını ve benzer şekilde ki bir hata ile JavaScript çalıştırılabileceğini göstermektedir. Diğer hata objeleri içinde geçerli olmakla beraber JavaScript sandbox\'ları uygulanırken göz önüne alınmalıdır.',
'zh' : '这个Javascript向量展示了如何覆盖ReferenceError对象,并引起错误,从而导致Javascript执行.'
},
'urls' : ['https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Functions/ReferenceError'],
'howtofix' : {
'en' : 'Do not trust the DOM in case the user can influence it via script injections, includes or other DOM based property access.',
'ja' : '',
'ru' : 'Не доверяйте DOM в случае, если пользователь может повлиять на неё через инъекции, включения JavaScript или другой доступ к свойствам, основанный на DOM.',
'cs' : 'Nedůvěřujte DOMu v případě, že jej uživatel může ovlivnit vložením skriptu nebo jiným způsobem přístupu skrz DOM',
'de' : '',
'tr' : 'Kullanıcı betik enjekte ederek, dahil ederek veya diğer DOM tabanlı özelliklere erişerek DOM\'u etkilendiğinde sakın DOM\'a güvenmeyin.',
'zh' : '在用户可以注入脚本的情况下不要相信DOM,即便是DOM属性的访问.'
},
'browsers' : {
'opera': ['8.x', '11.01'],
'firefox' : ['1.x', '15.0'],
'chrome': ['3.0', '9.0'],
'safari': ['4.0', '5.1.7']
},
'tags' : ['javascript', 'opera', 'firefox', 'chrome', 'safari', 'ReferenceError', 'overwrite'],
'reporter' : '.mario'
},
{ /* ID 21 - JavaScript execution via proprietary __noSuchMethod__ */
'id' : 21,
'category' : 'javascript',
'name' : {
'en' : 'JavaScript execution via proprietary __noSuchMethod__',
'ja' : '',
'ru' : 'Выполнение JavaScript с помощью нестандарного свойства __noSuchMethod__',
'cs' : 'Vykonání JavaScriptu proprietární metodou __noSuchMethod__',
'de' : '',
'tr' : '__noSuchMethod__ özelliği ile JavaScript çalıştırma',
'zh' : '通过私有属性 __noSuchMethod__执行Javascript'
},
'data' : '<script>Object.__noSuchMethod__ = Function,[{}][0].constructor._(\'%js_alert%\')()</script>',
'description': {
'en' : 'Firefox supports the non-standard __noSuchMethod__ property which will be used as an interceptor as soon as a non existing object method is being called. It can be assigned with the Function object to force JavaScript execution without using function(){...}.',
'ja' : '',
'ru' : 'Firefox поддерживает нестандартное свойство __noSuchMethod__ , которое может использоваться в качестве перехватчика, когда вызывается несуществующий объект. В качестве такового может быть назначен объект Function, чтобы инициировать исполнение JavaScript без использовавания function(){...} .',
'cs' : 'Firefox podporuje nestandardní metodu __noSuchMethod__, která může být využita jako spouštěcí ve chvíli, kdy je zavolána neexistující metoda objektu. Může jí být přiřazen objekt Function, čímž se útočník vyhne použití function(){...}.',
'de' : '',
'tr' : 'Firefox standart dışı __noSuchMethod__ özelliğini desteklemektedir ki bu özellik mevcut olmayan obje methodu çağırıldığında engellemek için kullanılır. Function objesiyle ilişkilendirilerek function(){...} kullanmadan JavaScript çalıştırılmasını sağlar.',
'zh' : 'Firefox支持非标准的属性 __noSuchMethod__ ,它可以使我们在访问一个对象不存在的方法时自动拦截.我们可以利用它执行Javascript而不需要使用funtion(){...}这样的方法.'
},
'urls' : ['https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/noSuchMethod'],
'howtofix' : {
'en' : '',
'ja' : '',
'ru' : '',
'cs' : '',
'de' : '',
'tr' : ''
},
'browsers' : {
'firefox' : ['3.5', 'latest']
},
'tags' : ['xss', 'javascript', 'firefox', '__noSuchMethod__', 'proprietary'],
'reporter' : 'Gareth, .mario'
},
{ /* ID 22 - Input stealing/form DoS with onblur=focus() and autofocus */
'id' : 22,
'category' : 'dos',
'name' : {
'en' : 'Input stealing/form DoS with onblur=focus() and autofocus',
'ja' : '',
'ru' : 'Перехват ввода/DoS формы посредством onblur=focus() и autofocus',
'cs' : 'DoS útok proti formuláři pomocí onblur=focus() a autofocus',
'de' : '',
'tr' : 'onblue=focus() ve autofocus ile girdi çalma/form DoS'
},
'data' : '<input onblur=%js_focus% autofocus><input>',
'description': {
'en' : 'This very basic vector demonstrates how the combination of "autofocus" and "onblur" can render any other form on the targeted website useless.',
'ja' : '',
'ru' : 'Этот очень простой вектор показывает, как сочетание autofocus и onblur может сделать любую другую форму на целевом сайте бесполезной.',
'cs' : 'Tento jednoduchý útok ukazuje, jak kombinace "autofocus" a "onblur" může snadno udělat formulář nepoužitelným.',
'de' : '',
'tr' : 'Bu çok basit vektör "autofocus" ve "onblur"\'un kombinasyonunun nasıl hedef site üzerindeki diğer formları kullanışsız hale getirebileceğini göstermektedir.'
},
'urls' : ['http://www.w3.org/Bugs/Public/show_bug.cgi?id=9602'],
'howtofix' : {
'en' : 'User submitted markup should not contain "autofocus" attributes.',
'ja' : '',
'ru' : 'Пользовательская разметка не должна содержать атрибут autofocus.',
'cs' : 'Uživatelem zadávaný HTML kód by neměl obsahovat atribut "autofocus".',
'de' : '',
'tr' : 'Kullanıcı tanımlı markup\'lar "autofocus" özelliğini içermemelidir.'
},
'browsers' : {
'opera': ['9.0', 'latest'],
'chrome': ['3.0', 'latest'],
'safari' : ['5.0', 'latest']
},
'tags' : ['dos', 'javascript', 'opera', 'chrome', 'safari', 'autofocus', 'onblur', 'html5'],
'reporter' : 'Skyphire, Gareth, .mario'
},
{ /* ID 23 - Form surveillance with onformchange, onforminput and form attributes */
'id' : 23,
'category' : 'html5',
'name' : {
'en' : 'Form surveillance with onformchange, onforminput and form attributes',
'ja' : '',
'ru' : 'Наблюдение за формой с помощью атрибутов onformchange, onforminput и form',
'cs' : 'Sledování formuláře pomocí atributů onformchange, onforminput a form',
'de' : '',
'tr' : 'onformchange, onforminput ve form özellikleri ile form gözetimi'
},
'data' : '<form id=test onforminput=%js_alert%><input></form><button form=test onformchange=%js_alert_2%>X</button>',
'trigger' : 'document.forms.test.elements[1].onformchange();document.forms.test.onforminput()',
'description': {
'en' : 'Enter a value into the form element to see how "onforminput" and "onformchange" attributes can monitor <FORM> activity - even from outside the <FORM> via the form attribute on a <BUTTON> element.',
'ja' : '',
'ru' : 'Введите значение в поле ввода, чтобы увидеть, как атрибуты onforminput и onformchange могут контролировать активность в теге <FORM> даже за пределами этого тега с помощью атрибута form тега <button> .',
'cs' : 'Pomocí atributů "onforminput" a "onformchange" lze monitorovat aktivitu ve formuláři - a to i dokonce mimo formulář, pomocí svázání atributem "form" u elementu BUTTON.',
'de' : '',
'tr' : '"onforminput" ve "onformchange" özelliklerinin <FORM> hareketlerini nasıl gözlediklerini görebilmek için form elemanına bir değer giriniz - hatta <FORM> dışında <BUTTON> elemanının form özelliği ile.'
},
'urls' : ['http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#broadcast-formchange-events'],
'howtofix' : {
'en' : 'Make sure users cannot submit markup including the form, "onformchange" and "onforminput" attributes. Do not apply <FORM> elements with an "id" attribute.',
'ja' : '',
'ru' : 'Убедитесь, что пользовательский ввод не может содержать атрибуты onformchange, onforminput и form. Избегайте атрибут id в теге <FORM>.',
'cs' : 'Ujistěte se, že uživatel nevloží HTML kód s atributy form, onformchange a onforminput. Nedávejte elementu FORM atribut "id".',
'de' : '',
'tr' : 'Kullanıcıların form, "onformchange" ve "onforminput" dahil herhangi bir markup sağlamadığından emin olun. <FORM> elemanlarına "id" özelliği uygulamayın.'
},
'browsers' : {
'opera' : ['10.5', '12.0']
},
'tags' : ['surveillance', 'javascript', 'opera', 'html5', 'onforminput', 'onformchange'],
'reporter' : 'Skyphire, .mario'
},
{ /* ID 24 - JavaScript execution via HTML+TIME without user interaction (1) */
'id' : 24,
'category' : 'behavior',
'name' : {
'en' : 'JavaScript execution via HTML+TIME without user interaction (1)',
'ja' : '',
'ru' : 'Активный скриптинг с применением технологии HTML+TIME (1)',
'cs' : 'Vykonání JavaScriptu via HTML+TIME bez uživatelské interakce (1)',
'de' : '',
'tr' : 'Kullanıcı etkileşimi gerektirmeden HTML+TIME ile JavaScript çalıştırma (1)'
},
'data' : '1<set/xmlns=`urn:schemas-microsoft-com:time` style=`behAvior:url(#default#time2)` attributename=`innerhtml` to=`<img/src="x"onerror=%js_alert%>`>',
'description': {
'en' : 'This obfuscated vector uses HTML+TIME to execute JavaScript without user interaction - and without suspicious event handlers but just "attributename" and "to" attributes.',
'ja' : '',
'ru' : 'Этот слегка обфусцированный вектор использует HTML+TIME для исполнения JavaScript без взаимодействия с пользователем и без подозрительных обработчиков событий исключительно с помощью атрибутов attributename и to. ',
'cs' : 'Tento lehce zamaskovaný útok používá HTML+TIME k vyvolání JavaScriptu bez zásahu uživatele - a také bez podezřelých obsluh událostí, pouze s atributy "attributename" a "to"',
'de' : '',
'tr' : 'Yakalanmayacak şekilde oluşturulmuş bu vektör kullanıcı etkileşimi gerektirmeden HTML+TIME kullanarak JavaScript çalıştırmaktadır - ve şüpheli olmayan olay yakalayıcıları olmadan "attributename" ve "to" hariç'
},
'urls' : ['http://msdn.microsoft.com/en-us/library/ms533102%28VS.85%29.aspx'],
'howtofix' : {
'en' : 'Don\'t allow behavior properties in user submitted CSS and markup and don\'t rely on blacklists regarding dangerous HTML tags. The rather unknown HTML+TIME API provides too many ways to execute JavaScript with and without user interaction on exotic ways. Avoid blacklists if possible.',
'ja' : '',
'ru' : 'Не разрешайте свойства поведений в пользовательских стилях и разметке и не полагайтесь на черные списки в отношении опасных HTML-тегов. Малоизвестные HTML+TIME API предоставляют довольно много экзотических способов исполнения JavaScript, в т.ч. без взаимодействия с пользователем. Избегайте черных списков, если это возможно.',
'cs' : 'Nepovolte vlastnost "behavior" v uživatelsky vkládaném CSS a HTML a nespoléhejte na blacklisty nebezpečných HTML tagů. Poměrně neznámé API HTML+TIME nabízí velmi mnoho způsobů, jak vykonat skript, ať už s uživatelskou interakcí či bez ní. Použití blacklistů se vyhněte, jak jen to je možné.',
'de' : '',
'tr' : 'Kullanıcı destekli CSS ve "markup"larda "behavior" özelliklerine izin vermeyin ve söz konusu tehlikeli HTML etiketleri için "blacklist"lere güvenmeyin. Çok bilinmeyen HTML+TIME API\'si Javascript çalıştırmak için kullanıcı etkileşimi gerektiren veya gerektirmeyen birçok egzotik yöntem sağlamaktadır. Mümkün olduğunca blacklist kullanımından kaçının.'
},
'browsers' : {
'internet explorer': ['5.5', '8.0']
},
'tags' : ['xss', 'javascript', 'ie', 'behavior', 'html+time', 'attributename', 'to', 'proprietary'],
'reporter' : '.mario'
},
{ /* ID 25 - Self-including E4X-based JavaScript snippet */
'id' : 25,
'category' : 'e4x',
'name' : {
'en' : 'Self-including E4X-based JavaScript snippet',
'ja' : '',
'ru' : 'Самовключаемый JavaScript фрагмент, основанный на E4X',
'cs' : 'Automaticky vykonaný kód založený na E4X',
'de' : '',
'tr' : 'Kendiliğinden varolan E4X tabanlı Javascript kod parçaları'
},
'data' : '<script src="#">{%js_alert%}</script>;1',
'description': {
'en' : 'This <SCRIPT> tag tries to include the very same page it is being executed from - and then executes the {}-delimited E4X payload. To avoid having Firefox throw an error during inclusion the ending sequence ;0 is necessary.',
'ja' : '',
'ru' : 'Этот тег <SCRIPT> пытается использовать ту же самую страницу в качестве своего содержимого. Если содержимое страницы правильно с точки зрения XML-синтаксиса, она будет разобрана в JavaScript в качестве E4X-строки. При этом произойдет выполнение полезной нагрузки, содержащейся внутри E4X-разделителя - {}. Чтобы избежать возможную ошибку во время включения, необходимо окончание в виде ;0 и т.п.',
'cs' : 'Tento tag SCRIPT se pokouší vložit tutéž stránku, v níž je obsažen, a vykonat skript uzavřený do E4X {}. Koncová sekvence ;1 je použita proto, aby Firefox nevyhodil při vkládání chybu.',
'de' : '',
'tr' : 'Bu <SCRIPT> tagı çalıştırılacağı aynı sayfayı yüklemeye çalışıyor ve başarılı olursa {} arasında E4X payload\'unu çalıştırıyor. Firefox\'un dahil etme sırasında hata yakalamasından kaçınmak için ;0 gereklidir.'
},
'urls' : ['https://developer.mozilla.org/en/E4X'],
'howtofix' : {
'en' : 'E4X is extremely dangerous since any page can include sources providing valid XML and the mentioned semi-colon delimiter. For effective protection websites must be applied with a DOCTYPE - or contain invalid markup. There are many variations for the ending delimiter - as long it is valid JavaScript and not indicating the page is XML only it will work (;1, ,1, ._, etc..)',
'ja' : '',
'ru' : 'E4X является чрезвычайно опасным, если исходный код страницы является правильным с т.зр. XML и содержит разделители в виде точек с запятой. Для эффективной защиты сайты должны применять DOCTYPE или содержать неправильную разметку. Существует много вариантов для оканчивающего разделителя: если это правильный JavaScript, и страница не является исключительно XML, то будут работать ";1", ",1", "._" и т.д.',
'cs' : 'E4X je extrémně nebezpečný, pokud může libovolná stránka vložit libovolné validní XML a zmíněný středník jako omezovač. Efektivní ochrana spočívá ve správném DOCTYPE - nebo v nevalidním zápisu. Existuje mnohjo variant koncového omezovače - dokud to bude platný JavaScript a stránka nebude naznačovat, že je XML-only, bude to fungovat (;1, ,1, ._, atd.)',
'de' : '',
'tr' : 'E4X geçerli XML ve sözü edilen noktalı vigül ayraçı içeren herhangi bir sayfa dahil edildiğinde tamamen tehlikeli olabilmekte. İşe yarar bir korunma için websiteleri mutlaka DOCTYPE ile uygulanmalıdır. Bitirici ayraçların birçok varyasyonları var - ki herbiri geçerli birer JavaScript olup belirtilen XML sayfa sayfası değil belirteç çalışacaktır (;1, ,1, ._, etc..)'
},
'browsers' : {
'firefox' : ['1.5', '16.0']
},
'tags' : ['xss', 'javascript', 'firefox', 'e4x', 'self-inclusion', 'proprietary'],
'reporter' : '.mario'
},
{ /* ID 26 - E4X-based UTF-7 JavaScript snippet stealing cross-domain markup */
'id' : 26,
'category' : 'e4x',
'name' : {
'en' : 'E4X-based UTF-7 JavaScript/HTML snippet stealing cross-domain markup',
'ja' : '',
'ru' : 'Кодированный UTF-7 JavaScript/HTML фрагмент на основе E4X для междоменного доступа к разметке',
'cs' : 'Kód v JS/HTML, využívající UTF-7 a E4X ke cross-domain přístupu k HTML',
'de' : '',
'tr' : 'E4X tabanlı UTF-7 JavaScript/HTML kod parçası ile "cross-domain" etiket çalma'
},
'data' : '+ADw-html+AD4APA-body+AD4APA-div+AD4-top secret+ADw-/div+AD4APA-/body+AD4APA-/html+AD4-.toXMLString().match(/.*/m),%js_alert_only%(RegExp.input);',
'description': {
'en' : 'In case an attacker can inject the character sequence beginning with .toXMLString() it\'s possible to include the victimized website in a <SCRIPT> tag loaded from an arbitrary page and steal the markup of the included page - across domain and protocol borders. Note that the whole vector is encoded in UTF-7. This is possible since the including <SCRIPT> tag can decide via charset attribute what charset to use.',