-
Notifications
You must be signed in to change notification settings - Fork 59
Open
Labels
help wantedExtra attention is neededExtra attention is needed
Description
Description
Sploitkit throws an exception when setting the boolean value False or integer 0 for Module Option. When setting True it works correctly.
Sploitkit version: sploitkit==0.6.0
Python version: 3.12+
Exceptions
% python -B main.py
Traceback (most recent call last):
File ".../main.py", line 28, in <module>
main()
File ".../main.py", line 23, in main
test.config['SEND_PAYLOAD'] = False
~~~~~~~~~~~^^^^^^^^^^^^^^^^
File ".../venv_macos31244/lib/python3.12/site-packages/sploitkit/core/components/config.py", line 481, in __setitem__
return c.__setitem__(key, value)
^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../venv_macos31244/lib/python3.12/site-packages/sploitkit/core/components/config.py", line 67, in __setitem__
key = self._setkey(key, value)
^^^^^^^^^^^^^^^^^^^^^^^^
File ".../venv_macos31244/lib/python3.12/site-packages/sploitkit/core/components/config.py", line 159, in _setkey
raise ValueError(f"Invalid value '{value}' for key '{key.name}'")
ValueError: Invalid value 'False' for key 'SEND_PAYLOAD'
############################################################################################
Traceback (most recent call last):
File ".../main.py", line 28, in <module>
main()
File ".../main.py", line 23, in main
test.config['SEND_PAYLOAD'] = 0
~~~~~~~~~~~^^^^^^^^^^^^^^^^
File ".../venv_macos31244/lib/python3.12/site-packages/sploitkit/core/components/config.py", line 481, in __setitem__
return c.__setitem__(key, value)
^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../venv_macos31244/lib/python3.12/site-packages/sploitkit/core/components/config.py", line 67, in __setitem__
key = self._setkey(key, value)
^^^^^^^^^^^^^^^^^^^^^^^^
File ".../venv_macos31244/lib/python3.12/site-packages/sploitkit/core/components/config.py", line 159, in _setkey
raise ValueError(f"Invalid value '{value}' for key '{key.name}'")
ValueError: Invalid value '0' for key 'SEND_PAYLOAD'Code
from pprint import pprint
from sploitkit import Config, Module, Option
class TestModule(Module):
config = Config(
{
Option(
name='SEND_PAYLOAD',
description='Boolean or integer value',
required=True,
): None,
}
)
def run(self, *args, **kwargs) -> None:
pprint(dict(self.config))
def main() -> None:
test = TestModule()
test.config['SEND_PAYLOAD'] = False # or 0
test.run()
if __name__ == '__main__':
main()Metadata
Metadata
Assignees
Labels
help wantedExtra attention is neededExtra attention is needed