| 336 | await self.load_yaml_file(Objective, filename, plugin.access) |
| 337 | |
| 338 | async def _load_payloads(self, plugin): |
| 339 | payload_config = dict( |
| 340 | standard_payloads=dict(), |
| 341 | special_payloads=dict(), |
| 342 | extensions=dict(), |
| 343 | ) |
| 344 | for filename in glob.iglob('%s/payloads/*.yml' % plugin.data_dir, recursive=False): |
| 345 | data = self.strip_yml(filename) |
| 346 | special_payloads = data[0].get(PAYLOADS_CONFIG_SPECIAL_KEY, dict()) |
| 347 | extensions = data[0].get(PAYLOADS_CONFIG_EXTENSIONS_KEY, dict()) |
| 348 | standard_payloads = data[0].get(PAYLOADS_CONFIG_STANDARD_KEY, dict()) |
| 349 | payload_config[PAYLOADS_CONFIG_STANDARD_KEY].update(standard_payloads) |
| 350 | if special_payloads: |
| 351 | await self._apply_special_payload_hooks(special_payloads) |
| 352 | payload_config[PAYLOADS_CONFIG_SPECIAL_KEY].update(special_payloads) |
| 353 | if extensions: |
| 354 | await self._apply_special_extension_hooks(extensions) |
| 355 | payload_config[PAYLOADS_CONFIG_EXTENSIONS_KEY].update(extensions) |
| 356 | self._update_payload_config(payload_config, plugin.name) |
| 357 | |
| 358 | def _update_payload_config(self, updates, curr_plugin_name): |
| 359 | payload_config = self.get_config(name='payloads') |