Jump to content

[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.

Link to comment
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++)

Link to comment
Share on other sites

Guest DreamHQ

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

 

Un saludo.

Link to comment
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.

Link to comment
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

Link to comment
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.

Link to comment
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.

Link to comment
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.

Link to comment
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.

Link to comment
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

Link to comment
Share on other sites

  • 3 months later...
  • Dilong locked this topic
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...