๋ฒํผ ์ค๋ฒํ๋ก์ฐ ์ทจ์ฝ์ ํดํน ์ค์ต์ ์ ํ๋ธ๋ฅผ ๋ณด๋ฉฐ ๊ณต๋ถํ๋ค.
#nano overflow.c
ํ๋์ ์์ค์ฝ๋๋ฅผ ์์ฑํ๋ค.
#include <stdio.h>
int main(int argc, char *argv[]){
char buf[16];
if(argc!=2)
return -1;
strcpy(buf,argv[1]);
return 0;
}
argc๋ ํ๋ก๊ทธ๋จ ์คํ์ ์ ๋ฌ๋๋ ์ธ์๋ฅผ ๋ปํ๋ค.
์๋ฅผ ๋ค์ด ํ๋ก๊ทธ๋จ ์คํ ์ ./oveflow 6 3 ์ด๋ฐ์์ผ๋ก ํ๋ฉด
./overflow๊ฐ 0๋ฒ์งธ ์ธ์, 6์ด 1๋ฒ์งธ ์ธ์, 3์ด 2๋ฒ์งธ ์ธ์๊ฐ ๋๋ค.
์ฌ๊ธฐ์ strcpy๊ฐ ์ทจ์ฝํ๋ค.
์ธ์๊ฐ์ ๊ฐ์๋ฅผ ์ธ์ง์๊ธฐ ๋๋ฌธ์ด๋ค.
argv[1]์ ๊ฐ์ด buf์ ๋ฒ์๋ฅผ ๋์ด์ ํฌ๊ธฐ๋ผ๋ strcpy๋ฅผ ํตํด ๋ฎ์ด์ฐ๊ฒ ๋๋ค.
buffer์ ํฌ๊ธฐ๋ฅผ ๋์ด RSP(RBP)๊น์ง ๋ฎ์ด์ธ ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ด๊ฒ์ด ์คํ ์ค๋ฒํ๋ก์ฐ๋ค.
์ด๋ฅผ ๋์ฒํด์ ๋ง๋ค์ด์ง ๊ฒ์ด strncpy์ด๋ค.
#gcc -o overflow overflow.c

strcpy์์ฒด๊ฐ ์ทจ์ฝํ๊ธฐ ๋๋ฌธ์ ๊ด๋ จ warning์ด ๋ฌ๋ค.
#gdb overflow
gdb๋ฅผ ์ด์ฉํด ๋๋ฒ๊น ์ ํด๋ณธ๋ค.
2023.01.17 - [ํ๋ก์ ํธ/์์คํ ํดํน] - [์์คํ ํดํน] ๋๋ฒ๊น
[์์คํ ํดํน] ๋๋ฒ๊น
https://youtu.be/SVw0VnG5UDM ์ ํ๋ธ๋ฅผ ๋ณด๋ฉด์ ๋๋ฒ๊น ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณธ๋ค. starce, pwndbg ํ์ฉ๋ฒ์ ์์๋ณด์. ๋๋ฒ๊น ์ ์ด๋ฏธ ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋จ์ด ์์ ๋, ์ญ์ผ๋ก ์ถ์ ํด์ ์ด๋ป๊ฒ ํ๋ก๊ทธ๋จ์ด ๋์ํ๋
dangsdangs.tistory.com
์ด์ ์ root ๋ง๊ณ kali๊ณ์ ์ pwndbg๋ฅผ ์ค์นํ์ด์ ๋ค์ ์ค์นํ๊ณ ์๋ค...
pwndbg> run `perl -e 'print "X" x 24, "S" x 8'`
perl ์ ์ ๋ ฅ์ ์๋ํํด์ ๋ฃ๋๊ฒ์ด๋ค.
X๋ฅผ ์ด 24๊ฐ, S๋ฅผ 8๊ฐ ๋ง๋ค์ด ๋ฃ๋๋ค.
์ด 32๊ธธ์ด๊ฐ ์ธ์๊ฐ์ผ๋ก ๋ฃ์ด์ง๋ค.

ret๋ฅผ ๋ณด๋ฉด 0x53์ด S์ธ๋ฐ ์ด๋ ์์์ ๋ฃ์ S 8๊ฐ๊ฐ ๋ค์ด๊ฐ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด๋ Buffer๋ถํฐ RSP(RBP)๊น์ง 24ํฌ๊ธฐ์ธ๋ฐ ์ด๊ณณ์ X 24๊ฐ๊ฐ ๋ค์ด๊ฐ ๊ฒ์ด๊ณ ,
๊ทธ ๋ฐ์ RET 8ํฌ๊ธฐ์ S 8๊ฐ๊ฐ ๋ค์ด๊ฐ ๊ฒ์ด๋ค.
# sysctl -w kernel.randomize_va_space=0
์ปค๋์์ ๋ฉ๋ชจ๋ฆฌ ๋๋คํ๋ฅผ ๊บผ์ค๋ค.
์ด๋ ASLR์ด๋ ๋ณด์ ๊ธฐ๋ฅ์ด๋ค.
#ldd ./overflow
ํด๋น ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด ์ฐ๋ฆฌ๊ฐ ๋ง๋ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๋์จ๋ค.
์ด๋ฅผ ๋ฐ๋ณต ์คํ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๋์ค๋ฉด, aslr ๊ธฐ๋ฅ์ด ๊บผ์ง ๊ฒ์ด๋ค.
'ํ๋ก์ ํธ > ์์คํ ํดํน' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์์คํ ํดํน] ๋ฒํผ ์ค๋ฒํ๋ก์ฐ ์ทจ์ฝ์ ํดํน ์ค์ต (2) (1) | 2023.01.26 |
|---|---|
| [์์คํ ํดํน] ์ ์ฝ๋ ์ ์ ๋ฐ ์ต์คํ๋ก์ ์ค์ต (0) | 2023.01.20 |
| [์์คํ ํดํน] ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ณ ํผ๋ผ๋ฏธ๋ ๋ง๋ค๊ธฐ (2) (0) | 2023.01.19 |
| [์์คํ ํดํน] ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ณ ํผ๋ผ๋ฏธ๋ ๋ง๋ค๊ธฐ (1) (0) | 2023.01.18 |
| [์์คํ ํดํน] ๋๋ฒ๊น (0) | 2023.01.17 |