๐โWeb_Study/๐ฅโpentestgym
SQL ์ธ์ ์
๊ธฐ์ด ๐กํด๋น ๋ด์ฉ์ pentestqym์ ๋ด์ฉ์ ๋ค์ ํ ๋ฒ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ฉฐ, ๋ชจ๋ ์ ์๊ถ์ ํด๋น ์ฌ์ดํธ์๊ฒ ์์ต๋๋ค. ์ด๋ฒ์๋ SQL Injection์ด ๋ญ์ง์ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง ์์๋ด
์๋ค. SQL Injection? SQL Injection dystopia050119.tistory.com Error-base SQLi WriteUp Error-based SQLi์ ์ง์ ์ค์ตํด ๋ด
์๋ค. ๋ณธ ํ๋ จ์ ์๋จ์ ์๋ ์ค์ต ํ๊ฒฝ์ ์์ฑํ์ฌ ์ค๋ฅ ๊ธฐ๋ฐ SQLi์ ์ง์ ํ
์คํธํ๊ณ ๋ฏธ์
์ ํด๊ฒฐํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ๋จผ์ ์ฐธ๊ณ ํ๋ฉด ์ข์ ์๋ฃ์
๋๋ค. Error ๊ธฐ๋ฐ SQL ์ธ์ ์
๐กํด๋น ๋ด์ฉ์ pentestqym์ ๋ด์ฉ์ ๋ค์ ํ ๋ฒ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ฉฐ, ๋ชจ๋ ์ ์๊ถ์ ํด๋น ์ฌ์ดํธ์๊ฒ ์์ต๋๋ค. ์ค๋ฅ๊ธฐ๋ฐ SQL..
๐โWeb_Study/๐ฅโpentestgym
๐กํด๋น ๋ด์ฉ์ pentestqym์ ๋ด์ฉ์ ๋ค์ ํ ๋ฒ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ฉฐ, ๋ชจ๋ ์ ์๊ถ์ ํด๋น ์ฌ์ดํธ์๊ฒ ์์ต๋๋ค. ์ค๋ฅ๊ธฐ๋ฐ SQLi์ ๋ํ์ฌ ๋ฐฐ์๋ด
์๋ค. Error based SQLi ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ ๋ณด๋ฅผ ํ๋ํ๋ SQL Injection ๊ธฐ๋ฒ ์๋ชป๋ SQL ๋ฌธ๋ฒ์ด๋ ์๋ฃํ ๋ถ์ผ์น ๋ฑ์ผ๋ก ์ธํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฐ์์ํค๋ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ด์ฉํ์ฌ ๊ณต๊ฒฉ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ์ ์ ๋ณด๋ฅผ ํ์
ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ์ธ ์ ๋ณด์ ๊ฐ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ํ์ทจํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ณต๊ฒฉ์ App์์ DB ์ค๋ฅ๋ฅผ ํ์ํ๋ ๊ฒฝ์ฐ์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. Error-based SQLi ์๋ฆฌ DB๋ก ์ ๋ฌ๋๋ SQL ์ฟผ๋ฆฌ์ ๋ฌธ๋ฒ์ ์ค๋ฅ๋ฅผ ํ์ฉํ๋ ๊ธฐ๋ฒ์ผ๋ก, DB๊ฐ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ฐํํ๊ฑฐ๋..
๐โWeb_Study/๐ฅโpentestgym
๐กํด๋น ๋ด์ฉ์ pentestqym์ ๋ด์ฉ์ ๋ค์ ํ ๋ฒ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ฉฐ, ๋ชจ๋ ์ ์๊ถ์ ํด๋น ์ฌ์ดํธ์๊ฒ ์์ต๋๋ค. ์ด๋ฒ์๋ SQL Injection์ด ๋ญ์ง์ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง ์์๋ด
์๋ค. SQL Injection? SQL Injection์ ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉ๋๋ SQL(Structured Query Language) ์ฟผ๋ฆฌ๋ฅผ ์
์์ ์ผ๋ก ์กฐ์ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ณต๊ฒฉํ๋ ์ทจ์ฝ์ ์
๋๋ค. ์ฑ๊ณต์ ์ธ ๊ณต๊ฒฉ์ผ๋ก ์ธํด ๊ณต๊ฒฉ์๋ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ๊ฐ์ธ ์ ๋ณด๋ฅผ ํ์ทจํ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์์ํฌ ์ ์์ต๋๋ค. ์ด๋ ์น ๋ณด์์ ๋งค์ฐ ์ฌ๊ฐํ ์ํ์ ์ด๋ํ ์ ์์ต๋๋ค. SQL Injection action? ์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ App์ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ CRUD๊ฐ ์ด๋ฃจ์ด์ง๋๋ค. ํนํ DB์ ์ํธ์์ฉํ์ฌ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ..
๐โWeb_Study/๐ฅโpentestgym
๐กํด๋น ๋ด์ฉ์ pentestqym์ ๋ด์ฉ์ ๋ค์ ํ ๋ฒ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ฉฐ, ๋ชจ๋ ์ ์๊ถ์ ํด๋น ์ฌ์ดํธ์๊ฒ ์์ต๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์
์ด ๋์ ์น ์ปจํ
์ธ ๋ฅผ ์๋น์คํ๊ธฐ ์ํด ์๋ฒ์ธก์์ ์ฌ์ฉ๋ ์ ์๋ ์น ์๋ฒ, ์๋ฒ์ธก ์คํฌ๋ฆฝํธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ์ ๊ธฐ์ ๋ค์ ๋ํด ์์๋ด
๋๋ค. ๊ฐ์ ์๋ฒ ์ธก(Server-Side) ๊ธฐ์ ์ด๋ ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ์์ ํด๋ผ์ด์ธํธ, ์ผ๋ฐ์ ์ผ๋ก๋ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๋ ๊ธฐ์ ์ ๋งํฉ๋๋ค ์๋ฒ์ธก ๊ธฐ์ ์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌํ์ ์ํด ์ฌ์ฉ๋๋ ์๋ฒ์ฌ์ด๋ ์คํฌ๋ฆฝํ
์ธ์ด(Ex. PHP), ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
(Ex. MySQL), ์น ์๋ฒ ์ํํธ์จ์ด(Ex. Apache) ๋ฑ์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ์น ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ญํ ์ ์ํํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ง์ถคํ ..
๐โWeb_Study/๐ฅโpentestgym
๐กํด๋น ๋ด์ฉ์ pentestqym์ ๋ด์ฉ์ ๋ค์ ํ ๋ฒ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ฉฐ, ๋ชจ๋ ์ ์๊ถ์ ํด๋น ์ฌ์ดํธ์๊ฒ ์์ต๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์
์ด ์๋น์ค๋ฅผ ํ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ์ธก์์ ์ฌ์ฉ๋ ์ ์๋ HTML, CSS, ์๋ฐ์คํฌ๋ฆฝํธ, ๋ฌธ์๊ฐ์ฒด๋ชจ๋ธ(DOM) ๋ฑ์ ๋ค์ํ ๊ธฐ์ ๋ค์ ๋ํด ์์๋ด
๋๋ค. ๊ฐ์ ํด๋ผ์ด์ธํธ์ธก(Client-Side) ๊ธฐ์ ์ด๋ ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ์์ ํด๋ผ์ด์ธํธ, ์ผ๋ฐ์ ์ผ๋ก๋ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๋ ๊ธฐ์ ์ ๋งํฉ๋๋ค ํด๋ผ ์ธก์ ๊ธฐ์ ๋ก์จ๋ ๋ฌด์ง ๋ง์ง๋ง ๊ฐ๋จํ๊ฒ ์๋ ๋ชฉ์ฐจ๋ก๋ง ์์๋ด
์๋ค. HTML CSS ์๋ฐ์คํฌ๋ฆฝํธ DOM Ajax JSON SOP CORS HTML, CSS, JavaScript ์น ํด๋ผ ์ธก์ ๊ธฐ๋ณธ์ผ๋ก์จ, ์ด๊ฑด ํด๋น ๋งํฌ๋ฅผ ํตํด ํ์ต์ ํ์๊ธธ ๋ฐ๋๋๋ค ์ ๋ฆฌ๋ ์ ๋ฆฌ์ด๊ธดํ๋ฐ.. ์ง์ ์น..
๐โWeb_Study/๐ฅโpentestgym
๐กํด๋น ๋ด์ฉ์ pentestqym์ ๋ด์ฉ์ ๋ค์ ํ ๋ฒ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ฉฐ, ๋ชจ๋ ์ ์๊ถ์ ํด๋น ์ฌ์ดํธ์๊ฒ ์์ต๋๋ค. ์ธ์ฝ๋ฉ(Encoding)์ด๋? ์ธ์ฝ๋ฉ : ์ด๋ค ํ ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ํ์์ผ๋ก ๋ณํํ๋ ๊ธฐ์ ์ด๋ ๊ณผ์ ๋์ฝ๋ฉ : ์ธ์ฝ๋ฉ๋ ํ์์ ๋ค์ ์๋์ ํ์์ผ๋ก ๋ณํํ๋ ๊ธฐ์ ์ด๋ ๊ณผ์ ์น(App)์ ์ ์ธ์ฝ๋ฉ์ ํ ๊น? ์ด๊ธฐ ์น ํ๊ฒฝ์์๋ ASCII ๊ธฐ๋ฐ์ ๋ฌธ์ ํ๊ธฐ์ ๋ํ ์๊ตฌ์ฌํญ์ด ์ฃผ๋ก ์์์ง๋ง, ์ธํฐ๋ท์ ๊ธ๋ก๋ฒ ํ์ฅ๊ณผ ๋ค๊ตญ์ด ํ๊ธฐ์ ํ์์ฑ์ด ๋๋๋๋ฉด์ ๋ค์ํ ์ธ์ฝ๋ฉ ๊ธฐ๋ฒ์ด ๊ฐ๋ฐ๋์์ต๋๋ค. ์น์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ์ธ์ฝ๋ฉ ๊ธฐ๋ฒ์ ์ค์ํ ๊ฐ๋
์ผ๋ก ์์๋์ด์ผ ํฉ๋๋ค. ์ธ์ฝ๋ฉ ์ข
๋ฅ์ ์ ํ URL ์ธ์ฝ๋ฉ URL ์ธ์ฝ๋ฉ์ URL์์ ๋ฌธ์๋ฅผ ํํํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ผ๋ก, % ๋ฌธ์ ๋ค์ 16์ง์ ASCII ๋ฌธ์๋ฅผ ๋ถํ ..
๐โWeb_Study/๐ฅโpentestgym
๐กํด๋น ๋ด์ฉ์ pentestqym์ ๋ด์ฉ์ ๋ค์ ํ ๋ฒ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ฉฐ, ๋ชจ๋ ์ ์๊ถ์ ํด๋น ์ฌ์ดํธ์๊ฒ ์์ต๋๋ค. ์ฟ ํค(Cookie)๋? ์ฟ ํค๋ ์น ์๋ฒ๊ฐ ์์ฑํ์ฌ ์น ๋ธ๋ผ์ฐ์ ๋ก ์ ์กํ๋ ์์ ์ ๋ณด ํ์ผ์
๋๋ค. ์น ๋ธ๋ผ์ฐ์ ๋ ์ฟ ํค๋ฅผ ์ผ์ ๊ธฐ๊ฐ ๋์ ์ ์ฅํ๊ฑฐ๋ ์ฌ์ฉ์ ์ธ์
๋์ ์ ์งํฉ๋๋ค. ์ฟ ํค๋ ์น ์ฌ์ดํธ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ๊ฐ์ธํ๋ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ฟ ํค๋ ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ๋ฐฉ๋ฌธํ ๋ ํด๋ผ์ด์ธํธ์ธก์ ์ ์ฅ๋๋ key=value์์ ๋ฌธ์์ด๋ก ๊ตฌ์ฑ๋ ์์ ์์ ํ์ผ ์๋ฅผ ๋ค์ด, ์ ์์๊ฑฐ๋ ์ฌ์ดํธ์์๋ ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์ ์ฅ๋ฐ๊ตฌ๋ ์ ๋ณด๋ฅผ ์ ์งํฉ๋๋ค. ์ฟ ํค๋ ์ธ์ฆ์ ํ์ํ ๋ณด์ ์ฟ ํค์ ๊ฐ์ด ๋ณด์์ ์ํด ์ฌ์ฉ๋๊ธฐ๋ ํฉ๋๋ค. ์ฟ ํค๋ HTTP ํ๋กํ ์ฝ์ ๋น์ํ์ฑ ํน์ง์ผ๋ก ์ธํด ์ฌ์ฉ์์ ์ฐ์..
๐โWeb_Study/๐ฅโpentestgym
๐กํด๋น ๋ด์ฉ์ pentestqym์ ๋ด์ฉ์ ๋ค์ ํ ๋ฒ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ฉฐ, ๋ชจ๋ ์ ์๊ถ์ ํด๋น ์ฌ์ดํธ์๊ฒ ์์ต๋๋ค. ์น(Web)์ด๋? ์น์ World Wide Web์ ์ฝ์๋ก, ์ธํฐ๋ท, ํ์ดํผ๋งํฌ ๋ฑ์ ํตํด ์ ๋ณด๋ฅผ ๊ณต์ ํ๊ณ ์ ๊ทผํ๋ ๋ฐฉ์ ์น์ ์น ํ์ด์ง, ์น ์ฌ์ดํธ, ์น ์ ํ๋ฆฌ์ผ์ด์
๋ฑ ๋ค์ํ ํํ์ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ํ ํด๋น html ๋ฑ์ ํ์ผ์ ํตํด ํ
์คํธ, ์ด๋ฏธ์ง, ๋งํฌ, ๋์์ ๋ฑ ๋ค์ํ ํํ์ ์ฝํ
์ธ ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ์น ํ์ด์ง๋ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ฌ์ฉ์์๊ฒ ํ์ํจ ์น ๋ฆฌ์์ค๋? ์น ๋ฆฌ์์ค๋ ์น์์ ์ฌ์ฉ๋๋ ๋ชจ๋ ์ข
๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธ ์น ๋ฆฌ์์ค๋ ์น ํ์ด์ง, ์ด๋ฏธ์ง, ๋์์, ์คํ์ผ์ํธ, ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ, ์น ์ ํ๋ฆฌ์ผ์ด์
๋ฑ ๋ค์ํ ํํ์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ฉฐ, ์ด๋ฌํ ๋ฆฌ์์ค๋ค์ ์น์ ํต..
๐โWeb_Study/๐ โLord_of_SQLInjection
Write Up ์ ๋ฌธ์ ๋ค์ query๋ฌธ๊ณผ ํด๋น ์์ค์ฝ๋๋ฅผ ์๋ ค์ค๋๋ค. ์ด๋ฅผ ์ด์ฉํ์ฌ solve() ํจ์๋ฅผ ์คํ์ํค๋ฉด ๋ฌธ์ ๊ฐ ํ๋ฆฌ๋ ํ์์
๋๋ค. https://los.rubiya.kr/gate.php los.rubiya.kr ์์ค ์ฝ๋ ๋ถ์ #Query_1 query execute if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); $query = "select id from prob_orc where id='admin' and pw='{$_GET[pw]}'"; echo "query : {$query} "; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'..
๐โWeb_Study/๐ โLord_of_SQLInjection
Write Up ์ ๋ฌธ์ ๋ค์ query๋ฌธ๊ณผ ํด๋น ์์ค์ฝ๋๋ฅผ ์๋ ค์ค๋๋ค. ์ด๋ฅผ ์ด์ฉํ์ฌ solve() ํจ์๋ฅผ ์คํ์ํค๋ฉด ๋ฌธ์ ๊ฐ ํ๋ฆฌ๋ ํ์์
๋๋ค. https://los.rubiya.kr/gate.php los.rubiya.kr ์์ค ์ฝ๋ ๋ถ์ ... //change filtering pattern if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); //query import $query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; ... ํฌ๊ฒ ๋ฌ๋ผ์ง ๋ถ๋ถ์ด์ ํต์ฌ์ธ ๋ถ๋ถ์
๋๋ค. ' " ` ์ ๋ง์๋ฒ๋ฆฌ๊ณ id=guest๋ก ํ์ํ๋, admin์ผ๋ก ์ฐํํด์ผํฉ๋๋ค. ํต์ฌ์ผ๋ก..