๐ Secure
-
๊ณต๊ฒฉ ๋์ ํ์ , ", document.cookie, DOM Based ๊ณต๊ฒฉ์ ์ฌ์ฉ๋๋ ๊ตฌ๋ฌธ ๊ตฌ๋ฌธ ์ฌ์ด์์ ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ document.write() document.writeln() document.URL Element.innerHTML Stored์์ ์ถ๋ ฅ ํฌ์ง์ ํ์ ์ ์ ์ฒ๋ฆฌ๋ฐฉ์ vs ํ์ ์ฒ๋ฆฌ๋ฐฉ์ (์ฌ์ฉ์) → ์ฌ์ฉ์ ์ ๋ ฅ๊ฐ → html → insert → DATABASE ์ ์ ์ฒ๋ฆฌ : INSERT๊ฐ ๋๊ธฐ ์ ์ HTMLentities ์ธ์ฝ๋ฉ์ ํตํด์ ์คํฌ๋ฆฝํธ ๋ฐฉ์ง ํ์ดํ ๊ฐ์ด ๋ค์ํ root์์ ๋ณผ ์ ์์ ๋ ์ ์ฒ๋ฆฌ๊ฐ ๋ง๋ค ( ex - home์์ ๋ณผ ์ ์๋ ํ์ดํ, board์์ ๋ณผ ์ ์๋ ํ์ดํ) # action.php $content = htmlentities($db_conn->r..
XSS ๊ณต๊ฒฉ ํ๋ก์ธ์ค๊ณต๊ฒฉ ๋์ ํ์ , ", document.cookie, DOM Based ๊ณต๊ฒฉ์ ์ฌ์ฉ๋๋ ๊ตฌ๋ฌธ ๊ตฌ๋ฌธ ์ฌ์ด์์ ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ document.write() document.writeln() document.URL Element.innerHTML Stored์์ ์ถ๋ ฅ ํฌ์ง์ ํ์ ์ ์ ์ฒ๋ฆฌ๋ฐฉ์ vs ํ์ ์ฒ๋ฆฌ๋ฐฉ์ (์ฌ์ฉ์) → ์ฌ์ฉ์ ์ ๋ ฅ๊ฐ → html → insert → DATABASE ์ ์ ์ฒ๋ฆฌ : INSERT๊ฐ ๋๊ธฐ ์ ์ HTMLentities ์ธ์ฝ๋ฉ์ ํตํด์ ์คํฌ๋ฆฝํธ ๋ฐฉ์ง ํ์ดํ ๊ฐ์ด ๋ค์ํ root์์ ๋ณผ ์ ์์ ๋ ์ ์ฒ๋ฆฌ๊ฐ ๋ง๋ค ( ex - home์์ ๋ณผ ์ ์๋ ํ์ดํ, board์์ ๋ณผ ์ ์๋ ํ์ดํ) # action.php $content = htmlentities($db_conn->r..
2022.07.13 -
XSS๋ ๋ฌด์์ธ๊ฐ ? ๋์ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ํด ์ ์์ ์ธ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ๋น์ ์์ ์ธ ํ์๋ฅผ ๊ฐ์ ์ ์ผ๋ก ์ ๋ํ๋ ๊ณต๊ฒฉ ๋์ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ๋์ ์ฒ๋ฆฌ : ์ฌ์ฉ์์ ์ ๋ ฅ ๊ฐ์ ๋ฐ๋ผ์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ ์๋ต์ ์ฃผ๋ ๊ฒ ์ ๋ ฅ๊ฐ/์ธ์ /์๊ฐ ๋ฑ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฌผ์ ์ถ๋ ฅ ๊ฒ์ํ,๊ฒ์,๋ก๊ทธ์ธ ์ ์์ ์ธ ์คํฌ๋ฆฝํธ Server Side Script : PHP, JSP Client Side Script : Java Script ๋น์ ์์ ์ธ ํ์ Java Script ๋ณ์กฐํ์ฌ ๊ณต๊ฒฉ์์ ์น ์ฌ์ดํธ๋ก ์ ๋ ์ฆ XSS๋ ์ฌ์ดํธ ์์ฒด๋ฅผ ๊ณต๊ฒฉํ๋ SQL Injection ๊ฐ์ ๊ณต๊ฒฉ๊ณผ๋ ๋ค๋ฅด๊ฒ ํด๋ผ์ด์ธํธ ์ธก์ ๊ณต๊ฒฉํ๋ ๊ธฐ๋ฒ ์ต๊ทผ XSS๊ฐ ๋จ๊ณ ์๋ ์ด์ ์ค ํ๋๊ฐ ์ ์ ๋ณด์์ด ๊ฐํ๋..
XSS - Cross Site ScriptXSS๋ ๋ฌด์์ธ๊ฐ ? ๋์ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ํด ์ ์์ ์ธ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ๋น์ ์์ ์ธ ํ์๋ฅผ ๊ฐ์ ์ ์ผ๋ก ์ ๋ํ๋ ๊ณต๊ฒฉ ๋์ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ๋์ ์ฒ๋ฆฌ : ์ฌ์ฉ์์ ์ ๋ ฅ ๊ฐ์ ๋ฐ๋ผ์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ ์๋ต์ ์ฃผ๋ ๊ฒ ์ ๋ ฅ๊ฐ/์ธ์ /์๊ฐ ๋ฑ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฌผ์ ์ถ๋ ฅ ๊ฒ์ํ,๊ฒ์,๋ก๊ทธ์ธ ์ ์์ ์ธ ์คํฌ๋ฆฝํธ Server Side Script : PHP, JSP Client Side Script : Java Script ๋น์ ์์ ์ธ ํ์ Java Script ๋ณ์กฐํ์ฌ ๊ณต๊ฒฉ์์ ์น ์ฌ์ดํธ๋ก ์ ๋ ์ฆ XSS๋ ์ฌ์ดํธ ์์ฒด๋ฅผ ๊ณต๊ฒฉํ๋ SQL Injection ๊ฐ์ ๊ณต๊ฒฉ๊ณผ๋ ๋ค๋ฅด๊ฒ ํด๋ผ์ด์ธํธ ์ธก์ ๊ณต๊ฒฉํ๋ ๊ธฐ๋ฒ ์ต๊ทผ XSS๊ฐ ๋จ๊ณ ์๋ ์ด์ ์ค ํ๋๊ฐ ์ ์ ๋ณด์์ด ๊ฐํ๋..
2022.07.12 -
์น ํดํน์ ๋์ํ๋ ๋ฐฉ๋ฒ 1. ๋ฌผ๋ฆฌ์ ์ธ ์ฅ๋น๋ ์ํํธ์จ์ด๋ฅผ ์ด์ฉํ ๋์๋ฐฉ๋ฒ ๋ฐฉํ๋ฒฝ // WAF(Web Application Firewall) L7 ๋ฐฉํ๋ฒฝ IDS,IPS 2. ์ํ์ด ์ฝ๋ฉ 2-1. Prepared Statement --> SQL Injection ๊ณต๊ฒฉ์ ๋ฐฉ์ดํ๋ ๋ํ์ ์ธ ๊ธฐ๋ฒ 2-2. ์ ๋ ฅ๊ฐ ๊ฒ์ฆ --> 2-3. ์ ๋ ฅ ๊ธธ์ด ์ ํ --> ๊ทผ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ์๋์ง๋ง, ๋งค์ฐ ํจ๊ณผ์ ์ ์ ๋ ฅ๊ฐ ๊ฒ์ฆ ๋ฐฉ๋ฒ 1. ์นํ ' -> \' # Search Logic $search_type = $db_conn->real_escape_string($_POST["search_type"]); $keyword = $db_conn->real_escape_string($_POST["keyword"]); index.php $..
Secure coding์น ํดํน์ ๋์ํ๋ ๋ฐฉ๋ฒ 1. ๋ฌผ๋ฆฌ์ ์ธ ์ฅ๋น๋ ์ํํธ์จ์ด๋ฅผ ์ด์ฉํ ๋์๋ฐฉ๋ฒ ๋ฐฉํ๋ฒฝ // WAF(Web Application Firewall) L7 ๋ฐฉํ๋ฒฝ IDS,IPS 2. ์ํ์ด ์ฝ๋ฉ 2-1. Prepared Statement --> SQL Injection ๊ณต๊ฒฉ์ ๋ฐฉ์ดํ๋ ๋ํ์ ์ธ ๊ธฐ๋ฒ 2-2. ์ ๋ ฅ๊ฐ ๊ฒ์ฆ --> 2-3. ์ ๋ ฅ ๊ธธ์ด ์ ํ --> ๊ทผ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ์๋์ง๋ง, ๋งค์ฐ ํจ๊ณผ์ ์ ์ ๋ ฅ๊ฐ ๊ฒ์ฆ ๋ฐฉ๋ฒ 1. ์นํ ' -> \' # Search Logic $search_type = $db_conn->real_escape_string($_POST["search_type"]); $keyword = $db_conn->real_escape_string($_POST["keyword"]); index.php $..
2022.07.12 -
1. ์๋ฌ ๋ฐ ์ทจ์ฝ์ ์ง๋จ # ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๊ธ์ ์ 7๊ธ์ length((SELECT database()))=7 # ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๊ธ์ ์ฒซ ๊ธ์๊ฐ 'a' ์ธ๊ฐ์? substr((SELECT database()))='a' # ' 80 ascii(substr((SELECT database()),1,1))=112 ascii(substr((SELECT database()),2,1))=101 ascii(substr((SELECT database()),3,1))=110 ascii(substr((SELECT database()),4,1))=116 ascii(substr((SELECT data..
SQL Injection ์ค์ต1. ์๋ฌ ๋ฐ ์ทจ์ฝ์ ์ง๋จ # ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๊ธ์ ์ 7๊ธ์ length((SELECT database()))=7 # ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๊ธ์ ์ฒซ ๊ธ์๊ฐ 'a' ์ธ๊ฐ์? substr((SELECT database()))='a' # ' 80 ascii(substr((SELECT database()),1,1))=112 ascii(substr((SELECT database()),2,1))=101 ascii(substr((SELECT database()),3,1))=110 ascii(substr((SELECT database()),4,1))=116 ascii(substr((SELECT data..
2022.07.08 -
Code Injection [CreateRemoteThread()] VS CreateThread() DLL ์ธ์ ์ ๊ณต๊ฒฉ์ฒ๋ผ ์ฝ๋๋ฅผ ์ฝ์ ํ๋ ๊ณต๊ฒฉ ๊ธฐ๋ฒ LoadLibrary() ํจ์๋ฅผ ์ฌ์ฉํด์ ํน์ ํจ์๋ฅผ ํธ์ถํ๊ณ ๊ฐ์ ๋ก ๋์์ํค๋ ํ์ ---> GetProcAddresS() ๋ฐ๋์ ๊ฐ์ด ์ฌ์ฉ DOWRD WINAPI ThreadProc(LPVOID IParam) { MessageBoxA(NULL, "www.reversecore.com","hello world", MB_OK); return 0; } DLL Injection ๋ณด๋ค Code Injection ๊ณต๊ฒฉ์ ์ฅ์ 1. ๋ฉ๋ชจ๋ฆฌ ๋ถํ๊ฐ ์ ๋ค 2. ํ์ ์ ์ฐพ๊ธฐ๊ฐ ์ด๋ ต๋ค - DLL Injection์ ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ์ ํ์ ์ ๋จ๊ธฐ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ฐพ์ ์ ์๋ค..
CODE InjectionCode Injection [CreateRemoteThread()] VS CreateThread() DLL ์ธ์ ์ ๊ณต๊ฒฉ์ฒ๋ผ ์ฝ๋๋ฅผ ์ฝ์ ํ๋ ๊ณต๊ฒฉ ๊ธฐ๋ฒ LoadLibrary() ํจ์๋ฅผ ์ฌ์ฉํด์ ํน์ ํจ์๋ฅผ ํธ์ถํ๊ณ ๊ฐ์ ๋ก ๋์์ํค๋ ํ์ ---> GetProcAddresS() ๋ฐ๋์ ๊ฐ์ด ์ฌ์ฉ DOWRD WINAPI ThreadProc(LPVOID IParam) { MessageBoxA(NULL, "www.reversecore.com","hello world", MB_OK); return 0; } DLL Injection ๋ณด๋ค Code Injection ๊ณต๊ฒฉ์ ์ฅ์ 1. ๋ฉ๋ชจ๋ฆฌ ๋ถํ๊ฐ ์ ๋ค 2. ํ์ ์ ์ฐพ๊ธฐ๊ฐ ์ด๋ ต๋ค - DLL Injection์ ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ์ ํ์ ์ ๋จ๊ธฐ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ฐพ์ ์ ์๋ค..
2022.07.07 -
// index.php ํ์ ์ ์ฉ ํ์ด์ง ์ ๋๋ค. ๋ ๋ฐ๊ฐ์ต๋๋ค. # login.php ๋ก๊ทธ์ธ ํ์ด์ง์ ๋๋ค. ID : PW : # loginAction.php
SQL Injection ์ธ์ฆ ์ฐํ// index.php ํ์ ์ ์ฉ ํ์ด์ง ์ ๋๋ค. ๋ ๋ฐ๊ฐ์ต๋๋ค. # login.php ๋ก๊ทธ์ธ ํ์ด์ง์ ๋๋ค. ID : PW : # loginAction.php
2022.07.07