Quote
Buffer overflow, or Buffer Overrun is a software error triggered when a program doesn't adequately control the amount of data that is copied over the buffer, so if this amount exceeds the preassigned capacity, remaining bytes are stored in adjacent memory areas by overwriting its original content. This may lead to arbitrary code execution and allow access to a vulnerable system.
http://www.blackhatacademy.org/security101/Buffer_OverflowsQuote
Ascii shellcode bypasses many character filters and is somewhat easy to learn due to the fact that many ascii instructions are only one or two byte instructions. The smaller the instructions, the more easily obfuscated and randomized they are. During many buffer overflows the buffer is limited to a very small writeable segment of memory, so many times it is important to utilize the smallest possible combination of opcodes. In other cases, more buffer space is available and things like ascii art shellcode are more plausible.
http://www.blackhatacademy.org/security101/Asciishellcodetutorials on how to trigger and exploit buffer overflows and how to protect against them as well as ascii shellcode to help bypass some mechanisms to prevent shell stack execution and as well as hide your shellcode to make it less noticeable on the stack.
This post was edited by AbDuCt on Apr 24 2012 01:05pm