A couple I've learned from (I've left out heavily topic-specific books like Cryptography Engineering since I assume you're asking for books about general information security):
Hacking, 2nd Edition - Introduces the foundations of memory and network exploitation
This book will give you the fundamentals of application security testing.