boofuzz
boofuzz copied to clipboard
Fuzzing session prevents application from exiting with `exit()` or `sys.exit()`
Fuzzing main loop handles all exceptions, but for SystemExit
exception (that is being generated when exit()
or sys.exit()
is called) it just doesn't stop. So it's impossible to exit fuzzing application from another thread with exit()
or sys.exit()
.
Workaround: brutally exit with os._exit()
(it just doesn't raise SystemExit
exception).
Can you tell us where exactly the SystemExit
exception is being caught?
I tried a raise SystemExit
in _main_fuzz_loop
but that exited the program just fine.
https://github.com/jtpereyda/boofuzz/blob/8384d46daef31622a4c51c96c970944fd3ce01c5/boofuzz/sessions.py#L1353
We catch Exception
in some places, which I have to admit is not pretty, but doesn't catch BaseException
which SystemExit
or KeyboardInterrupt
inherit from. I couldn't find any occurrences of base except:
so SystemExit
should work. https://docs.python.org/3/library/exceptions.html#Exception
I will double check it soon