์ผ๋‹จ ํ•˜๊ณ  ๋ณด๋Š” ์‚ฌ๋žŒ

๋‚˜์ค‘๋ณด๋‹จ ์ง€๊ธˆ์— ์ง‘์ค‘ํ•˜๋˜, ์ง€๊ธˆ๋ณด๋‹จ ๋‚˜์ค‘์— ์™„๋ฒฝํ•ด์ง€์ž๐Ÿ’ช๐Ÿป

๐Ÿ•ธ๏ธ Web์— ๋Œ€ํ•ด

์›น๊ณผ ์›น ํ•ดํ‚น

JanginTech 2024. 8. 11. 19:55

 

1. ์›น์ด๋ž€?

  • World Wide Web
  • ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ „ ์„ธ๊ณ„์ ์ธ ์ •๋ณด ๊ณต๊ฐ„
  • HTTP ํ”„๋กœํ† ์ฝœ, ํ•˜์ดํผํ…์ŠคํŠธ, HTML ํ˜•์‹ ๋“ฑ์„ ํ†ตํ•ด ๊ทธ๋ฆผ๊ณผ ๋ฌธ์ž๋ฅผ ๊ตํ™˜ํ•˜๋Š” ์ „์†ก ๋ฐฉ์‹์ด๋ผ๊ณ  ํ•˜๊ธฐ๋„ ํ•จ

 

๐Ÿค” HTTP ํ”„๋กœํ† ์ฝœ?

  • Hyper Text Transfer Protocol
  • ์›น ์„œ๋ฒ„์™€ ์‚ฌ์šฉ์ž ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์ด ๋ฌธ์„œ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ†ต์‹  ๊ทœ์•ฝ
  • HTTP(80) + ๋ณด์•ˆ = HTTPS(433)
  • www์ƒ์—์„œ ์ฃผ๋กœ HTML ๋ฌธ์„œ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” 7 ๊ณ„์ธต์˜ ํ”„๋กœํ† ์ฝœ
  • HTTP: RFC 2616
  • FTP: RFC 959

web server: ์‚ฌ์šฉ์ž์—๊ฒŒ ์›น ํŽ˜์ด์ง€/์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด

 

 

๐Ÿค” ํ”„๋ก์‹œ(Proxy)

  • ํ”„๋ก์‹œ ์„œ๋ฒ„: ์‚ฌ์šฉ์ž์™€ ์ธํ„ฐ๋„ท ์‚ฌ์ด์˜ ์ค‘๊ฐ„ ์—ญํ• ์„ ํ•˜๋Š” ์„œ๋ฒ„
  • ์ง€๋‚˜๊ฐ€๋Š” ํŒจํ‚ท์„ ๋‹ค ๋ณผ ์ˆ˜ ์žˆ์Œ

 

 

 

 

 

2. ์›นํ•ดํ‚น์ด๋ž€?

๊ทผ๋ณธ์ ์ธ ์ทจ์•ฝ์  ๋ฐ ๋ฐœ์ƒ ์›๋ฆฌ๋Š” Buffer Overflow(BOF, ์ œํ•œ ํฌ๊ธฐ ์ด์ƒ์ผ ๋•Œ ๋ฐœ์ƒ)ํ•œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ, ๊ถŒํ•œ ๊ฒ€์‚ฌ๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.

์ž…๋ ฅ๊ฐ’ ๋ณดํ˜ธ/๊ฒ€์ฆ์ด ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์œผ๋ฉด, ๋‹ค์–‘ํ•œ ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

2.1. ์›น ์‹ค์Šต 1: extract()

๋ฌธ์ œ

 

extract() ๋ฉ”์„œ๋“œ ํ•˜๋‚˜ ๋•Œ๋ฌธ์— ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•ด์ง„ ์ƒํ™ฉ์ด๋‹ค.

id ๋ณ€์ˆ˜ ๊ฐ’์„ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์กฐ์ž‘๋‹นํ•  ์œ„ํ—˜์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

id ์™ธ์˜ ๋ณ€์ˆ˜๋“ค ๋˜ํ•œ ๋‹ค ์กฐ์ž‘๋‹นํ•  ์น˜๋ช…์  ์œ„ํ—˜์„ฑ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.

 

 

ํ•ด๊ฒฐ

 

id์— webno1_php ํŒจํ„ด์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ slove()๊ฐ€ ์‹คํ–‰๋˜๋ฏ€๋กœ, ์ •๋‹ต์€ /index.php?id="test/webno1_php/"

 

์œ„ ๋ฌธ์ œ์ ์˜ ํ•ด๊ฒฐ๋ฐฉ์•ˆ ์ค‘ ํ•˜๋‚˜๋Š”, extract()๋ฅผ ๋ณ€์ˆ˜ ์„ ์–ธ ์ด์ „์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ˜น์€, ์„ ์–ธ ํ›„ ์‚ฌ์šฉ ์‹œ, ๋ฎ์–ด์“ฐ๊ธฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

 

 

2.2. ์›น ์‹ค์Šต 2: ๋ฌธ์ž์—ด ์กฐ์ž‘

<?php
    include "./config.php";
    if (isset($_GET['search'])) {
        $searchValue = $_GET['search'];

        $pattern = "/admin/i";
        $replacement = "";
    
        $newSearchValue = preg_replace($pattern, $replacement, $searchValue);
    
        if($newSearchValue === "admin") {
            solve();
        }
    }
    highlight_file(__FILE__);
?>

์บก์ณ๋ณธ์ด ์‚ฌ๋ผ์ ธ์„œ ์ฝ”๋“œ๋กœ ๋Œ€์ฒด ใ… ใ… 

 

์ •๋‹ต

index.php?search=admadminmin