arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

Python - URL Redirection

hashtag
Running the app on Docker

circle-check

Now that the app is running let's go hacking!

hashtag
Reconnaissance

hashtag
Step 1

The application shows that there is a new version of the website available somewhere, and a click on the button "Go to new website" will redirect you to it.

If we click on the button we will be redirected on the new page

hashtag
Step 2

Intercepting the traffic generated by the application, we note that the redirection is performed using the following call

That will generate a 302 Redirect response from the server.

Inspecting the source code, it's possible to see no input validation of newurl query string parameter is in place.

hashtag
Exploitation

The exploitation is pretty straightforward. Replay the redirection request, but at this time change the value of newurl into another URL.

Original request

Modified request

Using the payload above we will be able to successfully redirect a user to any website:

hashtag
Additional sources

$ docker pull blabla1337/owasp-skf-lab:url-redirection
$ docker run -ti -p 127.0.0.1:5000:5000 blabla1337/owasp-skf-lab:url-redirection
http://localhost:5000/newsitearrow-up-right
https://www.owasp.org/index.php/Testing_for_Client_Side_URL_Redirect_(OTG-CLIENT-004)arrow-up-right
GET /redirect?newurl=newsite
def redirector():
    landing_page = request.args.get('newurl')
    return redirect(landing_page, 302)
http://0.0.0.0:5000/redirect?newurl=newsite
http://0.0.0.0:5000/redirect?newurl=https://www.google.com