Tengo un binario que hace esto:
if (strstr(USERCONTROLLERSTRING, "..")) exit;
fopen(CurrentPath+"\Data\"+USERCONTROLLEDSTRING, "r");
luego escupe todo el contenido del archivo. ¿Hay alguna vulnerabilidad obvia aquí?
Es un servicio de Windows, se ejecuta como SISTEMA, estoy intentando hacer que lea archivos confidenciales como SAM o tal vez alguna otra vulnerabilidad.
Solo comprueba ".."
y agrega una cadena arbitraria proporcionada por el usuario a CURRENTPATH+"\Data\"
y luego llama a fopen
P.S. La codificación, Unicode, base64,% -coding, etc. no funcionarán como lo hace el strstr
justo antes de la llamada fopen
después de toda la decodificación. Pero eso es todo, no se hacen otras comprobaciones
P.P.S. Es un Windows EXE