lec09 miscellaneous
play

Lec09: Miscellaneous Insu Yun 2 Scoreboard 3 NSA Codebreaker - PowerPoint PPT Presentation

1 Lec09: Miscellaneous Insu Yun 2 Scoreboard 3 NSA Codebreaker Challenges 4 Administrivia Due: Lab09 is out and its due on Nov 10 NSA Codebreaker Challenge Due: Dec 1 5 Discussion: Lab08 What's the most


  1. 1 Lec09: Miscellaneous Insu Yun

  2. 2 Scoreboard

  3. 3 NSA Codebreaker Challenges

  4. 4 Administrivia • Due: Lab09 is out and its due on Nov 10 • NSA Codebreaker Challenge → Due: Dec 1

  5. 5 Discussion: Lab08 • What's the most "annoying" bug or challenge? • What's the most "interesting" bug or challenge? • What's different between remote & local?

  6. 6 Discussion: passwd • What was the problem? • How did you solve?

  7. 7 Discussion: mini­shellshock • What was the problem? • How did you solve?

  8. 8 Discussion: mini­shellshock • CVE­2014­6277, CVE­2014­6278, CVE­2014­7169, CVE­2014­7186, and CVE­2014­7187 • specially crafted environment variable # Discussion: mini­shellshock CGI (Common Gateway Interface) • HTTP headers → Environment variable • If script is a bash script?

  9. 9 Discussion: obscure • What was the problem? • How did you solve?

  10. 10 Discussion: obscure • ARM • different calling convention • r0: first argument

  11. 11 Discussion: obscure __libc_csu_init (int argc, char **argv, char **envp) { const size_t size = __init_array_end - __init_array_start; for (size_t i = 0; i < size; i++) (*__init_array_start [i]) (argc, argv, envp); }

  12. 12 Disscussion: obscure .text:00008610 ADD R4, R4, #1 .text:00008614 LDR R3, [R5,#4]! .text:00008618 MOV R0, R7 // R0 = R7 .text:0000861C MOV R1, R8 .text:00008620 MOV R2, R9 .text:00008624 BLX R3 // EIP = R3 .text:00008628 CMP R4, R6 .text:0000862C BNE loc_8610 .text:00008630 LDMFD SP!, {R3-R9,PC} // R3...R9 & PC

  13. 13 Discussion: ieee754 • What was the problem? • How did you solve?

  14. 14 Discussion: diehard • What was the problem? • How did you solve?

  15. 15 Discussion: array • What was the problem? • How did you solve?

  16. 16 2kills • What was the problem? • How did you solve?

  17. 17 jmp­to­where2 • What was the problem? • How did you solve?

  18. 18 return­to­dl • What was the problem? • How did you solve?

  19. 19 return­to­dl • How GOT works? • make fake SYMTAB, STRTAB ...

  20. 20 2048_game • What was the problem? • How did you solve?

  21. 21 2048_game • How to calculate address?

  22. 22 2048_game • Using format string, arbitrary read! • Extract binary is also possible

  23. 23 Lab09: Miscellaneous • integer overflow • web • race condition • interesting exploit techniques

  24. 24 Today's Tutorial • In­class tutorial: • One shot exploit

  25. 25 Today's Totorial int main() { char buf[0x100]; printf("Give me something..."); fgets(buf, 2 * sizeof (buf), stdin); }

  26. 26 Today's Totorial • [...][printf plt][pop ret][__libc_start_main GOT][main]

  27. 27 Today's Totorial • calculate system based on leaked address • [...][system][XXXX][/bin/sh addr]

  28. 28 In­class Tutorial $ git git@clone tc.gtisc.gatech.edu:seclab-pub cs6265 or $ git pull $ cd cs6265/lab08 $ ./init.sh $ cd tut $ cat README

  29. Lec09: Miscellaneous Insu Yun

Recommend


More recommend