본문 바로가기

[시큐어코딩-4] 입력데이터 검증및 표현(4) 운영체제 명령어 삽입 발생원인 입력값이 시스템의 명령어로 이용되는 환경에서 입력값 검증을 하지 않은 경우에 발생 영향 시스템 명령어 수행으로 인한 시스템 점령및 파괴 코드예 안전하기 않은 코드의 예 - JAVA …… props.load(in); String version = props.getProperty("dir_type"); String cmd = new String("cmd.exe /K \"rmanDB.bat \""); Runtime.getRuntime().exec(cmd + " c:\\prog_cmd\\" + version); …… dir_type값에 대한 검증을 수행하지 않음 안전한 코드의 예 - JAVA …… props.load(in); String version[] = {"1.0", "1.1"}; int vers.. 더보기
[시큐어코딩-3] 입력데이터 검증및 표현(3) 크로스사이트 스크립트 발생원인 조작된 웹페이지 또는 URL을 사용자가 열람하였을 경우 발생한다. 대부분의 웹 공격 기법이 서버의 취약성에 대해 공격이 이루어지지만, XSS는 클라이언트를 직접적으로 공격하는 기법이다. 악성코드를 숨겨 놓은 게시판의 글이나 문서, 메일 등을 클릭하여 읽을때 스크립트로 인하여 악성코드에 감염되거나 사용자의 정보를 공격자에게 넘겨주게 된다. XSS는 사회공학기법을 이용한다. 즉 간접적으로 신뢰하는 사이트의 게시물이나 이메일등을 이용하여 사용자가 모르는 사이에 공격자가 원하는 방향으로 이끌게 된다. XSS 공격은 주로 사용자의 SessionID나 Cookie값을 훔쳐내어 권한을 훔쳐내는 기법으로 사용된다. 점검방법 웹페이지에 게시판, 민원신청, 여론마당등 일반 사용자들이 그을 게시할 수 있는 기능이 .. 더보기
[시큐어코딩-2] 입력데이터 검증및 표현(2) 자원삽입 발생원인 외부 입력값이 내부 자원에 대한 식별자가 되는 환경에서 입력값을 검증하지 않을 경우 발생한다. 영향 시스템 내부 자원 접근, 수정, 자원간의 충돌 발생 코드예 안전하기 않은 코드의 예 - JAVA …… public void f() throws IOException { int def = 1000; ServerSocket serverSocket; Properties props = new Properties(); String fileName = "file_list"; FileInputStream in = new FileInputStream(fileName); props.load(in); // 외부에서 입력한 데이터를 받는다. String service = props.getProperty("Servic.. 더보기
[시큐어코딩-1] 입력데이터 검증및 표현(1) SQL삽입 발생원인 외부 입력이 DB 쿼리 작성에 이용되는 환경에서 입력값을 검증하지 않는 경우에 발생한다. 영향 조작된 쿼리를 통해 DB 내용이 노출되거나 변조 될 수 있다. 코드예 안전하기 않은 코드의 예 - JAVA try { String tableName = props.getProperty("jdbc.tableName"); String name = props.getProperty("jdbc.name"); String query = "SELECT * FROM " + tableName + " WHERE Name =" + name; stmt = con.prepareStatement(query); rs = stmt.executeQuery(); ... ... } catch (SQLException sqle) { } .. 더보기
안드로이드 4.0 Tutorials http://www.bogotobogo.com/Android/android9TabWidgetFlipper.php Full List of Android Tutorials1. Introduction2. My First Android Application3. Back to Hello World Again4. Basic User Interface5. Layouts6. ListView, Spinner, GridView, and Gallery7. Advanced ListView Widget8. DatePicker, TimePicker, and Clocks9. TabWidget, Flipper, and SlidingDrawer10. Menus11. Android JUnit Test12. Activity Testing.. 더보기
[쉘프로그래밍] 쉘프로그래밍 문법 3장. 쉘 프로그래밍 문법 학습목표 매개변수와 쉘 변수를 이해하고 활용한다.연산자들을 이해하고 활용한다.조건문과 반복문을 이해한다 1. 매개변수(파라메터) 쉘 변수에는 세가지 유형이 있으며 이는 매개 변수로 알려져 있다. 그종류는 키워드 매개 변수, 위치 매개변수, 특수 쉘 매개변수 등이다. 1) 키워드 매개 변수키워드 매개변수명은 알파벳 문자나 _ (밑줄) 문자로 시작 되어야 한다. 그리고 그 다음에는 알파벳이나 밑줄문자의 임의의 숫자가 올 수 있다. 그 값들은 다음과 같이 기록함으로써 키워드 매개변수에 배정된다.변수=값 변수=값 ... 2) 위치 매개 변수쉘 프로그램이 실행될 때마다 프로그램명은 변수 $0에 배정되고, 명령 라인에 타이프된 인수들은 변수 $1, $2, $3 ...에 배정된다. 위치 매.. 더보기
[쉘프로그래밍] 정규식과 유틸리티 2장. 정규식과 유틸리티들 학습목표 정규식에 대한 이해 grep awk sed 1. 정규식에 대한 이해 grep,awk,sed,vi,perl등과 같은 명령어들을 패터처리 언어에서 사용하는 패턴에 대한 특정 규칙을 정규식(Regular Expression)이라고 부른다. 다시 말해서 패턴이란 "규칙적으로 기술된 문자열" 이라고 설명 할 수 있고 이런 규칙들을 표현하는 형식중의 한 방법이 정규식이다.다음은 샘플 데이터 파일과 egrep 명령을 이용하여 정규식을 하나씩 설명하겠다. $ cat sampfile This is sample data file Hello This is Kim. I'm so happy Test100 test200 Are you unhappy ? 1) " ^ " : 행의 시작과 부합$ g.. 더보기
[쉘프로그래밍] 쉘 내장명령들 제 2 부 쉘 프로그래밍1장. 쉘 내장 명령들 2장. 정규식과 유틸리티들 3장. 쉘 프로그래밍 문법 1장. 쉘 내장 명령들학습목표 : 쉘 내장 명령들을 이해하고 활용한다 1. 쉘 내장 명령들 (1) export Command Command: export [ name [ =value ] ] ... Function: 지정된 names을 이후에 실행될 명령어의 환경에 자동적으로 넣기위해 사용한다. Examples: $ AA=100 // 현재 쉘에서 변수 AA에 100을 할당한다 $ echo $AA // 현재 쉘에서 변수 AA의 값을 출력한다 100 $ ksh // 자식 쉘을 생성한다 $ echo $AA // 변수 AA의 값을 출력한다. 아무값도 출력하지 않는다$ exit // 다시 현재 쉘로 돌아 온다 $ e.. 더보기