files given:
- delphi-07a5c9d07a4c20ae81a2ddc66b9602d0dcceb74b
- libtwenty.so-4a3918b2efd9fbdfd20eeb8fa51ca76bc42eb2f2
TL;DR
- Reverse Command Protocol
- Integer Overflow
- Metacharacter Injection
{ | |
The idea of DelphiSwitchToFiber() function is to backup on a local variable in stack the | |
state of the Exception stack right before calling SwitchToFiber() and then restoring its state | |
right atfer returns from call to SwitchToFiber(). | |
If SwitchToFiber() is used directly from within an Except or Finally block, and if there's an exception | |
raised after switching to another fiber, upon coming back the results will be unpredictable because | |
the exception stack will be completely unwinded and all raise exceptions destroyed. | |
In order to prevent this issue we must backup the Exception stack before the call to SwitchToFiber() | |
and restore it right after the call. |
/* open up chrome dev tools (Menu > More tools > Developer tools) | |
* go to network tab, refresh the page, wait for images to load (on some sites you may have to scroll down to the images for them to start loading) | |
* right click/ctrl click on any entry in the network log, select Copy > Copy All as HAR | |
* open up JS console and enter: var har = [paste] | |
* (pasting could take a while if there's a lot of requests) | |
* paste the following JS code into the console | |
* copy the output, paste into a text file | |
* open up a terminal in same directory as text file, then: wget -i [that file] | |
*/ |
People
![]() :bowtie: |
π :smile: |
π :laughing: |
---|---|---|
π :blush: |
π :smiley: |
:relaxed: |
π :smirk: |
π :heart_eyes: |
π :kissing_heart: |
π :kissing_closed_eyes: |
π³ :flushed: |
π :relieved: |
π :satisfied: |
π :grin: |
π :wink: |
π :stuck_out_tongue_winking_eye: |
π :stuck_out_tongue_closed_eyes: |
π :grinning: |
π :kissing: |
π :kissing_smiling_eyes: |
π :stuck_out_tongue: |
{**************************************************************************************************} | |
{ } | |
{ Project JEDI Code Library (JCL) } | |
{ } | |
{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); } | |
{ you may not use this file except in compliance with the License. You may obtain a copy of the } | |
{ License at http://www.mozilla.org/MPL/ } | |
{ } | |
{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } | |
{ ANY KIND, either express or implied. See the License for the specific language governing rights } |
Delimited continuations manipulate the control flow of programs. Similar to control structures like conditionals or loops they allow to deviate from a sequential flow of control.
We use exception handling as another example for control flow manipulation and later show how to implement it using delimited continuations. Finally, we show that nondeterminism can also be expressed using delimited continuations.