Propust kod WordPress-a sa korisničkim imenom i popravljanje

Ukoliko ste zaljubljenik u WordPress ili ste zbog posla prinuđeni da koristite ovu blog platformu bitno je da znate što više o bezbednosnim propustima koje postoje u samom jezgru. Ono što je meni zapalo za oko i što predstavlja problem u problemu jeste propust u vezi sa korisničkim imenom. Zbog ovog propusta možete dobiti listu svih validnih korisničkih imena koje se nalaze u bazi korisnika. Unošenjem pogrešnog korisničkog imena i pogrešne lozinke dobijate informaciju da je nepostojeće korisničko ime (Invalid username). Međutim, ako pogodite i unesete pravo korisničko ime koje se nalazi u bazi i pogrešnu lozinku dobićete informaciju da je lozinka za to korisničko ime  pogrešna (The password you entered for the username admin is incorrect). Sada, kada ovo znate, možete iskoristiti brutal force napad koristeći bazu imena/korisničkih imena kako bi dobili listu svih korisnika koji se nalaze u bazi.

Da biste proverili verodostojnost ovog propusta posetite zvaničnu stranicu za prijavu:

https://wordpress.org/wp-login.php

Unošenjem nepostojećeg korisnika i nepostojeće lozinke dobićete Invalid username

tumblr_inline_mt1ak9g8ec1qz4rgpPrimer:
username: vvdf
password: 12345

tumblr_inline_mt1aklxvi51qz4rgp
Unošenjem postojećeg korisnika i nepostojeće lozinke dobićete The password you entered for the username admin is incorrect.

Primer:
username: admin
password: 12345

username: ssssssssss
password: 12345

username: admins
password: 12345

OSVDDB je ovaj propust prijavio WordPress-u jos u junu 2009. godine i danas kada je izašla verzija3.6.1 taj propust još nije otklonjen.

Evo kako da sami ovaj propust zakrpite

Otvorite:

wp-includes/user.php i pronađite liniju 91

Umesto:

return new WP_Error(‘invalid_username’, sprintf(__(‘ERROR: Invalid username. Lost your password< /a>?’), site_url(‘wp-login.php?action=lostpassword’, ‘login’)));

Stavite:

return new WP_Error( ‘invalid_username’, sprintf( __( ‘ERROR: Invalid username and/or password.’)));

Zatim:

wp-includes/user.php i pronađite liniju 111

Umesto:

return new WP_Error( ‘incorrect_password’, sprintf( __( ‘ERROR: The password you entered for the username%1$s is incorrect. Lost your password?’ )

Stavite:

return new WP_Error( ‘incorrect_password’, sprintf( __( ‘ERROR: Invalid username and/or password.’)));

Nadajmo se da će WordPress ovo ispraviti i da je informacija obelodanjena pre nego što je kasno.