You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1. Invoke `len(list())` to push `0` onto the stack
230
227
2. Invoke `print()` to push `None` onto the stack
231
228
5. Import `os`
232
-
3. Load and decode all three batches of the `nc` command
229
+
3. Load all three batches of the `nc` command
230
+
4. Decode the command batches because `BUILD_STRING` only works with strings and not byte strings
233
231
4. Concatenate the `nc` command
234
232
6. Invoke the `nc` command via `os.system()`
235
233
@@ -280,7 +278,8 @@ for i in range(num_chunks):
280
278
281
279
### Upload additional constants
282
280
283
-
In order to make the exploit work, we need a few more constants:
281
+
In order to make the exploit work, we need a few more constants.
282
+
These have to be uploaded after the plugins to make sure the plugins can be saved to disk successfully before any entries with invalid filenames are created (e.g. saving the file `plugins/expl` won't work because there is no directory `storage/plugins` but we cannot traverse the path because then the logfile method won't find it since this is operating from the working directory).
284
283
285
284
Store the filename which is used as "logfile" at index `ord("a")`
0 commit comments