OWASP Security-Shepherd Documentation

The OWASP Security Shepherd project is a web and mobile application security training platform. Security Shepherd has been designed to foster and improve security awareness among a varied skill-set demographic. The aim of this project is to take AppSec novices or experienced engineers and sharpen their penetration testing skillset to security expert status.


Field Training

*1.Insecure Direct Object References

First Challenge is "Insecure Direct Object Reference" The Key for this level is stored on Administrator Profile.

1

We enter the "Refresh Your Profile Button" and Capture the Request using Burp Proxy

2

From the Captured request we found that "username = guest"

3

We Changed the user name from "guest" to "admin" and forward the request to the server.

4

and the Server Response with the Result Key

5

*2.Poor Data Validation

Second challenge is "Poor Data Validation", We can get the result key by entering " Negative Number"

1

Checked whether we can enter the Negative value in the form itself, however the system shows the error message "*An error Occurred: Number Must be Greater that 0 *"

2

So we enter the positive value and can tried to change the value using BurpSuite proxy

3

We enter the positive value of "35" and captured that request

4

Changed the Value "userdata=35" to "userdata=-35" and forward the request to the server

5

And we got the Result Key

6

7

*3.Security Misconfiguration

Third Challenge is Simple We can get the credentials by entering default admin creadentials "Username: admin and Password:passsword"

1

And we got the Result Key for Challenge 3

2

3

*4.Broken Session Management

In this challenge we have to make the server to believe that we have already completed this challenege.

1

So we press the Complete this lesson submit button and capture the request using Burpsuite.

2

Change the "lessonComplete=lessonNotComplete" to "lessonComplete" and forward the request

3

System believes we completed this challenge and responded with the result key

4

5

*5.Failure to Restrict URL Access

In this Challenge we have to access the link, only administrator to have access to that link.

1

Go through the source using "Inspect elements" or use tools like firebug

2

so we delete the none, therefore we can view the administrator result page link

3

And we got the result key for this challenge by clicking the link.

4

5

*6.Cross Site Scripting

This challenge is Simple Cross Site Scripting (XSS)

1

We enter the Basic Script ""

2

and we got the pop up, so this page is vulnerable to XSS

3

and we got the *result key *for this challenge

4

5

*7.Cross Site Scripting 1

This Challenge is another Cross Site Scripting (XSS)

1

By going through the Source, we found that this page has iframe..

2

So we tried the XSS by including the script into the iframe ""

3

and we got the pop up, so this page is vulnerable to "XSS"

4

we got the result key as well.

5

6

Private

*1.Insecure Data Storage

First Challenge in Private is Android Challenge, You have to access the database to get the user credentials and admin password is the key

1

All challenge directories and files are available in data/data

2

first challenge is insecure data so access the com.mobshep.insecuredata directory

3

passwords are available under "com.mobshep.insecuredata/databases" directory and Members file can be access using cat command and password is Battery777

4

password is Battery777

5

6

*2.Insecure Cryptographic Storage

This challenge is cryptograpic challenge, however the result key is encoded using "base64"

1

I have decoded using "Hackbar" addon

2

3

4

*3.SQL Injection

This one is SQL Injection Challenge

1

Its a simple SQL injection, you can beat it using 'or'1'='1 command. Result key available in the db.

2

3

*4.Insecure Cryptographic Storage Challenge1

Another Cryptographic challenge, this time result key is encrypted using *Roman Cipher(Ceaser Cipher) *

1

Wrote a simple python script to brute force the Key.

2

Shift Key is 21 and got the Result Key as well

4

5

*5.Insecure Direct Object Reference Challenge 1

In this challenge you have to access the user who is not listed in the drop down list

1

By accessing source could identify ID of users (1,3,5,7,9)

2

SO select the last user and send the request through Burpsuite

3

UserID is 9

4

Changed the ID from 9 to 11 (which could be next number, you can also brute force the ID using Burp Intruder)

5

and the server respond with the result key

6

7

*6.Poor Data Validation 1

This is data validation challenge, you have to buy free trolls

1

select 1 Troll and -100 on the meme which $30, therefore your total will be $0 and you will get the Result Key

2

3

*7.SQL Injection 1

Another SQL Injection Challenge

1

First test the *'OR'1'='1 *which is not working

2

3

From the hint found SQL Query start with "

4

So we tried SQL injection with double colon "OR"1"="1 and got the Key

5

6

*8.Session Management Challenge 1

Another Session Management Challenge only administrator has access to the application

1

Press the administrator only Submit button and capture the request using Burpsuite. and you can see the Check-sum value

2

That checksum value is encoded with base64, once you decode it you can see the value "userRole=user"

3

Change the "userRole=user" to "userRole=administrator"

4

Encode "userRole=administrator" using base64

5

Change the checksum value in Burpsuite with base64 new encoded value and forward the request to server

6

Server will respond with the result key

7

8

*9.Failure to Restrict URL Access

Failure to Restrict URL Access Challenge.

1

Press the "Get server Status" Button and capture the request using Burpsuite

2

If you go through the source, you will find out the JavaScript code with two form urls one for "leform" and other one is "leadminform"

3

You can view that from the Burpsuite captured request client forwarding the normal "leform" url

4

Change that url with "leadminform" url and forward the request to server

5

Server will respond with the key

6

7

*10. Unintended Data Leakage

Another Android Challenge, Here You have to access the logs to find the result ey

1

If you cd the /data/data you can view the udataleakage directory

2

inside the directory you can see three files, under the files folder the log file is saved. once you cat the file you can view the key

3

4

5

*11.Cross Site Request Forgery

Cross site request forgery challenge

1

You have to send the url with the temp userid to administrator

2

server will repsond with the key

3

4

*12.Content Provider Leakage

Android Challenge, Content Providers are intended to be accessed by other applications, however with the Android Debug Bridge, they can be accessed by anyone with access to a device.

1

Used "adb shell content query --uri content://com.somewhere.hidden.SecretProvider/data" to get the result key

2

3

4

Corporal

*1. Unvalidated Redirects and Forwards

This lesson s CSRF, To exploit you have to include the your intended link to the normal link. This link sent to mar this lesson as completed

1

Server will reply with the result key

2

3

*2. Client Side Injection

In this challenge we have to exploit the SQL injection flow on the Android

1

2

We have included Admin'OR'user='user command to inject server sad legged in.

3

And gave the key for this for challenge

4

5

6

*3. SQL Injection 2

Another SQL injection Challenge..

1

Inject the flow using 'or'1'!='shan@yahoo.com and db gave us the Key..

2

3

*4. Poor Authentication

This is authentication challenge in the Android

1

First You have to open the "Poor Authentication" App

2

Next screen you have to enter username and password since we do not now the password go for** reset function.**

3

Next Screen Reset screen you have to enter the answers for some security questions.

4

Since we do not know the answers, we access the "com.mobshep.poorauthentication/files" inside directory *logs files *are available (the App is leaking logs of what the user has typed during previous uses of the App. This information will provide you with the data you need to reset the password and get the key.)

5

From That logs you can get the answers for security questions. "Favorite Food: Chicken & Mother's Maiden Name : Meade" Once you enter the correct answers system will give you the temp password

6

You can find the username from the log files and with the temp password you can Login.

7

And you can get the result key.

8

9

10

*5. Broken Crypto

This is Crypto challenge is Android..

1

First you have to access the Broken Crypto app.

2

You will get some encrypted text.

3

But they used HEX encode to encrypt these text. And last text contains the key.

4

5

6

7

And that completes the broken crypto...



</div> </body> </html>