wargame ๐Ÿด‍โ˜ ๏ธ write-up 33

giant

1. Code 2. Condition GET ํŒŒ๋ผ๋ฏธํ„ฐ shit์„ ๋ฐ›์•„์˜จ๋‹ค. ๊ณต๋ฐฑ(%20), ๊ฐœํ–‰(%0a), ์บ๋ฆฌ์ง€ ๋ฆฌํ„ด(%0d), ํƒญ(%09)์„ ํ•„ํ„ฐ๋ง ํ•œ๋‹ค. 3. Solution $query = "select 1234 from{$_GET[shit]}prob_giant where 1"; ๊ฐ„๋‹จํžˆ shit์— ๊ณต๋ฐฑ์„ ๋„ฃ์–ด์ฃผ๋ฉด ํ’€๋ฆฌ๋Š” ๋ฌธ์ œ์ด๋‹ค. img_1์† 0x0b๋ฅผ ๋ณด๋ฉด, vertical tab ์ด๋ผ ์ ํ˜€์žˆ๋‹ค. vertical tab(\v)์ด๋ž€, ํ”„๋ฆฐํŠธ์— ์‚ฌ์šฉ๋˜๋˜ Tab์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค. ์š”์ƒˆ๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ์‹คํ–‰ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด Tab์ด ์ด๋ฃจ์–ด ์ง„๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ %0b๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค. ๋ณ€์ˆ˜๋ช… ๊ฐ’ shit %0b

r0pbaby

2015 DEFCON CTF ๋ฌธ์ œ r0pbaby - Baby's First 1 ํŒŒ์ผ ์ด๋ฆ„๋ถ€ํ„ฐ rop(Return Oriented Programming) ๊ธฐ๋ฒ•์„ ์•”์‹œํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ์‹คํ–‰์„ ์‹œ์ผœ๋ณผ๊นŒ์š” ์˜ ์ฃผ์†Œ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ์Šคํƒ์— ์ž…๋ ฅ์„ ํ•  ์ˆ˜ ์žˆ๋„ค์š”. gdb์—์„œ ์‹คํ–‰ ํ›„ ๊ณผ์—ฐ ์˜ฌ๋ฐ”๋ฅธ ์ฃผ์†Œ์ธ์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ์•Œ๊ฒŒ ๋œ libc ์ฃผ์†Œ๋Š” ํฌ์ธํ„ฐ ์ฃผ์†Œ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  offset ์ž‘์—…์„ ํ•˜๊ธฐ์—๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๊ธฐ์—, 1๋ฒˆ ๋ฉ”๋‰ด๋Š” ์ œ์™ธํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋‚˜๊ฐ€์•ผ ๊ฒ ๋„ค์š”. ๊ทธ๋ ‡๋‹ค๋ฉด 2๋ฒˆ ๋ฉ”๋‰ด, ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋Š” ์–ด๋–จ๊นŒ์š”? ๋™์ผํ•ฉ๋‹ˆ๋‹ค. 2๋ฒˆ ๋ฉ”๋‰ด๋Š” ๋ฏฟ๊ณ  ์‚ฌ์šฉํ•ด๋„ ๋˜๊ฒ ๋„ค์š”. ๋‹ค์Œ์œผ๋กœ 3๋ฒˆ ๋ฉ”๋‰ด๋ฅผ ์‚ดํŽด๋ณผ๊นŒ์š”. 3๋ฒˆ ๋ฉ”๋‰ด์— breakpoint๋ฅผ ๊ฑธ์–ด์ฃผ๊ณ  ์ญ‰ ๋‚ด๋ ค๊ฐ€๋‹ค๋ณด๋ฉด, memcpy๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. rbp๋ถ€ํ„ฐ..