Nhìn ngay tên bài thì chúng ta có thể thấy ngay ý tác giả muốn mình hướng đến khai thác SQLi Blind. À thôi nói thế chứ tin nào được tác giả …
OK bắt đầu nhé.
Đầu tiên vào link bài tác giả cung cấp
Việc đầu tiên là làm một người dùng bình thường sử dụng trang web này, mình thử đăng kí một tài khoản xem thế nào.
Tuy nhiên chả có gì, và tác giả còn bảo "Dont xss" :)))
Bước tiếp theo, mình thử một vài inject sql đơn giản vào form login xem có điều gì đặc biệt không. Câu trả lời là không nốt :)))
Nếu bạn để ý kĩ một chút ở phần phía cuối trang, tác giả có để một hint robots.txt. Mình thì dùng dirsearch mới phát hiện ra :v
Nhận được một đường dẫn mới, vào còn được cung cấp thêm information schema, columns , tables
ở trang mới này.
Một shop bán đồ, và lúc này việc khai thác mới thật sự bắt đầu.
Đoạn này mình xin lướt qua về cách làm, và tập trung vào cách viết payload.
Dùng thử một vài tính năng thì mình thấy rằng việc tìm kiếm ?category=
có thể sql
http://174.138.21.217:8008/brut3f0rc3/?category=women
Kiểm tra xem nó có thực sự đúng như mình nghĩ không.
Mình thử ' or 1 = 1 -- -
và ok nó thành công.
Bắt tay ngay vào việc viết script vì nghĩ tác giả đã muốn mình làm hướng blind rồi :))
Lúc mới ra chall này thì tác giả cho sương sương mười mấy cái table
|password|,|username|
từ table sqli_blind
Có phải các bạn cũng nghĩ vậy không. Nhưng không đơn giản.
Cùng thử nhé
Như các bạn thấy, khi chúng ta truyền vào câu query sql password
thì trang web sẽ trả về như trên ảnh. Nghĩa là chúng ta không thể sử dụng password
để đưa vào query sql được. Rồi flag nằm trong password
sẽ lấy như thế nào?
Mời các bạn đọc bài viết từ blog này để tìm hiểu xem cách có thể lấy cột password
mà không cần gọi nó ra.
Cuối cùng mình có payloay này để dump
Result trả về khá là dài, mình nhận thấy nó là dạng hex, mang vào cyberchef và nhận được flag
ISPCTF{Bl1nd_brut3f0rc3_01fg6}
Trước khi kết thúc bài viết này. Mình xin nói thêm một chút về cách làm chính của mình(chứ chục table dump cũng lười lắm chứ :v). Từ hint một người anh của mình bảo không cần blind vẫn có thể làm ra (Nghĩa là lỗi sql hiện lỗi ra trên trang web). Cộng với việc được tác giả cung cấp có 4 cột, mình bắt tay ngay vào union select.
Đây là lần đầu viết wu của mình. Văn hơi lủng củng mong các bạn thông cảm.
Cuối cùng xin cảm ơn tác giả và ISP Club đã tạo ra một cuộc thi ctf bổ ích <3