Last active
March 10, 2016 03:26
-
-
Save hhc0null/ee63b7397e846b54a882 to your computer and use it in GitHub Desktop.
some study of heap exploitation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(12:23) hhc0null@arch_on_vbox% ltrace -s 512 -e "[email protected].*" ./freenote [~/ctf] [8296] | |
freenote->malloc(6160) = 0x17d0010 | |
== 0ops Free Note == | |
1. List Note | |
2. New Note | |
3. Edit Note | |
4. Delete Note | |
5. Exit | |
==================== | |
Your choice: freenote->read(02 | |
, "2", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
Length of new note: freenote->read(0128 | |
, "1", 1) = 1 | |
freenote->read(0, "2", 1) = 1 | |
freenote->read(0, "8", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
freenote->malloc(128) = 0x17d1830 | |
Enter your note: freenote->read(0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", 128) = 128 | |
Done. | |
== 0ops Free Note == | |
1. List Note | |
2. New Note | |
3. Edit Note | |
4. Delete Note | |
5. Exit | |
==================== | |
Your choice: freenote->read(02 | |
, "2", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
Length of new note: freenote->read(0128 | |
, "1", 1) = 1 | |
freenote->read(0, "2", 1) = 1 | |
freenote->read(0, "8", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
freenote->malloc(128) = 0x17d18c0 | |
Enter your note: freenote->read(0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", 128) = 128 | |
Done. | |
== 0ops Free Note == | |
1. List Note | |
2. New Note | |
3. Edit Note | |
4. Delete Note | |
5. Exit | |
==================== | |
Your choice: freenote->read(0, "\n", 1) = 1 | |
Invalid! | |
== 0ops Free Note == | |
1. List Note | |
2. New Note | |
3. Edit Note | |
4. Delete Note | |
5. Exit | |
==================== | |
Your choice: freenote->read(04 | |
, "4", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
Note number: freenote->read(01 | |
, "1", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
freenote->free(0x17d18c0) = <void> | |
Done. | |
== 0ops Free Note == | |
1. List Note | |
2. New Note | |
3. Edit Note | |
4. Delete Note | |
5. Exit | |
==================== | |
Your choice: freenote->read(04 | |
, "4", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
Note number: freenote->read(00 | |
, "0", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
freenote->free(0x17d1830) = <void> | |
Done. | |
== 0ops Free Note == | |
1. List Note | |
2. New Note | |
3. Edit Note | |
4. Delete Note | |
5. Exit | |
==================== | |
Your choice: freenote->read(02 | |
, "2", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
Length of new note: freenote->read(0256 | |
, "2", 1) = 1 | |
freenote->read(0, "5", 1) = 1 | |
freenote->read(0, "6", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
freenote->malloc(256) = 0x17d1830 | |
Enter your note: freenote->read(0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", 256) = 256 | |
Done. | |
== 0ops Free Note == | |
1. List Note | |
2. New Note | |
3. Edit Note | |
4. Delete Note | |
5. Exit | |
==================== | |
Your choice: freenote->read(04 | |
, "4", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
Note number: freenote->read(01 | |
, "1", 1) = 1 | |
freenote->read(0, "\n", 1) = 1 | |
freenote->free(0x17d18c0*** Error in `./freenote': double free or corruption (out): 0x00000000017d18c0 *** | |
======= Backtrace: ========= | |
/usr/lib/libc.so.6(+0x6f364)[0x7f8da3555364] | |
/usr/lib/libc.so.6(+0x74d96)[0x7f8da355ad96] | |
/usr/lib/libc.so.6(+0x7557e)[0x7f8da355b57e] | |
./freenote[0x40106f] | |
./freenote[0x4010f1] | |
/usr/lib/libc.so.6(__libc_start_main+0xf0)[0x7f8da3506710] | |
./freenote[0x400799] | |
======= Memory map: ======== | |
00400000-00402000 r-xp 00000000 08:03 7618310 /home/hhc0null/ctf/freenote | |
00601000-00602000 r--p 00001000 08:03 7618310 /home/hhc0null/ctf/freenote | |
00602000-00603000 rw-p 00002000 08:03 7618310 /home/hhc0null/ctf/freenote | |
017d0000-017f2000 rw-p 00000000 00:00 0 [heap] | |
7f8d9c000000-7f8d9c021000 rw-p 00000000 00:00 0 | |
7f8d9c021000-7f8da0000000 ---p 00000000 00:00 0 | |
7f8da32d0000-7f8da32e6000 r-xp 00000000 08:03 6835909 /usr/lib/libgcc_s.so.1 | |
7f8da32e6000-7f8da34e5000 ---p 00016000 08:03 6835909 /usr/lib/libgcc_s.so.1 | |
7f8da34e5000-7f8da34e6000 rw-p 00015000 08:03 6835909 /usr/lib/libgcc_s.so.1 | |
7f8da34e6000-7f8da367e000 r-xp 00000000 08:03 6818951 /usr/lib/libc-2.23.so | |
7f8da367e000-7f8da387d000 ---p 00198000 08:03 6818951 /usr/lib/libc-2.23.so | |
7f8da387d000-7f8da3881000 r--p 00197000 08:03 6818951 /usr/lib/libc-2.23.so | |
7f8da3881000-7f8da3883000 rw-p 0019b000 08:03 6818951 /usr/lib/libc-2.23.so | |
7f8da3883000-7f8da3887000 rw-p 00000000 00:00 0 | |
7f8da3887000-7f8da38aa000 r-xp 00000000 08:03 6818948 /usr/lib/ld-2.23.so | |
7f8da3a83000-7f8da3a86000 rw-p 00000000 00:00 0 | |
7f8da3aa9000-7f8da3aaa000 rw-p 00000000 00:00 0 | |
7f8da3aaa000-7f8da3aab000 r--p 00023000 08:03 6818948 /usr/lib/ld-2.23.so | |
7f8da3aab000-7f8da3aac000 rw-p 00024000 08:03 6818948 /usr/lib/ld-2.23.so | |
7f8da3aac000-7f8da3aad000 rw-p 00000000 00:00 0 | |
7ffd6cc46000-7ffd6cc67000 rw-p 00000000 00:00 0 [stack] | |
7ffd6cde1000-7ffd6cde3000 r--p 00000000 00:00 0 [vvar] | |
7ffd6cde3000-7ffd6cde5000 r-xp 00000000 00:00 0 [vdso] | |
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] | |
<no return ...> | |
--- SIGABRT (Aborted) --- | |
+++ killed by SIGABRT +++ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment