or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
NTU Computer Security Fall 2019
Binary Exploitatiion
Binary exploitation
Basic concepts
Overflow
BOF - Buffer Overflow
Canary
Shellcode
Linux Syscall
Shellcode: execve
NX
ASLR
PIE
Lazy Binding
GOT
GOT Hijacking
ROP(Return Oriented Programming Attack)
ROP gadgets
ROP:
Control Register
ROP:
execve("/bin/sh", 0, 0)
的shellcode並嘗試控制rip跳至shellcodeexecve("/bin/sh", 0, 0)
行為的ROP chainret2plt(return to .plt)
ret2libc(return to libc)
Information leak
Stack pivoting(Stack migration)
ret2csu(return to __libc_csu_init)
__libc_csu_init
函式中,為compiler編進去的functionHeap Exploitation
Heap intro
ldd --version
void *ptr = malloc(size)
Chunk header
bins
Vulnerability
Heap overflow
UAF(Use after free)
Heap exploitation
Fastbin attack
free(A) free(B) free(A)
的方式繞過此檢查Hooks
__malloc_hook
__free_hook
__realloc_hook
One gadget
execve("/bin/sh", argv[], envp[])
(開shell)Tcache(per-thread cache)
tcache_perthread_struct
tcache_perthread_struct
tcache_perthread_struct
等Some Heap Technique
Heap Overlap
Unsafe Unlink
Unsorted bin attack
Something good