I used to use shells derived from c99, like storm7. I also coded my own one, which I used for simplicity but has a lot of bugs.
I didn't really care about webshell's interface unless I couldn't launch a reverse/direct shell with netcat and I had to work my way with it.