El hecho que haya bytes nulos te complica la vida, si es que es una cadena que le estas pasando.
La direccion es corta porque debe ser la que va directamente hacia libc, a mi me pasa lo mismo en linux. Danos mas detalles, que programa intentas explotar?
Una solucion para tener una direccion sin bytes nulos seria usar la PLT del programa vulnerable, pero la entrada de system no la vas a tener si no es usada por el programa. Si es algo que escribiste vos para testear el ret2libc podes probar de agregarla a mano:
if (argc < 0)
system("no se va a ejecutar");
Y ahi te deberia aparecer. En gdb la sacas con "x system" y te deberia dar una direccion dentro del espacio del programa vulnerable.
Proba asi, sino va a ser mas dificil explotarlo.
Saludos.