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

gremlin

query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("gremlin"); highlight_file(__FILE__);?> preg_match๋ฅผ ๋ณด๋ฉด ํ•„ํ„ฐ๋ง ๋˜๊ณ ์žˆ๋Š” ๋ฌธ์ž๋“ค์ด ์žˆ๋‹ค.query์˜ id๋ถ€๋ถ„ ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋ฅผ ๋‹ซ๊ณ , ๋’ค์˜ and pw๋ถ€๋ถ„์€ ์ฃผ์„์ฒ˜๋ฆฌํ•ด๋ณด๋ฉด   ํ’€๋ฆฐ๋‹ค.sql์˜ ์ฃผ์„์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ#;%00-- -/* */์ƒํ™ฉ์— ๋งž๋Š” ๋ฐฉ์‹์„ ํƒํ•˜๋ฉด ๋œ๋‹ค.

1. fd

http://pwnable.kr/# http://pwnable.kr/ there are flag files corresponding to each challenges (similar to CTF), you need to read it and submit to pwnable.kr to get the corresponding point. in order to read the flag file, you need some skills regarding programming, reverse-engineering, bu pwnable.kr ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ fd *.* ์—„๋งˆ๋ฅผ ์ฐพ๋Š” ํ•œ ์•„์ด๊ฐ€ ๋งํ•˜๋„ค์š” "ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ๊ฐ€ ๋ญ์•ผ?? ๋€จ>

5. orc → wolfman

์ผ๋‹จ ์–ด๋””์–ด๋””๊ฐ€ ๋‹ฌ๋ผ์กŒ์„์ง€ ์ฝ”๋“œ๋ฅผ ๋ณผ๊นŒ์š” [orc@localhost orc]$ cat -n wolfman.c 1/* 2 The Lord of the BOF : The Fellowship of the BOF 3 - wolfman 4 - egghunter + buffer hunter 5*/ 6 7#include 8#include 9 10extern char **environ; 11 12main(int argc, char *argv[]) 13{ 14char buffer[40]; 15int i; 16 17if(argc < 2){ 18printf("argv error\n"); 19exit(0); 20} 21 22// egghunter 23for(i=0; environ[i]; i++) 24memset(environ..

4. goblin → orc

์•ˆ๋…•ํ•˜์„ธ์š” ์–ด๋Š๋ง 3๋ฒˆ๋ฌธ์ œ๊นŒ์ง€ ํด๋ฆฌ์–ดํ–ˆ๋„ค์š”ใ…Ž ์ €ํฌ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ bof๊ณต๊ฒฉ์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. 3๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์€ 'ret๋ฅผ ์–ด๋Š ์ฃผ์†Œ๋กœ ๋ฎ๋Š๋ƒ'์˜€๋Š”๋ฐ์š”, 1. buffer ๋ณ€์ˆ˜2. argv[1]3. ํ™˜๊ฒฝ๋ณ€์ˆ˜์˜€์ฃ  ์—ฌ๊ธฐ๊นŒ์ง€ ์ž˜ ํ‘ธ์…จ๋‹ค๋ฉด ์•„๋งˆ ret๋ฅผ ๋ฎ์„ ์ฃผ์†Œ๋ฅผ ์ฐพ๋Š” ๊ฒƒ ์ฏค์€ ์‹์€์ฃฝ ๋จน๊ธฐ ์ผ ๊ฒ๋‹ˆ๋‹ค.(๊ทธ๋ž˜๋„ ๋‹ค์‹œ ์ •๋ฆฌ๋ฅผ ์œ„ํ•ดใ…Ž) ์ œ๊ฐ€ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€์ธ๋ฐ์š”, ๋จผ์ € gdb๋ฅผ ํ†ตํ•ด ๋œฏ์–ด๋ณด๋ฉด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.gdb๋ฅผ ์ด์šฉํ•œ๋‹ค๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ, ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ๋“ฑ์˜ ๊ฐœ๋…๋“ค์„ ๊ณต๋ถ€ํ•˜๋Š”๋ฐ์— ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.๋˜ํ•œ, ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ํฐ ํž˜์ด ๋˜์ฃผ์ฃ !! ๋‘๋ฒˆ์งธ๋Š” ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์งœ์„œ ํ•ด๋ณด๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.์ œ๊ฐ€ ์•ž์œผ๋กœ ๋ฌธ์ œํ’€์ด์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•  ๋ฐฉ๋ฒ•์ด๊ธฐ๋„ ํ•˜๊ตฌ์š”ใ…Žgate๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ˆ์‹œ..

3. cobolt → goblin

id : coboltpw : hacking exposed ์ด๋ฒˆ ๋ฌธ์ œ๋Š” argv๋Œ€์‹  stdin์œผ๋กœ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. argv๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์—†์œผ๋‹ˆ, 'ํ™˜๊ฒฝ๋ณ€์ˆ˜'๋ฅผ ์ด์šฉํ•ด ๋ณด๋„๋ก ํ• ๊ฒŒ์š”. [cobolt@localhost cobolt]$ cat goblin.c /* The Lord of the BOF : The Fellowship of the BOF - goblin - small buffer + stdin */ int main() { char buffer[16]; gets(buffer); printf("%s\n", buffer); } ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ž€?ํ™˜๊ฒฝ๋ณ€์ˆ˜๋Š” OS๊ฐ€ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ์‹œ์ผœ ๋†“๊ณ  ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ€์ ธ๋‹ค ์“ฐ๋Š” ์˜์—ญ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๊ณ ์ •์ ์ด๋ผ, ์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด๋†“๊ณ  ์ฃผ์†Œ๋ฅผ ์ฐพ์•„ re..