Accediendo a transacciones SAP sin autorización
En el primer capítulo habíamos menciona utilizar la función RS_HDSYS_CALL_TC_VARIANT, pero como comentaba inicialmente SAP la fue complicando y ya no es siempre útil esta transacción. Esto se debe a que si ustedes debuguean el acceso a la transacción llega un momento donde ingresa a un método que no puede ser debugueado y en el cual no tendrán la posibilidad de cambiar ningún tipo de valor, por lo tanto tendrán un inevitable mensaje de No tiene autorización a la transacción XXXX.No contento con eso comencé a investigar hasta que di en la tecla con una nueva función llamada CALL_TRANSACTION_AUTH, al menos por ahora no encontré ninguna transacción que no pueda ejecutar con dicha función
Esa transacción sirve para conocer si un usuario tiene autorización o no a una transacción pero esconde una sentencia que permite que puedas saltear dicha autorización.
Si observan el código muestra lo siguiente:
FUNCTION CALL_TRANSACTION_AUTH .
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(TCODE) LIKE SY-TCODE
*" EXCEPTIONS
*" NOT_AUTHORIZED
*"----------------------------------------------------------------------
AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD' FIELD TCODE.
IF SY-SUBRC NE 0.
MESSAGE I077(S#) WITH TCODE RAISING NOT_AUTHORIZED.
ENDIF.
CALL TRANSACTION TCODE.
ENDFUNCTION.
Por lo tanto es tan simple como cambiar sy-subrc a 0 y habrán podido acceder.
Aclaración importante:
Desde todoSAP promovemos el aprendizaje pero no nos hacemos responsables por el buen o mal uso que le den los usuarios a estas técnicas.
No hay comentarios:
Publicar un comentario
Esperamos tus comentarios y sugerencias para mejorar el sitio.