Fix database connetion handling.
Oracle requires us to close our connections after each request (or else implement a connection pool), otherwise we will end up running out of available connections. While the mechanism for doing this was added in a previous change, actually using it correctly was omitted somehow. Fix that now. git-svn-id: http://webgoat.googlecode.com/svn/trunk@233 4033779f-a91e-0410-96ef-6bf7bf53c507
This commit is contained in:
parent
aab0125c50
commit
c3cee22113
@ -57,8 +57,6 @@ import org.owasp.webgoat.session.WebSession;
|
|||||||
public class BackDoors extends SequentialLessonAdapter
|
public class BackDoors extends SequentialLessonAdapter
|
||||||
{
|
{
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
private final static Integer DEFAULT_RANKING = new Integer(80);
|
private final static Integer DEFAULT_RANKING = new Integer(80);
|
||||||
|
|
||||||
private final static String USERNAME = "username";
|
private final static String USERNAME = "username";
|
||||||
@ -96,7 +94,7 @@ public class BackDoors extends SequentialLessonAdapter
|
|||||||
{
|
{
|
||||||
userInput = SELECT_ST + userInput;
|
userInput = SELECT_ST + userInput;
|
||||||
String[] arrSQL = userInput.split(";");
|
String[] arrSQL = userInput.split(";");
|
||||||
Connection conn = getConnection(s);
|
Connection conn = DatabaseUtilities.getConnection(s);
|
||||||
Statement statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
|
Statement statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
|
||||||
ResultSet.CONCUR_READ_ONLY);
|
ResultSet.CONCUR_READ_ONLY);
|
||||||
if (arrSQL.length == 2)
|
if (arrSQL.length == 2)
|
||||||
@ -239,17 +237,6 @@ public class BackDoors extends SequentialLessonAdapter
|
|||||||
return ec;
|
return ec;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static synchronized Connection getConnection(WebSession s) throws SQLException,
|
|
||||||
ClassNotFoundException
|
|
||||||
{
|
|
||||||
if (connection == null)
|
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
return connection;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Element getCredits()
|
public Element getCredits()
|
||||||
{
|
{
|
||||||
return super.getCustomCredits("Created by Sherif Koussa ", MAC_LOGO);
|
return super.getCustomCredits("Created by Sherif Koussa ", MAC_LOGO);
|
||||||
|
@ -57,8 +57,6 @@ public class BlindSqlInjection extends LessonAdapter
|
|||||||
|
|
||||||
private final static int TARGET_ACCT_NUM = 15613;
|
private final static int TARGET_ACCT_NUM = 15613;
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of the Method
|
* Description of the Method
|
||||||
*
|
*
|
||||||
@ -72,10 +70,7 @@ public class BlindSqlInjection extends LessonAdapter
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
ec.addElement(new P().addElement("Enter your Account Number: "));
|
ec.addElement(new P().addElement("Enter your Account Number: "));
|
||||||
|
|
||||||
@ -312,11 +307,6 @@ public class BlindSqlInjection extends LessonAdapter
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
super.handleRequest(s);
|
super.handleRequest(s);
|
||||||
|
|
||||||
if (connection == null)
|
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -65,7 +65,6 @@ public class CSRF extends LessonAdapter {
|
|||||||
private final static String STANDARD_QUERY = "SELECT * FROM messages";
|
private final static String STANDARD_QUERY = "SELECT * FROM messages";
|
||||||
private final static String TITLE = "title";
|
private final static String TITLE = "title";
|
||||||
private final static int TITLE_COL = 2;
|
private final static int TITLE_COL = 2;
|
||||||
private static Connection connection = null;
|
|
||||||
private static int count = 1;
|
private static int count = 1;
|
||||||
private final static int USER_COL = 4; // Added by Chuck Willis - used to show user who posted message
|
private final static int USER_COL = 4; // Added by Chuck Willis - used to show user who posted message
|
||||||
private final static IMG MAC_LOGO = new IMG("images/logos/macadamian.gif").setAlt(
|
private final static IMG MAC_LOGO = new IMG("images/logos/macadamian.gif").setAlt(
|
||||||
@ -83,10 +82,7 @@ public class CSRF extends LessonAdapter {
|
|||||||
String title = HtmlEncoder.encode( s.getParser().getRawParameter( TITLE, "" ) );
|
String title = HtmlEncoder.encode( s.getParser().getRawParameter( TITLE, "" ) );
|
||||||
String message = s.getParser().getRawParameter( MESSAGE, "" );
|
String message = s.getParser().getRawParameter( MESSAGE, "" );
|
||||||
|
|
||||||
if ( connection == null )
|
Connection connection = DatabaseUtilities.getConnection( s );
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection( s );
|
|
||||||
}
|
|
||||||
|
|
||||||
String query = "INSERT INTO messages VALUES (?, ?, ?, ? )";
|
String query = "INSERT INTO messages VALUES (?, ?, ?, ? )";
|
||||||
|
|
||||||
@ -171,10 +167,7 @@ public class CSRF extends LessonAdapter {
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if ( connection == null )
|
Connection connection = DatabaseUtilities.getConnection( s );
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection( s );
|
|
||||||
}
|
|
||||||
|
|
||||||
Statement statement = connection.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
|
Statement statement = connection.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
|
||||||
|
|
||||||
@ -226,11 +219,7 @@ public class CSRF extends LessonAdapter {
|
|||||||
{
|
{
|
||||||
int messageNum = s.getParser().getIntParameter( NUMBER, 0 );
|
int messageNum = s.getParser().getIntParameter( NUMBER, 0 );
|
||||||
|
|
||||||
if ( connection == null )
|
Connection connection = DatabaseUtilities.getConnection( s );
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection( s );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
String query = "SELECT * FROM messages WHERE user_name LIKE ? and num = ?";
|
String query = "SELECT * FROM messages WHERE user_name LIKE ? and num = ?";
|
||||||
PreparedStatement statement = connection.prepareStatement( query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
|
PreparedStatement statement = connection.prepareStatement( query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
|
||||||
|
@ -118,8 +118,6 @@ public class Challenge2Screen extends SequentialLessonAdapter
|
|||||||
*/
|
*/
|
||||||
protected final static String USERNAME = "Username";
|
protected final static String USERNAME = "Username";
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
private String pass = "goodbye";
|
private String pass = "goodbye";
|
||||||
|
|
||||||
private String user = "youaretheweakestlink";
|
private String user = "youaretheweakestlink";
|
||||||
@ -207,10 +205,7 @@ public class Challenge2Screen extends SequentialLessonAdapter
|
|||||||
return doStage3(s);
|
return doStage3(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
Statement statement3 = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
|
Statement statement3 = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
|
||||||
ResultSet.CONCUR_READ_ONLY);
|
ResultSet.CONCUR_READ_ONLY);
|
||||||
|
@ -69,9 +69,6 @@ public class DOS_Login extends LessonAdapter
|
|||||||
*/
|
*/
|
||||||
protected final static String USERNAME = "Username";
|
protected final static String USERNAME = "Username";
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of the Method
|
* Description of the Method
|
||||||
*
|
*
|
||||||
@ -97,10 +94,7 @@ public class DOS_Login extends LessonAdapter
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check if the login is valid
|
// Check if the login is valid
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
String query = "SELECT * FROM user_system_data WHERE user_name = '"
|
String query = "SELECT * FROM user_system_data WHERE user_name = '"
|
||||||
+ username + "' and password = '" + password + "'";
|
+ username + "' and password = '" + password + "'";
|
||||||
|
@ -65,15 +65,6 @@ import org.owasp.webgoat.session.WebgoatContext;
|
|||||||
public class SoapRequest extends SequentialLessonAdapter
|
public class SoapRequest extends SequentialLessonAdapter
|
||||||
{
|
{
|
||||||
|
|
||||||
/* TEST CODE
|
|
||||||
private final static String ACCT_NUM = "account_number";
|
|
||||||
private static Connection connection = null;
|
|
||||||
private String accountNumber;
|
|
||||||
*/
|
|
||||||
|
|
||||||
//static boolean completed;
|
|
||||||
public static Connection connection = null;
|
|
||||||
|
|
||||||
public final static String firstName = "getFirstName";
|
public final static String firstName = "getFirstName";
|
||||||
|
|
||||||
public final static String lastName = "getLastName";
|
public final static String lastName = "getLastName";
|
||||||
@ -429,10 +420,6 @@ public class SoapRequest extends SequentialLessonAdapter
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
Connection connection = DatabaseUtilities.getConnection("guest", getWebgoatContext());
|
Connection connection = DatabaseUtilities.getConnection("guest", getWebgoatContext());
|
||||||
if (connection == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
PreparedStatement ps = connection
|
PreparedStatement ps = connection
|
||||||
.prepareStatement("SELECT * FROM user_data WHERE userid = ?");
|
.prepareStatement("SELECT * FROM user_data WHERE userid = ?");
|
||||||
ps.setInt(1, id);
|
ps.setInt(1, id);
|
||||||
|
@ -59,8 +59,6 @@ public class SqlNumericInjection extends SequentialLessonAdapter
|
|||||||
{
|
{
|
||||||
private final static String STATION_ID = "station";
|
private final static String STATION_ID = "station";
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
private String station;
|
private String station;
|
||||||
|
|
||||||
|
|
||||||
@ -116,10 +114,7 @@ public class SqlNumericInjection extends SequentialLessonAdapter
|
|||||||
if (station == null)
|
if (station == null)
|
||||||
return ec;
|
return ec;
|
||||||
|
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -182,10 +177,7 @@ public class SqlNumericInjection extends SequentialLessonAdapter
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
ec.addElement(makeStationList(s));
|
ec.addElement(makeStationList(s));
|
||||||
|
|
||||||
@ -282,10 +274,7 @@ public class SqlNumericInjection extends SequentialLessonAdapter
|
|||||||
ClassNotFoundException
|
ClassNotFoundException
|
||||||
{
|
{
|
||||||
|
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, String> stations = new TreeMap<String, String>();
|
Map<String, String> stations = new TreeMap<String, String>();
|
||||||
String query = "SELECT DISTINCT station, name FROM WEATHER_DATA";
|
String query = "SELECT DISTINCT station, name FROM WEATHER_DATA";
|
||||||
@ -388,11 +377,6 @@ public class SqlNumericInjection extends SequentialLessonAdapter
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
super.handleRequest(s);
|
super.handleRequest(s);
|
||||||
|
|
||||||
if (connection == null)
|
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -55,8 +55,6 @@ public class SqlStringInjection extends SequentialLessonAdapter
|
|||||||
{
|
{
|
||||||
private final static String ACCT_NAME = "account_name";
|
private final static String ACCT_NAME = "account_name";
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
private static String STAGE = "stage";
|
private static String STAGE = "stage";
|
||||||
|
|
||||||
private String accountName;
|
private String accountName;
|
||||||
@ -92,10 +90,7 @@ public class SqlStringInjection extends SequentialLessonAdapter
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
ec.addElement(makeAccountLine(s));
|
ec.addElement(makeAccountLine(s));
|
||||||
|
|
||||||
@ -143,6 +138,7 @@ public class SqlStringInjection extends SequentialLessonAdapter
|
|||||||
catch (SQLException sqle)
|
catch (SQLException sqle)
|
||||||
{
|
{
|
||||||
ec.addElement(new P().addElement(sqle.getMessage()));
|
ec.addElement(new P().addElement(sqle.getMessage()));
|
||||||
|
sqle.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@ -174,10 +170,7 @@ public class SqlStringInjection extends SequentialLessonAdapter
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
ec.addElement(makeAccountLine(s));
|
ec.addElement(makeAccountLine(s));
|
||||||
|
|
||||||
@ -304,11 +297,6 @@ public class SqlStringInjection extends SequentialLessonAdapter
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
super.handleRequest(s);
|
super.handleRequest(s);
|
||||||
|
|
||||||
if (connection == null)
|
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -73,8 +73,6 @@ public class StoredXss extends LessonAdapter
|
|||||||
|
|
||||||
private final static int TITLE_COL = 2;
|
private final static int TITLE_COL = 2;
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
private static int count = 1;
|
private static int count = 1;
|
||||||
|
|
||||||
private final static int USER_COL = 4; // Added by Chuck Willis - used to show user who posted message
|
private final static int USER_COL = 4; // Added by Chuck Willis - used to show user who posted message
|
||||||
@ -93,10 +91,7 @@ public class StoredXss extends LessonAdapter
|
|||||||
TITLE, ""));
|
TITLE, ""));
|
||||||
String message = s.getParser().getRawParameter(MESSAGE, "");
|
String message = s.getParser().getRawParameter(MESSAGE, "");
|
||||||
|
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
String query = "INSERT INTO messages VALUES (?, ?, ?, ? )";
|
String query = "INSERT INTO messages VALUES (?, ?, ?, ? )";
|
||||||
|
|
||||||
@ -208,10 +203,7 @@ public class StoredXss extends LessonAdapter
|
|||||||
{
|
{
|
||||||
int messageNum = s.getParser().getIntParameter(NUMBER, 0);
|
int messageNum = s.getParser().getIntParameter(NUMBER, 0);
|
||||||
|
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
// edit by Chuck Willis - Added logic to associate similar usernames
|
// edit by Chuck Willis - Added logic to associate similar usernames
|
||||||
// The idea is that users chuck-1, chuck-2, etc will see each other's messages
|
// The idea is that users chuck-1, chuck-2, etc will see each other's messages
|
||||||
@ -330,10 +322,7 @@ public class StoredXss extends LessonAdapter
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
Statement statement = connection.createStatement(
|
Statement statement = connection.createStatement(
|
||||||
ResultSet.TYPE_SCROLL_INSENSITIVE,
|
ResultSet.TYPE_SCROLL_INSENSITIVE,
|
||||||
|
@ -54,8 +54,6 @@ public class ThreadSafetyProblem extends LessonAdapter
|
|||||||
|
|
||||||
private final static String USER_NAME = "username";
|
private final static String USER_NAME = "username";
|
||||||
|
|
||||||
private Connection connection = null;
|
|
||||||
|
|
||||||
private static String currentUser;
|
private static String currentUser;
|
||||||
|
|
||||||
private String originalUser;
|
private String originalUser;
|
||||||
@ -73,10 +71,7 @@ public class ThreadSafetyProblem extends LessonAdapter
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
ec.addElement(new StringElement("Enter user name: "));
|
ec.addElement(new StringElement("Enter user name: "));
|
||||||
ec.addElement(new Input(Input.TEXT, USER_NAME, ""));
|
ec.addElement(new Input(Input.TEXT, USER_NAME, ""));
|
||||||
@ -205,11 +200,6 @@ public class ThreadSafetyProblem extends LessonAdapter
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
super.handleRequest(s);
|
super.handleRequest(s);
|
||||||
|
|
||||||
if (connection == null)
|
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -80,8 +80,6 @@ public class WSDLScanning extends LessonAdapter
|
|||||||
|
|
||||||
static boolean beenRestartedYet = false;
|
static boolean beenRestartedYet = false;
|
||||||
|
|
||||||
public static Connection connection = null;
|
|
||||||
|
|
||||||
public final static String firstName = "getFirstName";
|
public final static String firstName = "getFirstName";
|
||||||
|
|
||||||
public final static String lastName = "getLastName";
|
public final static String lastName = "getLastName";
|
||||||
@ -219,10 +217,6 @@ public class WSDLScanning extends LessonAdapter
|
|||||||
{
|
{
|
||||||
String[] fields = s.getParser().getParameterValues("field");
|
String[] fields = s.getParser().getParameterValues("field");
|
||||||
int id = s.getParser().getIntParameter("id");
|
int id = s.getParser().getIntParameter("id");
|
||||||
if (connection == null)
|
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
Table t = new Table().setCellSpacing(0).setCellPadding(2)
|
Table t = new Table().setCellSpacing(0).setCellPadding(2)
|
||||||
.setBorder(1);
|
.setBorder(1);
|
||||||
@ -292,10 +286,6 @@ public class WSDLScanning extends LessonAdapter
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
Connection connection = DatabaseUtilities.getConnection("guest", getWebgoatContext());
|
Connection connection = DatabaseUtilities.getConnection("guest", getWebgoatContext());
|
||||||
if (connection == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
PreparedStatement ps = connection
|
PreparedStatement ps = connection
|
||||||
.prepareStatement("SELECT * FROM user_data WHERE userid = ?");
|
.prepareStatement("SELECT * FROM user_data WHERE userid = ?");
|
||||||
ps.setInt(1, id);
|
ps.setInt(1, id);
|
||||||
|
@ -74,8 +74,6 @@ public class WsSqlInjection extends LessonAdapter
|
|||||||
final static IMG CREDITS_LOGO = new IMG("images/logos/parasoft.jpg")
|
final static IMG CREDITS_LOGO = new IMG("images/logos/parasoft.jpg")
|
||||||
.setAlt("Parasoft").setBorder(0).setHspace(0).setVspace(0);
|
.setAlt("Parasoft").setBorder(0).setHspace(0).setVspace(0);
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see lessons.AbstractLesson#getMenuItem()
|
* @see lessons.AbstractLesson#getMenuItem()
|
||||||
*/
|
*/
|
||||||
@ -184,10 +182,6 @@ public class WsSqlInjection extends LessonAdapter
|
|||||||
ElementContainer ec = new ElementContainer();
|
ElementContainer ec = new ElementContainer();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (connection == null)
|
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
ec.addElement(makeAccountLine(s));
|
ec.addElement(makeAccountLine(s));
|
||||||
|
|
||||||
String query = "SELECT * FROM user_data WHERE userid = "
|
String query = "SELECT * FROM user_data WHERE userid = "
|
||||||
@ -247,10 +241,6 @@ public class WsSqlInjection extends LessonAdapter
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
Connection connection = DatabaseUtilities.getConnection("guest", getWebgoatContext());
|
Connection connection = DatabaseUtilities.getConnection("guest", getWebgoatContext());
|
||||||
if (connection == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
String query = "SELECT * FROM user_data WHERE userid = " + id;
|
String query = "SELECT * FROM user_data WHERE userid = " + id;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -49,9 +49,6 @@ public class ProductsAdminScreen extends LessonAdapter
|
|||||||
|
|
||||||
private final static String QUERY = "SELECT * FROM product_system_data";
|
private final static String QUERY = "SELECT * FROM product_system_data";
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of the Method
|
* Description of the Method
|
||||||
*
|
*
|
||||||
@ -64,10 +61,7 @@ public class ProductsAdminScreen extends LessonAdapter
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
Statement statement = connection.createStatement(
|
Statement statement = connection.createStatement(
|
||||||
ResultSet.TYPE_SCROLL_INSENSITIVE,
|
ResultSet.TYPE_SCROLL_INSENSITIVE,
|
||||||
|
@ -49,9 +49,6 @@ public class RefreshDBScreen extends LessonAdapter
|
|||||||
|
|
||||||
private final static String REFRESH = "Refresh";
|
private final static String REFRESH = "Refresh";
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of the Method
|
* Description of the Method
|
||||||
*
|
*
|
||||||
@ -153,10 +150,7 @@ public class RefreshDBScreen extends LessonAdapter
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
CreateDB db = new CreateDB();
|
CreateDB db = new CreateDB();
|
||||||
db.makeDB(connection);
|
db.makeDB(connection);
|
||||||
|
@ -49,9 +49,6 @@ public class UserAdminScreen extends LessonAdapter
|
|||||||
|
|
||||||
private final static String QUERY = "SELECT * FROM user_system_data";
|
private final static String QUERY = "SELECT * FROM user_system_data";
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of the Method
|
* Description of the Method
|
||||||
*
|
*
|
||||||
@ -64,10 +61,7 @@ public class UserAdminScreen extends LessonAdapter
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
Statement statement = connection.createStatement(
|
Statement statement = connection.createStatement(
|
||||||
ResultSet.TYPE_SCROLL_INSENSITIVE,
|
ResultSet.TYPE_SCROLL_INSENSITIVE,
|
||||||
|
@ -50,9 +50,6 @@ public class ViewDatabase extends LessonAdapter
|
|||||||
|
|
||||||
private final static String SQL = "sql";
|
private final static String SQL = "sql";
|
||||||
|
|
||||||
private static Connection connection = null;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of the Method
|
* Description of the Method
|
||||||
*
|
*
|
||||||
@ -75,10 +72,7 @@ public class ViewDatabase extends LessonAdapter
|
|||||||
Element b = ECSFactory.makeButton("Go!");
|
Element b = ECSFactory.makeButton("Go!");
|
||||||
ec.addElement(b);
|
ec.addElement(b);
|
||||||
|
|
||||||
if (connection == null)
|
Connection connection = DatabaseUtilities.getConnection(s);
|
||||||
{
|
|
||||||
connection = DatabaseUtilities.getConnection(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sqlStatement.length() > 0)
|
if (sqlStatement.length() > 0)
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package org.owasp.webgoat.session;
|
package org.owasp.webgoat.session;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
|
|
||||||
@ -42,92 +40,6 @@ import org.owasp.webgoat.lessons.AbstractLesson;
|
|||||||
public class CreateDB
|
public class CreateDB
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
|
||||||
* The main program for the AccessSqlInjection class
|
|
||||||
*
|
|
||||||
* @param args The command line arguments
|
|
||||||
*/
|
|
||||||
public static void main(String[] args)
|
|
||||||
{
|
|
||||||
|
|
||||||
CreateDB db = new CreateDB();
|
|
||||||
Connection connection = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
System.out.println("Failed to load DB driver");
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
|
|
||||||
connection = DriverManager
|
|
||||||
.getConnection(
|
|
||||||
"jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb);DBQ=c:/webgoat.mdb;PWD=webgoat",
|
|
||||||
"webgoat", "webgoat");
|
|
||||||
db.makeDB(connection);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
System.out.println("Driver Manager failed!");
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* getAllEmployees
|
|
||||||
*/
|
|
||||||
String query = "SELECT userid,first_name,last_name FROM employee WHERE userid in (SELECT employee_id FROM ownership WHERE employer_id = 101)";
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Statement answer_statement = connection.createStatement(
|
|
||||||
ResultSet.TYPE_SCROLL_INSENSITIVE,
|
|
||||||
ResultSet.CONCUR_READ_ONLY);
|
|
||||||
ResultSet answer_results = answer_statement.executeQuery(query);
|
|
||||||
answer_results.first();
|
|
||||||
int employeeId = answer_results.getInt("userid");
|
|
||||||
String firstName = answer_results.getString("first_name");
|
|
||||||
String lastName = answer_results.getString("last_name");
|
|
||||||
System.out.println("Query 1 Results: " + firstName + " " + lastName
|
|
||||||
+ " " + employeeId);
|
|
||||||
}
|
|
||||||
catch (SQLException sqle)
|
|
||||||
{
|
|
||||||
sqle.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* isAllowed
|
|
||||||
*/
|
|
||||||
|
|
||||||
query = "SELECT * FROM auth WHERE role in (SELECT role FROM roles WHERE userid = 101) and functionid = 113";
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Statement answer_statement = connection.createStatement(
|
|
||||||
ResultSet.TYPE_SCROLL_INSENSITIVE,
|
|
||||||
ResultSet.CONCUR_READ_ONLY);
|
|
||||||
ResultSet answer_results = answer_statement.executeQuery(query);
|
|
||||||
boolean allowed = answer_results.first();
|
|
||||||
//boolean allowed = answer_results.next();
|
|
||||||
|
|
||||||
if (allowed)
|
|
||||||
System.out.println("User is allowed");
|
|
||||||
else
|
|
||||||
System.out.println("User is NOT allowed");
|
|
||||||
}
|
|
||||||
catch (SQLException sqle)
|
|
||||||
{
|
|
||||||
sqle.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of the Method
|
* Description of the Method
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user