SQLiHuh
Introduction
EHCTF
Category: Web
Write-up date: 03/03/2025
Question: easy one, don't worry
Point: 269 (nice)
Source code analysis
Đề bài cho không quá nhiều thông tin, chủ yếu hint cho ta là một lỗi gì đó liên quan tới sqli? (Thật ra bài này cũng chả liên quan tới sqli lắm). Lược qua source code thì ta có thể thấy hàm dumpUserInfo và hàm register là đáng chú ý
Ở đây, ta có thể thấy cả username và password đều được đặt là VARCHAR(64) mà khi đăng ký tài khoản mới, lập trình viên đã quên mất kiểm tra điều kiện Username phải bé hơn 64 ký tự nên ta hoàn toàn có thể dùng SQL trunction để tạo một tài khoản giả mới có cùng username và password khác, sau đó khi chúng ta đăng nhập lại thì hàm dumpUserInfo sẽ in ra cả password mới lẫn flag thông qua query $query = "SELECT * from users where username='$username'"; (ở đây là tìm kiếm thông qua username chứ không phải id nên sẽ in ra cả hai)
SQL trunction lợi dụng việc hệ thống database sẽ tự cắt bỏ phần thừa kki đẩy một xâu kí tự dài hơn độ dài được khai báo lúc đầu.

Exploit
Đầu tiên, payload của chúng ta sẽ gồm tên tài khoản cần attack và
FLAG: EHCTF{SomeTIme5_EvERy7h1Ng_I5_EA5Y_7Han_y0u_ThlNK_:V_44380a08ef95}