Let's assume that a vulnerabled process is set up with an ASLR and DEP against all the imported modules used in this process and there is no way to find a module that is aslr free.. More over, the process is not used by JIT so JIT Spraying is out of scope as well as the heap is not used to cause a buffer overflow(it's a stack based buffer overflow).

How that scenerio could be defeated?


The text segment which is also called the code segment, contains the application's static functionality is not randomized by ASLR. An exploit can jump anywhere into this region of memory reliably, which permits an attacker to build a chain of ROP gadgets. The most common goal of a ROP chain is to setup a stable environment to run shell code, but that is not the only use of ROP.

Additionally, pwn2own has come up with many other bypasses. I highly recommend reading the details papers that are published after every pwn2own. One of my favorite exploits uses a heap overflow to read ASLR'ed memory addresses.

  • The text segment does not mostly contain code(even through it can be because this place is RWX), so how would you use ROP? you probably wont find gagdgets for your rop. @Rook
    – JDeff
    Nov 1 '14 at 18:01
  • @JDeff The text segment, which is also called the code segment contains all of the application's functionality that isn't included by DLLs. In most application there should be a wealth of ROP gadgets available. The trick if finding the ones you need.
    – rook
    Nov 1 '14 at 18:04
  • I confused with data section, got you! :) @Rook
    – JDeff
    Nov 1 '14 at 18:07
  • @JDeff totally fair, who the hell named this crap?
    – rook
    Nov 1 '14 at 18:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.