[Root-me]SQL Truncation-Easy

[Root-me]SQL Truncation-Easy

Tiếp theo trong chuỗi thử thách SQL mình muốn nói đến là lỗi truncate ở SQL, không phãi func TRUNCATE trong sql đâu nha mấy ông nội. Lỗi này là cắt ngắn chuỗi query bất hợp pháp tạo thành lỗi các ba ạ!!!

2Capture

Nội dung bài văn không có chi nhiều, 2 phần chính là đăng kí và đăng nhập. Mình có vô đọc thử DOC cho thử thách này và nhìn lòi cả mắt mà không lượm nhặt được gì nhiều. Khuyên các bạn nên google thẳng =….=

Có lẽ đây là hint của bài:

3

Thứ cần để ý là length input cho từng trường. Ở đây login với length là 12, không phải tự dưng mà người ta lại cho mình xem struct table của người ta. Các bạn hình dung như sau,  column login sẽ nhận giá trị username được tạo với độ dài max là 12. nếu vượt quá 12 thì chuỗi sau vị trí 12 đó sẽ bị cắt bỏ đi mà nhận giá trị trước vị trí 12. Và nhiệm vụ của mình là tạo tài khoản admin và login với quyền admin để lấy được flag. Nhưng tài khoản admin đã tồn tại nhưng mình không có password chính xác cho admin đó. Tạo username với admin thì thông báo username đã tồn tại. Vậy ta cần dựa vào tính năng truncate để bypass kiểm tra username tồn tại và tạo được account admin và control password login lấy flag. Ví dụ làm rõ:

Mình có tạo 1 database sẵn có value username là admin, và password là password1.

4.PNG

Và giờ mình tạo thêm 2 giá trị tương ứng với các trường như sau:

8.PNG

5

Và kết quả, tá đà:

6

Mình đã có thêm một username là admin và password là password2. Login và lượm flag thôi, thử thách kia cũng làm vậy nhé.

7

Mình nghĩ để prevent lỗi này thì dù có tăng length lên bao nhiêu nếu hacker zảnh zỗi fuzz thì cũng tìm ra max length nó mà attack thôi. Vậy cách hữu hiệu nhất là filter input thật kĩ, dùng strlen như trong php chẳng hạn. Để reject đầu vào ngay, tránh đêm dài lắm mộng :v còn nhiều cách prevent khác nựa ….

FLAG: {TRY_HARD_DON’T_COPY_PASTE}

Hí hí, nếu có một số ông thắc mắc mấy bài tầm này cần gì phãi nói dài dòng chi tiết vậy thì mình cũng đã nói rồi. Các bài đọc này  của mình, mình muốn dành chủ yếu cho các bạn mới tiếp cận. Qúa nhiều trang solve thử thách này và có flag rồi, các bạn muốn tìm flag thôi thì next =…= Nếu các các bạn biết những thứ khác hay đóng góp ý kiến cho mình  thì cứ comment đóng góp thẳng thắn na. Mình cảm ơn, điều mình muốn các bạn nhận được sau khi đọc xong bài viết của mình là, làm thế méo nào có có lỗi này, cách attack, cách defense nó… Vậy thui… Không phãi để có cảm giác submit flag xưn xứn …

Mình viết ngẫu hứng, câu cú lủng củng mọi người bỏ qua nghe <3. Cám ơn mọi người nhiều, xong task hôm nay… Ngủ thôi >.< ❤

sleep

Leave a comment