简单地说,XSS攻击就是JavaScript注入,和SQL注入类似,在画面的输入框上精心构造JavaScript,然后提交出去。当被执行的时候,就可以执行该JavaScript,获取很多隐私数据。下面,将使用WebGoat中的LAB:Cross Site Scripting进行攻击实战。
在这个练习中,读者将执行存储和反射型XSS攻击,要求通过实现对Web应用程序代码的修改击败这些攻击。
图7-24 网络钓鱼
1.存储型的跨站点脚本(XSS)攻击
要求读者以“Tom”或其他职员的身份,编辑个人资料页上的“Street”字段,执行存储型XSS攻击,确认用户Jerry被攻击的影响。
(1)分析
这个案例需要执行一个存储型的XSS。存储型XSS是攻击者将XSS代码保存在服务器上,任何用户访问都会中招。
1)在职员Larry的个人资料中插入XSS脚本;
2)管理员在查看Larry的个人资料时运行脚本中招,这样就可以盗取管理员身份,或者利用管理员身份来做其他事情,例如CSRF。
(2)方法和步骤
1)登录Larry用户,修改用户资料,把Street修改为<script>;alert(′xss′)</script>;,如图7-25所示。
图7-25 修改用户资料
2)单击“UpdateProfile”之后立即弹出窗口,说明这个XSS是可行的。
3)退出Larry用户,登录Moe查看Larry的信息,验证攻击是否成功。
2.反射型XSS攻击
使用WebGoat中的LAB:Cross Site Scripting的Stage 5:Reflected XSS进行攻击实战。(www.xing528.com)
在HTTP响应中使用未经验证的用户输入时,也可能发生XSS攻击。在反射型XSS攻击中,攻击者可以手工地加入攻击脚本的URL,并用张贴到网站、通过电子邮件发送或引诱用户单击的方式进行反射型XSS攻击。
(1)分析
当客户端发送什么,服务器就返回什么的时候,就会出现反射型XSS,比如搜索框。
(2)方法和步骤
登录一个manager;
在搜索框中输入<script>;alert(′xss′)</script>;,如图7-26所示。
图7-26 在搜索框中输入
这样就可以通过反射型XSS攻击,修改页面数据来达到攻击的目的。
(3)实例
下面是一个XSS注入攻击的例子。
原版:<input type="hidden"name="h1"value="hiddenValue"/>;
在value=后面的""之间注入漏洞:
结果:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。