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
'๐ธ๏ธ Web์ ๋ํด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Websocket: ๋น๋๊ธฐ ์ด๋ฒคํธ ๋ฃจํ ์์ ๋กญ๊ฒ ์กฐ์ํ๊ธฐ (0) | 2026.01.02 |
|---|---|
| ๐SQL Injection ์ง์ ์ค์ต (0) | 2024.08.11 |