From 85c6843ee4c2ec3b3cc902ad916cdbf06f6bc2fc Mon Sep 17 00:00:00 2001 From: "cam.morris" Date: Fri, 23 Oct 2009 21:23:17 +0000 Subject: [PATCH] This change includes two additional CSRF lessons. One for by-passing a prompt (showing why prompts don't work). The second for by-passing CSRF tokens when XSS exists. It also modifies the existing CSRF lesson so that the lesson can be extended and used by the two new lessons. git-svn-id: http://webgoat.googlecode.com/svn/trunk@386 4033779f-a91e-0410-96ef-6bf7bf53c507 --- .../org/owasp/webgoat/lessons/CSRF.java | 74 ++++++- .../webgoat/lessons/CsrfPromptByPass.java | 200 ++++++++++++++++++ .../webgoat/lessons/CsrfTokenByPass.java | 181 ++++++++++++++++ .../WEB-INF/webgoat-class.properties | 2 + .../WebContent/WEB-INF/webgoat-lab.properties | 2 + .../lesson_plans/CsrfPromptByPass.html | 32 +++ .../lesson_plans/CsrfTokenByPass.html | 37 ++++ .../lesson_solutions/CsrfPromptByPass.html | 109 ++++++++++ .../iframePromptHack.png | Bin 0 -> 241292 bytes .../iframePromptHacked.png | Bin 0 -> 260159 bytes .../CsrfPromptByPass_files/imgPromptHack.png | Bin 0 -> 235122 bytes .../transferFundsComplete.png | Bin 0 -> 211266 bytes .../transferFundsHack.png | Bin 0 -> 223230 bytes .../transferFundsPage.png | Bin 0 -> 209423 bytes .../transferFundsPrompt.png | Bin 0 -> 210466 bytes .../lesson_solutions/CsrfTokenByPass.html | 121 +++++++++++ .../CsrfTokenByPass_files/tokenHack.png | Bin 0 -> 242576 bytes .../CsrfTokenByPass_files/tokenHacked.png | Bin 0 -> 319946 bytes .../CsrfTokenByPass_files/tokenPage.png | Bin 0 -> 233817 bytes 19 files changed, 747 insertions(+), 11 deletions(-) create mode 100644 webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CsrfPromptByPass.java create mode 100644 webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CsrfTokenByPass.java create mode 100644 webgoat/main/project/WebContent/lesson_plans/CsrfPromptByPass.html create mode 100644 webgoat/main/project/WebContent/lesson_plans/CsrfTokenByPass.html create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass.html create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass_files/iframePromptHack.png create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass_files/iframePromptHacked.png create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass_files/imgPromptHack.png create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass_files/transferFundsComplete.png create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass_files/transferFundsHack.png create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass_files/transferFundsPage.png create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass_files/transferFundsPrompt.png create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfTokenByPass.html create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfTokenByPass_files/tokenHack.png create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfTokenByPass_files/tokenHacked.png create mode 100644 webgoat/main/project/WebContent/lesson_solutions/CsrfTokenByPass_files/tokenPage.png diff --git a/webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CSRF.java b/webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CSRF.java index 290fab958..eb246f25d 100644 --- a/webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CSRF.java +++ b/webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CSRF.java @@ -6,11 +6,17 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; +import java.util.Enumeration; import java.util.List; + +import javax.servlet.http.HttpSession; + import org.apache.ecs.Element; import org.apache.ecs.ElementContainer; import org.apache.ecs.StringElement; import org.apache.ecs.html.B; +import org.apache.ecs.html.BR; +import org.apache.ecs.html.Form; import org.apache.ecs.html.H1; import org.apache.ecs.html.HR; import org.apache.ecs.html.IMG; @@ -58,7 +64,8 @@ import org.owasp.webgoat.util.HtmlEncoder; */ public class CSRF extends LessonAdapter { - + protected static final String TRANSFER_FUNDS_PARAMETER = "transferFunds"; + protected static final String TRANSFER_FUNDS_PAGE = "main"; private final static String MESSAGE = "message"; private final static int MESSAGE_COL = 3; private final static String NUMBER = "Num"; @@ -108,17 +115,61 @@ public class CSRF extends LessonAdapter protected Element createContent(WebSession s) { ElementContainer ec = new ElementContainer(); - - addMessage(s); - ec.addElement(makeInput(s)); - ec.addElement(new HR()); - ec.addElement(makeCurrent(s)); - ec.addElement(new HR()); - ec.addElement(makeList(s)); - + + if (isTransferFunds(s)){ + ec.addElement(doTransfer(s)); + } else { + addMessage(s); + ec.addElement(makeInput(s)); + ec.addElement(new HR()); + ec.addElement(makeCurrent(s)); + ec.addElement(new HR()); + ec.addElement(makeList(s)); + } return ec; } + /** + * if TRANSFER_FUND_PARAMETER is a parameter, then doTransfer is invoked. doTranser presents the + * web content to display the electronic transfer of funds. An request + * should have a dollar amount specified. When this page is accessed it will mark the lesson complete + * + * @param s + * @return Element will appropriate web content for a transfer of funds. + */ + protected Element doTransfer(WebSession s) { + String transferFunds = HtmlEncoder.encode(s.getParser().getRawParameter(TRANSFER_FUNDS_PARAMETER, "")); + ElementContainer ec = new ElementContainer(); + + if (transferFunds.equalsIgnoreCase(TRANSFER_FUNDS_PAGE)){ + + //transfer form + ec.addElement(new H1("Electronic Transfer:")); + String action = getLink(); + Form form = new Form(action, Form.POST); + form.addElement( new Input(Input.text, TRANSFER_FUNDS_PARAMETER, "0")); + //if this token is present we won't mark the lesson as completed + form.addElement( new Input(Input.submit)); + ec.addElement(form); + //present transfer funds form + } else if (transferFunds.length() != 0){ + + //transfer is confirmed + ec.addElement(new H1("Electronic Transfer Complete")); + ec.addElement(new StringElement("Amount Transfered: "+transferFunds)); + makeSuccess(s); + } + return ec; + } + + /** + * @param s current web session + * @return true if the page should be rendered as a Transfer of funds page or false for the normal message posting page. + */ + protected boolean isTransferFunds(WebSession s) { + return s.getRequest().getParameterMap().containsKey(TRANSFER_FUNDS_PARAMETER); + } + /** * Description of the Method * @@ -142,7 +193,8 @@ public class CSRF extends LessonAdapter row2.addElement(item1); TD item2 = new TD(); - TextArea ta = new TextArea(MESSAGE, 5, 60); + TextArea ta = new TextArea(MESSAGE, 12, 60); + ta.addAttribute("wrap", "soft"); item2.addElement(ta); row2.addElement(item2); t.addElement(row1); @@ -281,7 +333,7 @@ public class CSRF extends LessonAdapter return Category.XSS; } - private final static Integer DEFAULT_RANKING = new Integer(120); + private final static Integer DEFAULT_RANKING = new Integer(121); @Override protected Integer getDefaultRanking() diff --git a/webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CsrfPromptByPass.java b/webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CsrfPromptByPass.java new file mode 100644 index 000000000..f449a1616 --- /dev/null +++ b/webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CsrfPromptByPass.java @@ -0,0 +1,200 @@ + +package org.owasp.webgoat.lessons; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpSession; + +import org.apache.ecs.Element; +import org.apache.ecs.ElementContainer; +import org.apache.ecs.StringElement; +import org.apache.ecs.html.A; +import org.apache.ecs.html.B; +import org.apache.ecs.html.BR; +import org.apache.ecs.html.Form; +import org.apache.ecs.html.H1; +import org.apache.ecs.html.HR; +import org.apache.ecs.html.IMG; +import org.apache.ecs.html.Input; +import org.apache.ecs.html.P; +import org.apache.ecs.html.TD; +import org.apache.ecs.html.TR; +import org.apache.ecs.html.Table; +import org.apache.ecs.html.TextArea; +import org.owasp.webgoat.session.DatabaseUtilities; +import org.owasp.webgoat.session.ECSFactory; +import org.owasp.webgoat.session.WebSession; +import org.owasp.webgoat.util.HtmlEncoder; + + +/*************************************************************************************************** + * + * + * This file is part of WebGoat, an Open Web Application Security Project utility. For details, + * please see http://www.owasp.org/ + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program; if + * not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Getting Source ============== + * + * Source for this application is maintained at code.google.com, a repository for free software + * projects. + * + * For details, please see http://code.google.com/p/webgoat/ + * + * @author Contributed by PartNet. + * + */ +public class CsrfPromptByPass extends CSRF +{ + protected static final String TRANSFER_FUND_AMOUNT_ATTRIBUTE = "transferFundAmount"; + protected static final String CANCEL_TRANSFER = "CANCEL"; + protected static final String CONFIRM_TRANFER = "CONFIRM"; + + /** + * if TRANSFER_FUND_PARAMETER is a parameter, them doTransfer is invoked. doTranser presents the + * web content to confirm and then execute a simulated transfer of funds. An initial request + * should have a dollar amount specified. The amount will be stored and a confirmation form is presented. + * The confirmation can be canceled or confirmed. Confirming the transfer will mark this lesson as completed. + * + * @param s + * @return Element will appropriate web content for a transfer of funds. + */ + protected Element doTransfer(WebSession s) { + String transferFunds = HtmlEncoder.encode(s.getParser().getRawParameter(TRANSFER_FUNDS_PARAMETER, "")); + ElementContainer ec = new ElementContainer(); + + if (transferFunds.length() != 0) { + + HttpSession httpSession = s.getRequest().getSession(); + Integer transferAmount = (Integer) httpSession.getAttribute(TRANSFER_FUND_AMOUNT_ATTRIBUTE); + + if (transferFunds.equalsIgnoreCase(TRANSFER_FUNDS_PAGE)){ + + //present transfer form + ec.addElement(new H1("Electronic Transfer:")); + String action = getLink(); + Form form = new Form(action, Form.POST); + form.addElement( new Input(Input.text, TRANSFER_FUNDS_PARAMETER, "0")); + //if this token is present we won't mark the lesson as completed + form.addElement( new Input(Input.submit)); + ec.addElement(form); + + } else if (transferFunds.equalsIgnoreCase(CONFIRM_TRANFER) && transferAmount != null ){ + + //transfer is confirmed + ec.addElement(new H1("Electronic Transfer Complete")); + ec.addElement(new StringElement("Amount Transfered: "+transferAmount)); + makeSuccess(s); + + } else if (transferFunds.equalsIgnoreCase(CANCEL_TRANSFER)){ + + //clear any pending fund transfer + s.getRequest().removeAttribute(TRANSFER_FUND_AMOUNT_ATTRIBUTE); + + } else if (transferFunds.length() > 0){ + + //save the transfer amount in the session + transferAmount = new Integer(transferFunds); + httpSession.setAttribute(TRANSFER_FUND_AMOUNT_ATTRIBUTE, transferAmount); + + //prompt for confirmation + + ec.addElement(new H1("Electronic Transfer Confirmation:")); + ec.addElement(new StringElement("Amount to transfer: "+transferAmount)); + ec.addElement(new BR()); + String action = getLink(); + Form form = new Form(action, Form.POST); + form.addElement( new Input(Input.submit, TRANSFER_FUNDS_PARAMETER, CONFIRM_TRANFER)); + form.addElement( new Input(Input.submit, TRANSFER_FUNDS_PARAMETER, CANCEL_TRANSFER)); + ec.addElement(form); + } + } + // white space + ec.addElement(new BR()); + ec.addElement(new BR()); + ec.addElement(new BR()); + return ec; + } + + /** + * @param s current web session + * @return true if the page should be rendered as a Transfer of funds page or false for the normal message posting page. + */ + protected boolean isTransferFunds(WebSession s) { + String transferFunds = s.getParser().getRawParameter(TRANSFER_FUNDS_PARAMETER, ""); + if (transferFunds.length() != 0){ + return true; + } + return false; + } + + @Override + protected Category getDefaultCategory() + { + return Category.XSS; + } + + private final static Integer DEFAULT_RANKING = new Integer(122); + + @Override + protected Integer getDefaultRanking() + { + + return DEFAULT_RANKING; + } + + @Override + protected List getHints(WebSession s) + { + List hints = new ArrayList(); + hints.add("Add 'transferFunds=400' to the URL and inspect the form that is returned"); + hints.add("Add java script to send the confirmation after requesting the transfer"); + hints.add("Insert two images or iframes, the second with no source. Specify the onload attribute of the first to set the source of the second. "); + hints.add("Include this URL in the message
<img src='" + getLink()
+				+ "&transferFunds=5000' width=\"1\" height=\"1\" />
"); + + return hints; + } + + /** + * Gets the title attribute of the MessageBoardScreen object + * + * @return The title value + */ + public String getTitle() + { + return ("CSRF Prompt By-Pass"); + } + + public Element getCredits() + { + A partnet = new A("http://www.partnet.com"); + partnet.setPrettyPrint(false); + partnet.addElement(new StringElement("PART")); + partnet.addElement(new B().addElement(new StringElement("NET")).setPrettyPrint(false)); + partnet.setStyle("background-color:midnightblue;color:white"); + + ElementContainer credits = new ElementContainer(); + credits.addElement(new StringElement("Contributed by ")); + credits.addElement(partnet); + credits.addElement(new BR()); + credits.addElement(new StringElement("Derived from CSRF Lesson by Sherif Koussa")); + return credits; + } +} diff --git a/webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CsrfTokenByPass.java b/webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CsrfTokenByPass.java new file mode 100644 index 000000000..55ab1fc74 --- /dev/null +++ b/webgoat/main/project/JavaSource/org/owasp/webgoat/lessons/CsrfTokenByPass.java @@ -0,0 +1,181 @@ + +package org.owasp.webgoat.lessons; + +import java.security.SecureRandom; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import javax.servlet.http.HttpSession; + +import org.apache.ecs.Element; +import org.apache.ecs.ElementContainer; +import org.apache.ecs.StringElement; +import org.apache.ecs.html.A; +import org.apache.ecs.html.B; +import org.apache.ecs.html.BR; +import org.apache.ecs.html.Form; +import org.apache.ecs.html.H1; +import org.apache.ecs.html.H2; +import org.apache.ecs.html.HR; +import org.apache.ecs.html.IMG; +import org.apache.ecs.html.Input; +import org.apache.ecs.html.P; +import org.apache.ecs.html.TD; +import org.apache.ecs.html.TR; +import org.apache.ecs.html.Table; +import org.apache.ecs.html.TextArea; +import org.owasp.webgoat.session.DatabaseUtilities; +import org.owasp.webgoat.session.ECSFactory; +import org.owasp.webgoat.session.WebSession; +import org.owasp.webgoat.util.HtmlEncoder; + + +/*************************************************************************************************** + * + * + * This file is part of WebGoat, an Open Web Application Security Project utility. For details, + * please see http://www.owasp.org/ + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program; if + * not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Getting Source ============== + * + * Source for this application is maintained at code.google.com, a repository for free software + * projects. + * + * For details, please see http://code.google.com/p/webgoat/ + * + * @author Contributed by PartNet. + * + */ +public class CsrfTokenByPass extends CsrfPromptByPass +{ + protected static final String TRANSFER_FUNDS_PARAMETER = "transferFunds"; + private static final String CSRFTOKEN = "CSRFToken"; + private static final int INVALID_TOKEN = 0; + private final Random random; + + public CsrfTokenByPass(){ + super(); + random = new SecureRandom(); + } + /** + * if TRANSFER_FUND_PARAMETER is a parameter, them doTransfer is invoked. doTranser presents the + * web content to confirm and then execute a simulated transfer of funds. An initial request + * should have a dollar amount specified. The amount will be stored and a confirmation form is presented. + * The confirmation can be canceled or confirmed. Confirming the transfer will mark this lesson as completed. + * + * @param s + * @return Element will appropriate web content for a transfer of funds. + */ + protected Element doTransfer(WebSession s) { + String transferFunds = HtmlEncoder.encode(s.getParser().getRawParameter(TRANSFER_FUNDS_PARAMETER, "")); + String passedInTokenString = HtmlEncoder.encode(s.getParser().getRawParameter(CSRFTOKEN, "")); + ElementContainer ec = new ElementContainer(); + + if (transferFunds.length() != 0) + { + HttpSession httpSession = s.getRequest().getSession(); + + //get tokens to validate + Integer sessionToken = (Integer) httpSession.getAttribute(CSRFTOKEN); + Integer passedInToken = s.getParser().getIntParameter(CSRFTOKEN, INVALID_TOKEN); + + if (transferFunds.equalsIgnoreCase(TRANSFER_FUNDS_PAGE)){ + + //generate new random token: + int token = INVALID_TOKEN; + while (token == INVALID_TOKEN){ + token = random.nextInt(); + } + httpSession.setAttribute(CSRFTOKEN, token); + + //present transfer form + ec.addElement(new H1("Electronic Transfer:")); + String action = getLink(); + Form form = new Form(action, Form.POST); + form.addAttribute("id", "transferForm"); + form.addElement( new Input(Input.text, TRANSFER_FUNDS_PARAMETER, "0")); + form.addElement( new Input(Input.hidden, CSRFTOKEN, token)); + form.addElement( new Input(Input.submit)); + ec.addElement(form); + //present transfer funds form + + } else if (transferFunds.length() > 0 && sessionToken != null && sessionToken.equals(passedInToken)){ + + //transfer is confirmed + ec.addElement(new H1("Electronic Transfer Complete")); + ec.addElement(new StringElement("Amount Transfered: "+transferFunds)); + makeSuccess(s); + + } + //white space + ec.addElement(new BR()); + ec.addElement(new BR()); + ec.addElement(new BR()); + } + return ec; + } + + + private final static Integer DEFAULT_RANKING = new Integer(123); + + @Override + protected Integer getDefaultRanking() + { + + return DEFAULT_RANKING; + } + + @Override + protected List getHints(WebSession s) + { + List hints = new ArrayList(); + hints.add("Add 'transferFunds=main' to the URL and inspect the form that is returned"); + hints.add("The forged request needs both a token and the transfer funds parameter"); + hints.add("Find the token in the page with transferFunds=main. Can you script a way to get the token?"); + + return hints; + } + + /** + * Gets the title attribute of the MessageBoardScreen object + * + * @return The title value + */ + public String getTitle() + { + return ("CSRF Token By-Pass"); + } + + public Element getCredits() + { + A partnet = new A("http://www.partnet.com"); + partnet.setPrettyPrint(false); + partnet.addElement(new StringElement("PART")); + partnet.addElement(new B().addElement(new StringElement("NET")).setPrettyPrint(false)); + partnet.setStyle("background-color:midnightblue;color:white"); + + ElementContainer credits = new ElementContainer(); + credits.addElement(new StringElement("Contributed by ")); + credits.addElement(partnet); + credits.addElement(new BR()); + credits.addElement(new StringElement("Derived from CSRF Lesson by Sherif Koussa")); + return credits; + } +} diff --git a/webgoat/main/project/WebContent/WEB-INF/webgoat-class.properties b/webgoat/main/project/WebContent/WEB-INF/webgoat-class.properties index e8de6a179..088a6334d 100644 --- a/webgoat/main/project/WebContent/WEB-INF/webgoat-class.properties +++ b/webgoat/main/project/WebContent/WEB-INF/webgoat-class.properties @@ -16,6 +16,8 @@ category.Cross-Site\ Scripting\ (XSS).ranking=41 lesson.StoredXss.ranking=10 lesson.ReflectedXSS.ranking=20 lesson.CSRF.ranking=30 +lesson.CsrfPromptByPass.ranking=40 +lesson.CsrfTokenByPass.ranking=50 lesson.CrossSiteScripting.hidden=true category.Unvalidated\ Parameters.ranking=51 diff --git a/webgoat/main/project/WebContent/WEB-INF/webgoat-lab.properties b/webgoat/main/project/WebContent/WEB-INF/webgoat-lab.properties index 95adfcacc..abd6385d7 100644 --- a/webgoat/main/project/WebContent/WEB-INF/webgoat-lab.properties +++ b/webgoat/main/project/WebContent/WEB-INF/webgoat-lab.properties @@ -15,6 +15,8 @@ category.Cross-Site\ Scripting\ (XSS).ranking=41 lesson.StoredXss.ranking=10 lesson.ReflectedXSS.ranking=20 lesson.CSRF.ranking=30 +lesson.CsrfPromptByPass.ranking=40 +lesson.CsrfTokenByPass.ranking=50 category.Unvalidated\ Parameters.ranking=51 lesson.HiddenFieldTampering.ranking=10 diff --git a/webgoat/main/project/WebContent/lesson_plans/CsrfPromptByPass.html b/webgoat/main/project/WebContent/lesson_plans/CsrfPromptByPass.html new file mode 100644 index 000000000..a5b524be2 --- /dev/null +++ b/webgoat/main/project/WebContent/lesson_plans/CsrfPromptByPass.html @@ -0,0 +1,32 @@ +
+

Lesson Plan Title:CSRF User Prompt By-Pass


+
+ +

Concept / Topic To Teach:

+This lesson teaches how to perform CSRF attacks that by-pass user confirmation prompts. +
+
+

+How the attacks works: +

+Cross-Site Request Forgery (CSRF/XSRF) is an attack that tricks the victim into loading a page +that contains a 'forged request' to execute commands with the victim's credentials. Prompting +a user to confirm or cancel the command might sound like a solution, but can be by-passed if +the prompt is scriptable. This lesson shows how to by-pass such a prompt by issuing another +forged request. This can also apply to a series of prompts such as a wizard or issuing multiple +unrelated forged requests.

+ + +
+

General Goal(s):

+ +Similar to the CSRF Lesson, your goal is to send an email to a newsgroup that contains multiple +malicious requests: the first to transfer funds, and the second a request to confirm the prompt +that the first request triggered. The URL should point to the CSRF lesson with an extra +parameter "transferFunds=4000", and "transferFunds=CONFIRM". You can copy the shortcut from the +left hand menu by right clicking on the left hand menu and choosing copy shortcut. Whoever +receives this email and happens to be authenticated at that time will have his funds transferred. +When you think the attack is successful, refresh the page and you will find the green check on +the left hand side menu. + + diff --git a/webgoat/main/project/WebContent/lesson_plans/CsrfTokenByPass.html b/webgoat/main/project/WebContent/lesson_plans/CsrfTokenByPass.html new file mode 100644 index 000000000..b0cbe426d --- /dev/null +++ b/webgoat/main/project/WebContent/lesson_plans/CsrfTokenByPass.html @@ -0,0 +1,37 @@ +
+

Lesson Plan Title:CSRF Token Prompt By-Pass


+
+ +

Concept / Topic To Teach:

+This lesson teaches how to perform CSRF attacks on sites that use tokens to mitigate CSRF attacks, but are vulnerable to CSS attacks. +
+
+

+How the attacks works: +

+

+Cross-Site Request Forgery (CSRF/XSRF) is an attack that tricks the victim into +loading a page that contains a 'forged request' to execute commands with the +victim's credentials.

+ +

Token-based request authentication mitigates these attacks. This technique +inserts tokens into pages that issue requests. These tokens are required to +complete a request, and help verify that requests are not scripted. CSRFGuard from OWASP uses +this technique to help prevent CSRF attacks.

+ +

However, this technique can be by-passed if CSS vulnerabilities exist on the same site. +Because of the same-origin browser policy, pages from the same domain can read content from +other pages from the same domain.

+ +
+

General Goal(s):

+ +Similar to the CSRF Lesson, your goal is to send an email to a newsgroup that contains a malicious +request to transfer funds. To successfully complete you need to obtain a valid request token. +The page that presents the transfer funds form contains a valid request token. The URL for the +transfer funds page is the same as this lesson with an extra parameter "transferFunds=main". Load +this page, read the token and append the token in a forged request to transferFunds. When you think +the attack is successful, refresh the page and you will find the green check on the left hand side menu. + + + diff --git a/webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass.html b/webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass.html new file mode 100644 index 000000000..6faed2817 --- /dev/null +++ b/webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass.html @@ -0,0 +1,109 @@ + + + + +Client Side Filtering + + + +

Lesson Plan Title:Prompt By-Pass with CSRF

+ +

Concept / Topic To Teach:
+This lesson teaches how to perform Cross Site Request Forgery (CSRF) attacks containing +multiple requests to by-pass a scriptable user-prompt +

+ +

General Goal(s):
+Similar to the CSRF Lesson, your goal is to send an email to a newsgroup that contains multiple +malicious requests: the first to transfer funds, and the second a request to confirm the prompt +that the first request triggered. The URL should point to the CSRF lesson with an extra +parameter "transferFunds=4000", and "transferFunds=CONFIRM". You can copy the shortcut from the +left hand menu by right clicking on the left hand menu and choosing copy shortcut. Whoever +receives this email and happens to be authenticated at that time will have his funds transferred. +When you think the attack is successful, refresh the page and you will find the green check on +the left hand side menu +

+ +Solution:
+ +

Start by crafting an image or iframe tag similar to the CSRF LAB: <img +src="http://localhostattack?Screen=81&menu=210&transferFunds=5000" +width="1" height="1" /> + +This image request will not result in a transfer of funds but will instead +prompt the user for confirmation. To see the confirmation prompt, try typing in the URL of the +Lesson with the extra parameter of "transferFunds=4000"
+ +User Prompt for confirmation of the transfer of funds
+User Prompt +

+

+Next look at the source of the page to see what parameters the confirmation requires. +The form in the confirmation prompt looks like the following: + + +

<form accept-charset='UNKNOWN' method='POST' action='attack?Screen=5&menu=900' enctype='application/x-www-form-urlencoded'>
+	<input name='transferFunds' type='submit' value='CONFIRM'>
+	<input name='transferFunds' type='submit' value='CANCEL'>
+</form>
+ +From this we see the next forged command will need the folllowing URL:
+attack?Screen=5&menu=900&transferFunds=CONFIRM
+This solution shows how to do this attack with both iframes and images. The next step is to +add the additional forged confirmation request. However, an additional iframe or image with +this URL will not be sufficient. The second request must load after the first. So add +Javascript to load the second command after the first. For iframes, make the onload attribute +of the first frame set the src of the second iframe:
+ + +
<iframe
+	src="http://localhost:8080/WebGoat/attack?Screen=5&menu=900&transferFunds=400"
+	id="myFrame" frameborder="1" marginwidth="0"
+	marginheight="0" width="800" scrolling=yes height="300"
+	onload="document.getElementById('frame2').src='http://localhost:8080/WebGoat/attack?Screen=5&menu=900&transferFunds=CONFIRM';">
+
</iframe>
+	
+<iframe
+	id="frame2" frameborder="1" marginwidth="0"
+	marginheight="0" width="800" scrolling=yes height="300">
+</iframe>
+
+
+ +Next add the iframes into a message stored on the web page:
+Picture of embedded message
+Insert iframes hack picture
+

+The following shows the result of clicking on the malicious iframe message: +Picture of the malicious iframe message
+Results of iframes hack picture
+In the above image, note that the first frame shows the user prompt, the result of the +first forged request to transfer funds. In the second frame the results of the second +forged request (the confirmation) are shown, indicating that 4000 dollars were successfully +transfered. Refreshing the page will indicate that this lesson has been completed. +

+

+In a real attack these results would be hidden from the end user. Click "restart this lesson" +to attempt the attack again, only this time try hiding the attack with hidden or very small frames. +

+

+For images, loading an html page as an image will cause an error. So instead of using the onload attribute, use onerror: +
+ +<img +src="http://localhostattack?Screen=81&menu=210&transferFunds=5000" +onerror="document.getElementById('image2').src='http://localhostattack?Screen=81&menu=210&transferFunds=CONFIRM'" +width="1" height="1" /> +<img +id="image2" +width="1" height="1" /> + +
+Next store the malicious images in a message and click the message to attempt the attack. +Picture of the malicious iframe message
+Picture of adding malicious image requests
+Refreshing the page should indicate that this lesson has been completed. Congratulations. One way for developers to limit +CSRF attacks is to only allow requests to be issued via HTTP Post. That would remove any attacks by images or iframes, but +not for XmlHttpRequests in Javascript. For extra credit, you could try the same attack but instead use XmlHttpRequest over post. + + \ No newline at end of file diff --git a/webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass_files/iframePromptHack.png b/webgoat/main/project/WebContent/lesson_solutions/CsrfPromptByPass_files/iframePromptHack.png new file mode 100644 index 0000000000000000000000000000000000000000..3971e484fda03cacafd12bf7f030ab07f769154a GIT binary patch literal 241292 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 z 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