์ „์ฒด ๊ธ€

Department of Computer Science and Engineering, 21th, Sungkyunkwan University
Pwnable/FTZ

FTZ - level12 [Buffer Overflow ๐œท]

LEVEL 12 [level12] passcode : it is like this (NO DRAG, NO PASSCODE) level11๊ณผ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์ด๋‹ค. ๋ฐ”๋กœ ํžŒํŠธ๋ฅผ ๋œฏ์–ด๋ณด์ž. level11๊ณผ ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋„ ๊ฐ™์œผ๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค. ์ •ํ™•์„ฑ์„ ์œ„ํ•˜์—ฌ gdb๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ดํŽด๋ณด์ž. original attackme๋Š” gdb ๊ถŒํ•œ์ด ๊ฑฐ๋ถ€๋˜์–ด ์žˆ์œผ๋‹ˆ ํ”„๋กœ๊ทธ๋žจ์„ tmp๋กœ ๋ณต์‚ฌํ•˜์—ฌ ๋œฏ์–ด๋ณด์ž. ์—ญ์‹œ๋‚˜ ๋™์ผํ–ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ → (0x108 + 0x8) = 272 ์˜ˆ์ƒ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ → str(256) + dummy(8) + SFP(4) + RET(4) = 272 ๋”ฐ๋ผ์„œ ๋˜‘๊ฐ™์ด str์˜ ์ฃผ์†Œ๋ฅผ ๊ตฌํ•˜๊ณ  NOP๋ฅผ ์ด์šฉํ•˜์—ฌ ์‰˜์„ ๋”ฐ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. str์˜ ์‹œ์ž‘..

Pwnable/FTZ

FTZ - level11 [Buffer Overflow ๐›ผ]

LEVEL 11 [level11] passcode : what!@#$? (NO DRAG, NO PASSCODE) attackme ๋ผ๋Š” ์‹คํ–‰ํŒŒ์ผ์ด ์กด์žฌํ•˜๋‚˜ level11์˜ ๊ถŒํ•œ์—์„œ๋Š” ์‹คํ–‰๊ณผ ์ฝ๊ธฐ๊ถŒํ•œ๋งŒ ์กด์žฌํ•œ๋‹ค. ์ด์ œ hint๋ฅผ ์‚ดํŽด๋ณด์ž. ์•„๋งˆ๋„ level11์˜ ์†Œ์Šค์ฝ”๋“œ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์ฝ”๋“œ๋ฅผ ํ•œ๋ฒˆ ๋ถ„์„ํ•ด ๋ณด์ž. #include #include int main( int argc, char *argv[] ) { char str[256]; //256๋ฐ”์ดํŠธ์˜ ๋ฐฐ์—ด ์„ ์–ธ setreuid( 3092, 3092 ); //level12 ๊ถŒํ•œ ๋ถ€์—ฌ strcpy( str, argv[1] ); //str์— argv[1]๋ฅผ ๋ณต์‚ฌ printf( str ); //๋ฌธ์ž์—ด str์„ ์ถœ๋ ฅ } ์—ฌ๊ธฐ์„œ str์˜ ๊ธธ์ด๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€..

Pwnable/FTZ

FTZ - level10 [Wiretapping]

LEVEL 10 [level10] passcode : interesting to hack! interesting to hack! (NO DRAG, NO PASSCODE) ์ด์ „๊นŒ์ง€์˜ ๋ ˆ๋ฒจ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ program์ด๋ž€ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ program์ด๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ ‘๊ทผ ๊ถŒํ•œ์ด ์—†๋‹ค. hint๋ฅผ ์‚ดํŽด๋ณด์•˜๋”๋‹ˆ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‘ ์‚ฌ๋žŒ์˜ ๋Œ€ํ™”๋ฅผ ๋„์ฒญํ•˜์—ฌ level11์˜ ๊ถŒํ•œ์„ ์–ป๋Š” ๋ฌธ์ œ์ด๋‹ค. ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. [ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ] ์›๋ž˜๋Š” ํ”„๋กœ์„ธ์„œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์ ‘๊ทผ์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ตœ์ดˆ์˜ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์ƒ์„ฑ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ปค๋„์— ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ํ• ๋‹น์„ ์š”์ฒญํ•จ์œผ๋กœ์จ ์ด๋ฃจ์–ด์ง„๋‹ค. ์‹œ์Šคํ…œ ์žฌ๋ถ€ํŒ… ๋ฐ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๊ณต..

Pwnable/FTZ

FTZ - level9 [Buffer Overflow]

LEVEL 9 [level9] passcode : break (NO DRAG, NO PASSCODE) hint๋ฅผ ์‚ดํŽด๋ณด๋‹ˆ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์— ๊ด€ํ•œ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๋ฐ”๋กœ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž. #include #include #include main(){ char buf2[10]; //10๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ buf2 ์„ ์–ธ char buf[10]; //10๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ buf ์„ ์–ธ printf("It can be overflow : "); fgets(buf,40,stdin); //buf๋ผ๋Š” ๋ณ€์ˆ˜์— 40๊ฐœ(NULLํฌํ•จ) ์ž…๋ ฅ๋ฐ›์Œ if ( strncmp(buf2, "go", 2) == 0 ) //buf2์˜ ์ฒ˜์Œ 2๊ฐœ์˜ ๋ฌธ์ž๊ฐ€ "go"์™€ ์ผ์น˜ํ•œ๋‹ค๋ฉด { printf("Good Skill!\n"); setreuid( 3010,..

Lucvs
Lucvs