728x90 ๋ฐ์ํ ์ ์ฒด ๊ธ284 web 2์ผ์ฐจ LFI1. Local File Include Attack ์ ์ค์๋ง2. Include, require ๋ฑ์ ํจ์๊ฐ ์ฃผ ํ๊ฒ3. ์ํ๋ ์ฝ๋๋ฅผ ์คํํ ์ ์์ผ๋ ํฌ๋ฆฌํฐ์ปฌ ๋ฉ์ธํ์ด์ง – ๋ก๊ทธ์ธ- ๊ธ์ฐ๊ธฐ- ํจ์ค์๋ ํ์ผ- ์ ๋ก๋ํ ํ์ผ ๊ณผ์ฐ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ๋ฃ์ง?1. /proc/self/environ2. /proc/loadavg/proc/$PID/environ3. ์น์๋ฒ ๋ก๊ทธ4. ์๋ฌ ๋ก๊ทธ----------------------------- ๋ฒ์ ์ด ์ฌ๋ผ๊ฐ๋ฉด์ ์์ ๊ณต๊ฒฉ์ ํ๋ค์ด์ง5. ํ์ผ ์ ๋ก๋ -> ๋ง์ด ์ฌ์ฉ๋จ ์ฝ๋๋ง๊ณ wrapper1. fopen, copy, file๋ฑ์ ํจ์์ ์ฐ์2. file://, http://, ftp:// ๋ฑ๋ฑ3. ๋๋ถ๋ถ์ ๋ํผ๊ฐ allow_url_include ๊ฐ o.. Security Study/Web 2015. 10. 23. windows And linux ip์ฐจ๋จ ์๋์ฐ ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ฐฉํ๋ฒฝ์ ์ฐ๋๋ฐ... ์ฌ๊ธฐ์ ๊ณ ๊ธ ์ค์ ์ ํด๋ฆญํ ๋ค์์ ๋๋ฅด๊ณ ํฌํธ์ ํ๋กํ ์ฝ ์ฐจ๋จ ์์ดํผ๋ฅผ ์ค์ ํ๋ค. ๋ฆฌ๋ ์ค์ ๊ฒฝ์ฐ sudo iptables -A INPUT -s ์ฐจ๋จํ๊ณ ์ถ์ ์์ดํผ -j DROP iptables -L -> ๋ฆฌ์คํธ ๋ณด๋ ๋ช ๋ น์ด Security Study/Server(Linux) 2015. 10. 22. integer overflow #include int main(){ int a,b; printf("a + b = 0 (a,b != 0)\n"); printf("A = "); scanf("%d",&a); printf("B = "); scanf("%d",&b); if(a + b == 0) { printf("Congratulation!\n"); } else if(a == 0 || b ==0) { printf("Fuck up!\n"); } else { printf("Fuck you!\n"); } return 0;} integer overflow๋?๊ธฐ๋ณธ ์ ์ํ์์ ์ ์ฅํ ์ ์๋ ๊ธฐ๋ณธ์น์ ๊ฐ๋ณด๋ค ๋ ํฐ ์๋ฅผ ์ ๋ ฅํ์ฌ ์๊ธฐ์น ์์ ํ๋์ ์ทจํ๊ฒ ํ๋ ๊ฒ Security Study/System 2015. 10. 22. webhacking web hacking - 1) ์๋ฒ์ ์๋ ๊ฐ์ธ์ ๋ณด ํ์ทจ 2) ์์คํ ํดํน์ ์ํ ๋ฐํ XSS(ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํธ) - ๊ณต๊ฒฉ์๊ฐ ์๋ฒ๋ฅผ ํตํด ์ฌ์ฉ์๋ฅผ ๊ณต๊ฒฉ ๋ค๋ฅธ ์ฌ์ฉ์์ฟ ํค๋ ์ธ์ ์์ด๋๋ฅผ ํ์ทจํด์ ์ฌ์ฉ์์ ๊ถํ์ ์ต๋sotored - ์ ์ฅ๋์๋ ๊ฒ (์ด๋ฒคํธ ํธ๋ค๋ฌ) – ์ด์ฉ ex) bob"onmouseover="alert(1)" ๋ฐ์ ๋์ค์ด ํ์คํฌ๋ฆฝํธ‘”a=’ ‘onerror=alert(1);> reflected – ์ฟ ๊ธฐ, ์ฌ์ฉ์์ ๊ฐ์ ์๋ฒ์ ๋ ๋ ธ์ ๋ ๋ฆฌํด๊ฐ์ผ๋ก ‘);alert(‘1%0aalert(1);/* -> %0a ๊ฐํ๋ฌธ์ ์ด์ฉ ๋ค์ด๋ก๋ ์ทจ์ฝ์ ../../target -> ์์ ๋๋ ํ ๋ฆฌ๋ก ์ฌ๋ผ๊ฐ../target%00 -> NULL.\./targetindex.phpinext.pp Security Study/Web 2015. 10. 16. LOB troll -> vampire ๋จผ์ ์์ค๋ฅผ ๋ณด๋ฉด ์์ด๋ ๋ค๋ฅธ ์ ์ ๋ง์ด ๋ณผ์ ์๋ค. ๋ฌด์๋ณด๋ค ์ฃผ์๊ฐ์ด 0xbfffxxxx ๊ฐ ๋ ์ ์๋ ์ ์ด๋ค.์ด๊ฒ ๋ฌด์ ์ด ๋ฌธ์ ์ผ๊น? ์ง๊ธ ๊น์ง ํ์ด์จ ๋ฌธ์ ์ ์ฃผ์๊ฐ๋ค์ ํ์ธ ํ๋ฉด ์ ๋ถ๋ค bfff์ธ๊ฒ์ ํ์ธ ํ ์ ์๋ค. ๋ ํ๊ฐ์ง ๋ฌ๋ผ์ง์ ์ ๊ธธ์ด ๊ฒ์ฌ๋ฅผ ํ์ง ์๋ ๋ค๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ด์ฉํ์ฌ ์ฐํํ์ฌ ๋ณด์ gdb ๋ฅผ ๋ค์ด๊ฐ์ ๊ณต๊ฒฉ์ ํ๋๋ฐ ์ผ๋จ 100000์ด๋ผ๋ ํฐ์๋ฅผ ๋์ ํด์ฌ ์ฃผ์๊ฐ์ ํ์ธํด ๋ณผ๊ฒ์ด๋ค.์ด๋ ๊ฒ ๋ฐ๋๊ฒ์ ๋ณผ์ ์๋ค. ๋ํ bffe๋ผ๋ ๊ฒ๋ ํ์ธํ ์ ์๋ค. ์ด๋ก payload๋ฅผ์์ฑํด๋ณด์\x90*44(๋ฒํผ์ ๋๋ฏธ) ๊ทธ๋ฆฌ๊ณ ์ฃผ์๊ฐ + ๋ค์ \x90 100000 ๋์ฌ๋ ๋๋ฅผ ์ํ ๊ฐ + ์์ฝ๋ ์์ด ๋ฐ์ด๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. Wargame/CTF(Capture The Flag) 2015. 10. 15. LOB orge -> troll ๋จผ์ ์์ค๋ฅผ ํ์ธํด๋ณด์!์ธ์๋ 2๊ฐ๋ฅผ ๋์์ ์๊ณ argv[1]์ 48์ ๋ํ memset์ผ๋ก ์ด๊ธฐํ๊ฐ ๋๋ค. ๊ทธ๋ผ ์ผ๋จ ์๊ฐ์ ํด๋ณด๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ผ์ด๋ฆ ๋๋ฌธ์ argv[0]์ ๋จน๊ณ ๊ฐ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์๊ฐ์ ํด์ผํ๋๋ฐ;;; ํ์ผ์ด๋ฆ์ ์ฌ๋ณผ๋ฆญ๋งํฌ๋ฅผ ์ด์ฉํด์ ์์ฝ๋๋ฅผ ๋ฑ๋ก ํ๋ฉด ์ด๋จ๊น? ์ ์๋ 48๋ฐ์ดํธ๋ฅผ ์์ฝ๋๋ฅผ ์ฌ์ฉํ์๋ค. ์ด์ ๋ \x2f ์ฆ / ๊ฐ์์ผ๋ฉด ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ง๋ค์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ ๊ฒ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๊ฑธ๊ณ ๋ํ gdb ๋ฅผ ์ด์ฉํด ๋ค์ด๊ฐ์ ๊ณต๊ฒฉ์ ํ๊ณ ์ฃผ์๊ฐ์ด ๋ค๋ฎ์ธ ๊ฒ์ ํ์ธ ํด๋ณด๊ณ ์ฃผ์๊ฐ์ ์ด์ฉํ์ฌ ๊ณต๊ฒฉ์ ํ๋ค. ๋ฌผ๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ด์ฉํ๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด coreํ์ผ์ด ๋ง๋ค์ด ์ง๋๋ฐ ์ด๋ฅผ ์ด์ฉํ์ฌ ์ง์ง ์ฃผ์๊ฐ์ ๊ตฌํด๋ณผ ๊ป๋ฐ core๋ฅผ gdb ๋ก ํ์ธ ํ๊ณ x/700s $esp๋ฅผ ํ๋ค๋ณด๋ฉด ์ด.. Wargame/CTF(Capture The Flag) 2015. 10. 15. system 24byte shellcode \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80 Security Study/System 2015. 10. 15. Use After Free use after free ๋ผ๋ ์ทจ์ฝ์ ์ ํ๋ก๊ทธ๋จ ๋ฉ๋ชจ๋ฆฌ๋ ํฌ๊ฒ Code/Data/Heap/Stack์ผ๋ก ๋๋ ์ ์๋๋ฐ Code+Data=Binary์์ญ Heap=ํ๋ก๊ทธ๋๋จธ๊ฐ ๋์ ํ ๋น/ํ์/์ ์ด ํ ์ ์๋ ์์ญ Stack=ํจ์ ๊ฐ๋ณ๊ณต๊ฐ(์คํํ๋ ์),์ธ์์ ๋ฌ๋ฑ์ผ๋ก ์ฌ์ฉํ๋ ์์ญ ์ด๋ ๊ฒ ๊ตฌ๋ถํ ์ ์๋ค ์ด ์ค์์ UAF๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ํ ์์ญ์ ์๋ชป ๋ค๋ค์ ๋ ๋ฐ์ํ๋ ์ทจ์ฝ์ ์ด๋ค. ์๋์ ์์ค๋ฅผ ๋ณด์ #include #include typedef struct UAF{int number;}uaf; int main(void){uaf *one;uaf *two; one = malloc(100);printf("one->number:%d\n",one->number); one->number=12345;printf(.. Security Study/System 2015. 10. 12. pwnable.kr shellshock ๋ณดํธ๋์ด ์๋ ๊ธ ์ ๋๋ค. 2015. 10. 11. memory ์์ญ memory code ์์ญ- ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ memory ์์ญ์ผ๋ก hex file or bin fire memory- program ๋ช ๋ น์ด ์์นํ๋ ๊ณณ์ผ๋ก ๊ธฐ๊ณ์ด๋ก ์ ์ด๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด๋ค. data ์์ญ- ์ ์ญ๋ณ์, ์ ์ ๋ณ์, ๋ฐฐ์ด, ๊ตฌ์กฐ์ฒด ๋ฑ์ด ์ ์ฅ๋์ด ์๋ค. * ์ด๊ธฐํ ๋ ๋ฐ์ดํฐ๋ data ์์ญ์ ์ ์ฅ๋๊ณ ์ด๊ธฐํ ๋์ง ์์ ๋ฐ์ดํฐ๋ bss(block stated symbol)์ ์ ์ฅ๋๋ค. - ํ๋ก๊ทธ๋จ์ด ์คํ ๋ ๋ ์์ฑ๋์ด ํ๋ก๊ทธ๋จ ์ข ๋ฃ ์ ๊น์ง ์กด์ฌํ๋ค. - ํจ์ ๋ด๋ถ์ ์ ์ธ๋ static ๋ณ์๋ ํ๋ก๊ทธ๋จ์ด ์คํ ๋ ๋ ๊ณต๊ฐ๋ง ํ ๋น๋๊ณ , ํจ์๊ฐ ์คํ ๋ ๋ ์ด๊ธฐํ ๋๋ค. heap ์์ญ- ํ์์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น ํ๊ณ ์ ํ ๋ ์์นํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก ๋์ ๋ฐ์ดํฐ ์์ญ์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ๋ฉ๋ชจ.. Security Study/System 2015. 10. 7. ๋ค๋ค!!! ๋ค๋ค ์ฆ๊ฑฐ์ด ๋ช ์ ๋์๊ณ ์กฐ์ฌํ ๊ณ ํฅ๋ค๋ ์ค์ธ์!!!โ My Story 2015. 9. 25. toolhelp #include #include #include#include#include int _tmain(int argc, _TCHAR* argv[]){ /* */HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 process;process.dwSize = sizeof(PROCESSENTRY32); _tprintf(_T("%32s %8s %8s %8s\n"), L"[NAME]", L"[PID]", L"[THREAD]", L"[PPID]"); while (Process32Next(hProcess, &process)){_tprintf(_T("%32s %8d %8d %8d\n"),process.szExeFile, // pr.. Language 2015. 9. 24. ์ด์ 1 ยทยทยท 16 17 18 19 20 21 22 ยทยทยท 24 ๋ค์ 728x90 ๋ฐ์ํ