I need to fuzz an interactive binary (for which I do not have the source code) compiled for a MIPS architecture. It is a login console and i'd like to fuzz the interactive text provided by the user (ie.: the console asks for a username, the user types it in, the console asks for a password, the users provides it. I want to fuzz username and password). Is there any tool that helps me doing that? Furthermore, the tool should be able to fuzz via qemu or something similar since I am not using a MIPS machine to do so.
AFL can perform qemu user-mode fuzzing. It is capable of providing the input to the executable on standard in, so it can handle most interactive programs. However, if your login binary is using special ioctls to directly access the terminal, you may still need to do some work to begin fuzzing it. In that case, I'd suggest building an
LD_PRELOAD shim to transform the terminal-specific ioctls into raw
read operations from