[OverTheWire] Natas – Level 21
http://natas21.natas.labs.overthewire.org/
Note: this website is colocated with http://natas21-experimenter.natas.labs.overthewire.org
You are logged in as a regular user. Login as an admin to retrieve credentials for natas22.
Nhấn View sourcecode:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<? function print_credentials() { /* {{{ */ if($_SESSION and array_key_exists("admin", $_SESSION) and $_SESSION["admin"] == 1) { print "You are an admin. The credentials for the next level are:<br />"; print "<pre>Username: natas22n"; print "Password: <censored></pre>"; } else { print "You are logged in as a regular user. Login as an admin to retrieve credentials for natas22."; } } /* }}} */ session_start(); print_credentials(); ?> |
Chuyển qua trang kia và chú ý ở:
1 2 3 4 5 6 |
// if update was submitted, store it if(array_key_exists("submit", $_REQUEST)) { foreach($_REQUEST as $key => $val) { $_SESSION[$key] = $val; } } |
Xong, còn có thể mong chờ một bài dễ hơn được nữa ở level này không hả trời
Rõ ràng ta có thể edit cái form submit để trang thứ 2 này lưu $_SESSION với các giá trị tùy ý, trong khi trang 1 lại dùng chung session với trang 2. Thế là
- Submit trang 2 với một thuộc tính có name:value = admin:1
- Đổi biến PHPSESSID của trang 1 thành PHPSESSID của trang 2.
- Done.
You are an admin. The credentials for the next level are: Username: natas22 Password: chG9fbe1Tq2eWVMgjYYD1MsfIvN461kJ
→ flag = chG9fbe1Tq2eWVMgjYYD1MsfIvN461kJ.
Recent comments