Permalänk
Medlem

Hjälp med SQL Injectioner

Tjena!

Efter en lång rad misslyckanden känns det dax att fråga lite kunninga sweklockare. Det rör sig inte om något fuffens utan jag genomför en tutorial i SQl injektioner för att bättre kunna skydda mig mot dem senare. Om detta ändå strider mot vilkoren på forumet kan denna tråd tas bort och då ber jag även om ursäkt.

Hursomhelst skall jag försöka extrakta users och passwords från en 'dummy' server. Servern har följande skydd mot SQL injektioner:

private String makeSafe(String input){
input = input.replace("'", "''");
input = input.replace("\\", "\\\\");//"fix syntax highlighting
input = input.toLowerCase().replace("union", "");
input = input.toLowerCase().replace("select", "");
return input;

if("1".equals(request.getParameter("login"))){
String user=request.getParameter("user");
String pass=request.getParameter("pass");
String gotToken = request.getParameter("token");
if(!gotToken.equals(session.getAttribute("token")) || session.getAttribute("token") == null){
out.println("<center><font color='red'>Access denied: Invalid token</font></center>");
}
else{
Boolean correct = false;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost:3306/PROXY";
Connection con=DriverManager.getConnection(url, "webmaster", "disCON1991");
Statement st=con.createStatement();
if(user.toLowerCase().matches(".*f.*i.*l.*e.*"))
out.print("Attack detected");
ResultSet rs=st.executeQuery("select id, user from users where user = '"+makeSafe(user)+"' and password = '" + makeSafe(pass) + "'");

Jag är ytterst tacksam för eran hjälp, kan posta mer delar av sidan om detta behövs men känns som att detta är det relevanta.

Visa signatur

Dator: i9 9900k @ 5,0Ghz (Vatten) | MSI GTX1080 Sea Hawk EK X | ASUS ROG XI Hero | 4x8gb 3400Mhz Corsair RGB | Corsair 760T | NZXT Hale90 1000W
Kringutrustning: Asus VG278H | 2x Samsung P2450 | Razer Ouroboros | Ducky Shine II | Razer Vespula

Permalänk
Medlem
Skrivet av Mackan32:

Tjena!

Efter en lång rad misslyckanden känns det dax att fråga lite kunninga sweklockare. Det rör sig inte om något fuffens utan jag genomför en tutorial i SQl injektioner för att bättre kunna skydda mig mot dem senare. Om detta ändå strider mot vilkoren på forumet kan denna tråd tas bort och då ber jag även om ursäkt.

Hursomhelst skall jag försöka extrakta users och passwords från en 'dummy' server. Servern har följande skydd mot SQL injektioner:

private String makeSafe(String input){
input = input.replace("'", "''");
input = input.replace("\\", "\\\\");//"fix syntax highlighting
input = input.toLowerCase().replace("union", "");
input = input.toLowerCase().replace("select", "");
return input;

if("1".equals(request.getParameter("login"))){
String user=request.getParameter("user");
String pass=request.getParameter("pass");
String gotToken = request.getParameter("token");
if(!gotToken.equals(session.getAttribute("token")) || session.getAttribute("token") == null){
out.println("<center><font color='red'>Access denied: Invalid token</font></center>");
}
else{
Boolean correct = false;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost:3306/PROXY";
Connection con=DriverManager.getConnection(url, "webmaster", "disCON1991");
Statement st=con.createStatement();
if(user.toLowerCase().matches(".*f.*i.*l.*e.*"))
out.print("Attack detected");
ResultSet rs=st.executeQuery("select id, user from users where user = '"+makeSafe(user)+"' and password = '" + makeSafe(pass) + "'");

Jag är ytterst tacksam för eran hjälp, kan posta mer delar av sidan om detta behövs men känns som att detta är det relevanta.

Använd prepared statements till att börja med: http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedSta...

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Tack för svaret, lyckades lösa det genom att köra via en proxy

Visa signatur

Dator: i9 9900k @ 5,0Ghz (Vatten) | MSI GTX1080 Sea Hawk EK X | ASUS ROG XI Hero | 4x8gb 3400Mhz Corsair RGB | Corsair 760T | NZXT Hale90 1000W
Kringutrustning: Asus VG278H | 2x Samsung P2450 | Razer Ouroboros | Ducky Shine II | Razer Vespula