-
-
Notifications
You must be signed in to change notification settings - Fork 103
Twig template injection #401
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Changes from 1 commit
3dcf658
3fe44eb
f01c7f5
70bcff2
1bafbf6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -60,18 +60,7 @@ def scan(self, value): | |
| detection = dict(name="twig_template_injection", order=3) | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I tested with super simple string /foobar?b={{3*%272%27}} There are 2 possible detections: Since Any ideas how to distinguish? @mzfr @rjt-gupta
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For twig this case should give
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we need something that distinguishes these two..
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yeah the regex is almost similar so it' hard to distinguish. Also afeena can you please tell me how did you tested it? I mean the setup I want to know what I am doing wrong.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @mzfr scan works perfectly fine, if you print possible detection you can see it. the only problem in the signature of the |
||
| return detection | ||
|
|
||
| async def handle(self, attack_params): | ||
| """ | ||
| Handler of emulator | ||
| :param attack_params (list): contains dicts as elements with id and value (payload from attacker) as keys | ||
| :return: (dict): value (result of emulator), page (if set to true the payload will be injected to index.html | ||
| itself) as keys. | ||
| """ | ||
|
|
||
| result = await self.get_injection_result(attack_params[0]["value"]) | ||
| if not result or "stdout" not in result: | ||
| self.logger.exception( | ||
| "Error while getting the injection results from php sandbox.." | ||
| ) | ||
| return dict(status_code=504) | ||
| return dict(value=result["stdout"], page=False) | ||
| async def handle(self, attack_params, session=None): | ||
| attack_params[0]['value'] = unquote(attack_params[0]['value']) | ||
| result = await self.get_injection_result(attack_params[0]['value']) | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. tornado is getting its results from the custom docker image, and here its phpox. the returned format is different..
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @rjt-gupta do you have an example of the format? |
||
| return result | ||
Uh oh!
There was an error while loading. Please reload this page.