The Geometry of Innocent Flesh on the Bone is a fantastic paper for an introduction to learning how return oriented programming actually works. It’s okay as the first introduction, but this paper has fantastic concrete examples that readers can step through in order to really understand the power of these attacks. It may be worth running through a few as a group in order to make sure students are on the right path running through these, it can be easy to get stuck.
Hovav Shacham. 2007. The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86). In Proceedings of the 14th ACM conference on Computer and communications security (CCS ’07). ACM, New York, NY, USA, 552-561. DOI=10.1145/1315245.1315313 http://doi.acm.org/10.1145/1315245.1315313