Понимание уязвимости Wordpress

Единственные и двойные заключенные в кавычки строки в Python идентичны. Единственная разница - то, что единственно заключенные в кавычки строки могут содержать незавершенные символы двойной кавычки, и наоборот. Например:

'a "quoted" word'
"another 'quoted' word"

С другой стороны, там трижды заключаются в кавычки строки, которые позволяют и символам кавычки и новым строкам быть незавершенными.

можно заменить переменными в строке с помощью названный спецификаторами и местными жителями () встроенный:

name = 'John'
lastname = 'Smith'
print 'My name is %(name)s %(lastname)s' % locals()  # prints 'My name is John Smith'
14
задан Bill the Lizard 25 October 2010 в 19:20
поделиться

2 ответа

Итак, $ key - это массив в строке запроса с единственной пустой строкой ['']

http: //DOMAIN_NAME.TLD/wp-login.php? Action = rp & key [] =

reset_password вызывается с массивом, а затем вызывается preg_replace:

 //$key = ['']
 $key = preg_replace('/[^a-z0-9]/i', '', $key);
 //$key = [''] still

, потому что preg_replace принимает либо строку, либо массив строк. Регулярное выражение ничего не заменяет и возвращает тот же массив. $ key не пуст (это массив пустой строки), поэтому происходит следующее:

 $user = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users 
      WHERE user_activation_key = %s", $key));

Теперь мне нужно прочитать исходный код wordpress, чтобы узнать, как ведет себя подготовка ...

Подробнее:

Итак, подготовьтесь вызывает vsprintf , который создает пустую строку

$a = array('');
$b = array($a);
vsprintf("%s", $b);
//Does not produce anything

Таким образом, SQL:

SELECT * FROM $ wpdb-> users WHERE user_activation_key = ''

Что очевидно соответствует пользователь с правами администратора (и, я полагаю, все пользователи без Activ_keys).

17
ответ дан 1 December 2019 в 13:47
поделиться

У меня есть связанный с этим вопрос о , как исправить эту уязвимость - строка 190 в wp-login.php теперь должна выглядеть так:

if ( empty( $key ) || is_array( $key ) )
0
ответ дан 1 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: