본문 바로가기

분류 전체보기

(32)
변수 이번 포스팅에서는 Java에서의 변수명 규칙, 자료형, 사용자 정의 자료형에 대해서 알아볼 것이다. Java에서의 변수명 규칙은 다음과 같다. 1. 변수명의 길이는 제한이 없고, 공백은 포함할 수 없다. 2. 변수명은 대소문자를 구분한다. 3. 변수명은 숫자로 시작할 수 없다. 4. _ 와 $ 문자 이외의 특수문자는 사용할 수 없다. 5. 자바의 키워드는 변수명으로 사용할 수 없다. [자바 키워드] abstract continue for new switch assert default synchronized package throw boolean do if private this break double implements byte else import public throws case enum transi..
main 메소드 C나 C++ 언어를 사용하는 프로그램은 무조건 main() 함수를 먼저 실행시킨다. 따라서 main() 함수는 C나 C++ 언어로 작성된 프로그램에서 필수적인 요소이다. 마찬가지로 Java 언어를 사용하는 프로그램의 시작도 main()함수이기 때문에 Java 언어로 작성된 프로그램에서의 main() 함수는 필수적이다. 그러므로 이번 포스팅에서는 Java로 프로그램을 만들기 위하여 main 메소드에 대해서 알아볼 것이다. java에서의 main 메소드는 다음과 같다. ******************************************************************************************************* // main 메소드의 원형 public static v..
[FTZ] level 11 문제풀이 힌트를 먼저 봐보자 ! 힌트를 보면, argv[1]의 값을 str에 복사해준 후 출력을 해 주는데, 복사해주는 부분이 취약하다는 것을 알 수 있다. 왜 취약할까 ?? strcpy 함수는 문자열을 복사하는 함수로, 복사하는 버퍼(argv[1])의 크기를 검증하지 않고 복사한다. 따라서 str의 크기인 256byte를 넘는 데이터를 str에 복사할 수 있게 되고, 이것은 buffer overflow 공격을 가능하게 하여 공격자가 원하는 대로 할 수 있기 때문에 취약하다고 할 수 있는 것이다. 그럼 이제 이 취약한 부분을 이용해 쉘을 얻어보자 ! 먼저, 쉘을 얻어올 수 있는 쉘코드는 다음과 같다. \x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x8..
XSS (Cross-site Scripting) 란? XSS 공격이란? 공격자가 웹 서버에 구현된 웹 애플리케이션의 XSS 취약점을 이용하여 서버 측 또는 URL에 미리 삽입을 해 놓은 악성 스크립트가 애플리케이션에서 브라우저로 전달되는 데이터에 포함되어 개인의 브라우저에서 실행되면서 해킹을 하는 것을 의미한다. XSS 공격 종류 ① 저장 XSS 공격 XSS 취약점이 있는 웹 서버에 악성 스크립트를 영구적으로 저장해놓은 방법으로, 웹 사이트의 게시판, 사용자 프로필 및 코멘트 필드등에 악성 스크립트를 삽입해 놓으면, 사용자가 사이트를 방문하여 저장되어 있는 페이지에 정보를 요청할 때, 서버는 악성 스크립트를 사용자에게 전달하여 사용자 브라우저에서 스크립트가 실행되면서 공격한다. ② 반사 XSS 공격 웹 애플리케이션의 지정된 변수를 이용할 때 발생하는 취약점..
[FTZ] level 9 문제풀이 먼저 ls를 해보면! 힌트가 있다!! 힌트를 먼저 봐보자! 힌트를 보니 소스 코드는 /usr/bin 폴더 안에 있는 bof의 소스코드이고 buf2에 go라는 문자열이 있다면 쉘을 얻어올 수 있으니 buf2에 go를 집어넣으면 된다라는 것을 알 수 있었다. 그렇다면 고것을 어떻게 할까..? 그걸 알아보기 위해 gdb를 이용해보기로 하자! /* gdb란? Linux에서 사용되는 디버깅 툴로 프로그램 내부에서 무슨 일이 일어나고 있는지 보여주거나 프로그램이 잘못 실행되었을 때 무슨 일이 일어나고 있는지 보여준다. ******************level 9를 풀기 전 알아야 할 gdb 명령어************************** - gcc -o a a.c : a.c라는 소스코드를 컴파일 하여 a라는..
함수의 프롤로그와 에필로그 함수의 프롤로그와 에필로그를 알아보기 전에 몇 가지를 짚고 넘어가 보자! 먼저, 스택 프레임이란? 한 함수가 호출되면 스택에는 함수의 매개변수, 호출이 끝난 뒤 돌아갈 주소, 함수에서 선언된 지역변수 등이 저장되는데, 그 영역을 그 함수의 스택 프레임이라 한다. 이 스택 프레임들은 함수가 종료되면 스택에서 제거되고 저장해놓았던 '함수를 호출한 지점(RET)'으로 돌아가는데, 미리 말하자면, 이를 에필로그라고 한다. 그림에 있는 EBP와 ESP는 뭘까?? EBP는 스택 상의 한 데이터의 주소가 저장되어 있는 레지스터로, 그 데이터 위부터 한 함수가 실행된 이후의 값들이 쌓인다. 즉, 그 함수의 시작 지점이라고 생각할 수 있으며, 따라서 함수가 종료되지 않는 한 EBP 값은 변하지 않는다. ESP는 스택의 ..
File Upload 취약점 ( + root me ) 보호되어 있는 글입니다.
Directory Indexing 이란? ( + root me ) 보호되어 있는 글입니다.