[OverTheWire] Natas – Level 22
http://natas22.natas.labs.overthewire.org/
only admins can reveal the password…
Nhấn View sourcecode:
[php] session_start(); if(array_key_exists("revelio", $_GET)) { // only admins can reveal the password if(!($_SESSION and array_key_exists("admin", $_SESSION) and $_SESSION["admin"] == 1)) { header("Location: /"); } } ?>
if(array_key_exists("revelio", $_GET)) {
print "You are an admin. The credentials for the next level are:
“;
print “
Username: natas23n"; print "Password:
“;
}
?>
[/php]
Do không hiểu cơ chế của cái hàm header() nên mình rơi vào bế tắc, rất cảm ơn Nam Tóc Xù đã hint mình bài này
Thực chất vấn đề redirect bằng header() như trên do phía trình duyệt xử lý, chứ không phải là server redirect trực tiếp. Hay nói cách khác, toàn bộ nội dung của file trước khi redirect vẫn được tải về chứ không hề bị ngắt sau khi gọi hàm header(). Ta có thể dễ dàng kiểm tra điều này bằng cách xem tab Network trong Web Developer Tools của trình duyệt.
Để nhận nội dung mà không redirect, ta có thể dùng curl ở chế độ mặc định:
[sh]curl –user natas22:chG9fbe1Tq2eWVMgjYYD1MsfIvN461kJ http://natas22.natas.labs.overthewire.org/?revelio[/sh]
You are an admin. The credentials for the next level are:<br><pre>Username: nata s23 Password: D0vlad33nQF0Hz2EP255TP5wSW9ZsRSE
→ flag = D0vlad33nQF0Hz2EP255TP5wSW9ZsRSE.
Recent comments