Jump to content
Shogun

[IMPORTANTE] Exploit cube r_info (afecta a todos los games)

Recommended Posts

Este exploit ya era conocido por nosotros desde hace varios meses y para evitar crear un problema a los dueños de otros servidores, decidimos no publicarlo en su momento. Sin embargo, recientemente nos llegaron noticias de que determinadas personas estaban haciendo uso de éste, y decidimos publicar el fix.

 

Este exploit a día de hoy permite crashear completamente (no solo el core, el servidor entero) cualquier servidor privado de Metin2 excepto el WoM2, Gameforge ya lo arregló hace un tiempo.

 

No voy a explicar como se hace, solamente cómo se arregla. Quien quiera experimentar por su cuenta para descubrirlo, que se lo guarde. No voy a permitir que se de información de este tipo en el foro.

 

Pasamos a cómo arreglar este bug:

 

Buscar en game/src/cube.cpp

resultCount = resultList.size();

Y agregar debajo:

if (resultCount == 0) 
    return;

En el mismo fichero buscamos:

if (false == bCatchInfo)

Y lo sustituimos por:

if (!bCatchInfo || materialInfoText.size() == 0)

Esto es todo. Por la seguridad de vuestros servidores, os aconsejo implementar el fix lo antes posible.

Share this post


Link to post
Share on other sites

Me explicas para que sirve esto? e.e

Si no sabes tocar el source ni hagas preguntas, (yo no se tocarlo bien), pero ahí te lo dice crashea el servidor....

Share this post


Link to post
Share on other sites

Me explicas para que sirve esto? e.e

 

Para arreglar un exploit -que no he explicado cómo se hace, pero es muy sencillo- que permite crashear el servidor a cualquiera que quiera joderte y sepa cómo se hace.

 

Esta bien asi ? No se como va el tema de los tabs aqui xD+

5c663b5c89666bd75320f3f56d851e3e.png

 

Al principio de "return;" has de poner un tab, pero que yo sepa en C++ no importa eso, es solo por legibilidad (Que me corrija alguien si me equivoco, este fix lo hicieron mis compañeros y yo no tengo ni pajolera de C++)

Share this post


Link to post
Share on other sites
Guest DreamHQ   
Guest DreamHQ

Gracias por este aporte Shogun , porque seguramente en algunos servidores se estuviesen sirviendo de esto cierto usuarios ^^ +1

 

Un saludo.

Share this post


Link to post
Share on other sites

Ostia y si tienes un game inferior? también existe esa vulnerabilidad? Creo que sería mas útil decir como funciona y que se hace para crashear el servidor para tomar medidas de seguridad.

Share this post


Link to post
Share on other sites

Ostia y si tienes un game inferior? también existe esa vulnerabilidad? Creo que sería mas útil decir como funciona y que se hace para crashear el servidor para tomar medidas de seguridad.

En el post de dev en los cometarios pusieron un diff para quien usa game 34k aun que no se si funcionaria correctamente xd

Share this post


Link to post
Share on other sites

Afecta al 34k seguro, no tengo un game inferior para comprobarlo, pero vamos, posiblemente afecte a todos los games inferiores también.

 

Creo que sería mas útil decir como funciona y que se hace para crashear el servidor para tomar medidas de seguridad.

Realmente no puedes arreglarlo si no usas un diff o bloqueas cube completamente (Pero eso signfica que los usuarios no podrán hacer pociones).

 

En el post de dev en los cometarios pusieron un diff para quien usa game 34k aun que no se si funcionaria correctamente xd

No lo comprobé, pero a juzgar por otro post del mismo usuario creo que simplemente eliminó cube.

Share this post


Link to post
Share on other sites

Ostia y si tienes un game inferior? también existe esa vulnerabilidad? Creo que sería mas útil decir como funciona y que se hace para crashear el servidor para tomar medidas de seguridad.

 

Yo creo que también deberían hacer eso.

Share this post


Link to post
Share on other sites
Guest Caes   
Guest Caes

En C++ da igual la identación, guárdate los tabs para Python, y Shogun gracias por el aporte.

Share this post


Link to post
Share on other sites

Yo creo que también deberían hacer eso.

 

Decirte cómo se hace no te va ayudar en nada a arreglarlo. Si no tienes el source necesitas un dif, y por ahora no hay ninguno testeado, cuando lo haya lo publicaré aqui. Como dijo mi compañero, en un apuro puedes bloquear el comando cube con un fichero CMD, pero eso significa no poder hacer pociones, ni usar el sistema de crafting de las armas 105, ni el de energía.

Share this post


Link to post
Share on other sites

Decirte cómo se hace no te va ayudar en nada a arreglarlo. Si no tienes el source necesitas un dif, y por ahora no hay ninguno testeado, cuando lo haya lo publicaré aqui. Como dijo mi compañero, en un apuro puedes bloquear el comando cube con un fichero CMD, pero eso significa no poder hacer pociones, ni usar el sistema de crafting de las armas 105, ni el de energía.

Se podria usar alternativas en vez del cube digo yo.

Share this post


Link to post
Share on other sites

Para arreglar un exploit -que no he explicado cómo se hace, pero es muy sencillo- que permite crashear el servidor a cualquiera que quiera joderte y sepa cómo se hace.

 

 

Al principio de "return;" has de poner un tab, pero que yo sepa en C++ no importa eso, es solo por legibilidad (Que me corrija alguien si me equivoco, este fix lo hicieron mis compañeros y yo no tengo ni pajolera de C++)

 

 

La razón por la cual no importa si pones tabulación o espacio es porque el análizador léxico no reconoce estos, simplemente se los salta como si no existieran, sobre si debes poner las tabulaciones es lo de menos, podrias poner un código incluso sin enter y lo seguiria reconociendo siempre y cuando las llaves de cierre y apertura estén en orden, las tabulaciones y espacios son un orden nadamás para que tu mismo identifiques donde va cada cosa.

 

Y para el otro usuario, Python es el único donde importan debido a que de ese modo identifica de donde es cada función.

Share this post


Link to post
Share on other sites

:v Perdón por subir el tema pero pasándome por dev, encontré que ya hicieron diff por si alguien le necesita:

 

 

 

This difference file has been created by DeVSheeN
 
game34083-cube
0041EC92: 43 90
0041EC93: 55 90
0041EC94: 42 90
0041EC95: 45 90
0041EC96: 20 90
0041EC97: 43 90
0041EC98: 4F 90
0041EC99: 4D 90
0041EC9A: 4D 90
0041EC9B: 41 90
0041EC9C: 4E 90
0041EC9D: 44 90
0041EC9E: 20 90
0041EC9F: 3C 90
0041ECA0: 25 90
0041ECA1: 73 90
0041ECA2: 3E 90
0041ECA3: 3A 90
0041ECA4: 20 90
0041ECA5: 25 90
0041ECA6: 73 90
0041ECA7: 00 90
0041ECA8: 55 90
0041ECA9: 73 90
0041ECAA: 61 90
0041ECAB: 67 90
0041ECAC: 65 90
0041ECAD: 3A 90
0041ECAE: 20 90
0041ECAF: 63 90
0041ECB0: 75 90
0041ECB1: 62 90
0041ECB2: 65 90
0041ECB3: 20 90
0041ECB4: 6F 90
0041ECB5: 70 90
0041ECB6: 65 90
0041ECB7: 6E 90
0041ECB8: 00 90
0041ECB9: 20 90
0041ECBA: 20 90
0041ECBB: 20 90
0041ECBC: 20 90
0041ECBD: 20 90
0041ECBE: 20 90
0041ECBF: 20 90
0041ECC0: 63 90
0041ECC1: 75 90
0041ECC2: 62 90
0041ECC3: 65 90
0041ECC4: 20 90
0041ECC5: 63 90
0041ECC6: 6C 90
0041ECC7: 6F 90
0041ECC8: 73 90
0041ECC9: 65 90
0041ECCA: 00 90
0041ECCB: 20 90
0041ECCC: 20 90
0041ECCD: 20 90
0041ECCE: 20 90
0041ECCF: 20 90
0041ECD0: 20 90
0041ECD1: 20 90
0041ECD2: 63 90
0041ECD3: 75 90
0041ECD4: 62 90
0041ECD5: 65 90
0041ECD6: 20 90
0041ECD7: 6C 90
0041ECD8: 69 90
0041ECD9: 73 90
0041ECDA: 74 90
0041ECDB: 00 90
0041ECDC: 20 90
0041ECDD: 20 90
0041ECDE: 20 90
0041ECDF: 20 90
0041ECE0: 20 90
0041ECE1: 20 90
0041ECE2: 20 90
0041ECE3: 63 90
0041ECE4: 75 90
0041ECE5: 62 90
0041ECE6: 65 90
0041ECE7: 20 90
0041ECE8: 63 90
0041ECE9: 61 90
0041ECEA: 6E 90
0041ECEB: 63 90
0041ECEC: 65 90
0041ECED: 6C 90
0041ECEE: 00 90
0041ECEF: 20 90
0041ECF0: 20 90
0041ECF1: 20 90
0041ECF2: 20 90
0041ECF3: 20 90
0041ECF4: 20 90
0041ECF5: 20 90
0041ECF6: 63 90
0041ECF7: 75 90
0041ECF8: 62 90
0041ECF9: 65 90
0041ECFA: 20 90
0041ECFB: 6D 90
0041ECFC: 61 90
0041ECFD: 6B 90
0041ECFE: 65 90
0041ECFF: 20 90
0041ED00: 5B 90
0041ED01: 61 90
0041ED02: 6C 90
0041ED03: 6C 90
0041ED04: 5D 90
0041ED05: 00 90
0041ED06: 63 90
0041ED07: 75 90
0041ED08: 62 90
0041ED09: 65 90
0041ED0A: 20 90
0041ED0B: 6D 90
0041ED0C: 61 90
0041ED0D: 6B 90
0041ED0E: 65 90
0041ED0F: 20 90
0041ED10: 73 90
0041ED11: 75 90
0041ED12: 63 90
0041ED13: 63 90
0041ED14: 65 90
0041ED15: 73 90
0041ED16: 73 90
0041ED17: 00 90

Share this post


Link to post
Share on other sites

Lo vi pero ese dif lo unico que hace es eliminar cube

 

Para eso mejor usar un CMD

Oh perdón, no sabía es que el usuario que lo subió solo lo puso no dio ni descripción...

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...