728x90

[1,2교시 - 데이터베이스 보안 운영]

/ substr()
- 문자열 자르기
- 인덱스는 1부터 시작한다.
- 두번째 인자로 들어간 인덱스에서 시작하여
- 세번째 인자로 들어간 숫자만큼 문자열을 가져온다.
- 두번째 인자가 0보다 작으면 뒤에서부터 인덱스를 가져온다.

SELECT 
substr('가나다라마바사아자차', 3, 2) as a,
substr('가나다라마바사아자차', -3, 1) as b,
substr('가나다라마바사아자차', -3, 4) as c
FROM dual;

 

/ 연습문제 1
- Student 테이블에서 jumin 컬럼을 사용해서 1 전공이 101번인 학생들의 이름과  태어난 월일 , 생일 하루 전 날짜를 출력하세요.

SELECT 
    name, -- 이름
    substr(JUMIN,3,2)||'월 '||substr(JUMIN,5,2)||'일' birth, -- 생일
    TO_CHAR(BIRTHDAY-1, 'YYYY-MM-DD') "birth minus day" -- 생일 하루 전 날짜
FROM STUDENT
WHERE DEPTNO1 = '101';

 

/ instr()
- instr(문자열또는컬럼명, 찾고자하는문자열, 찾을시작위치, 찾은 문자열이 여러개일때 몇번째인지)

SELECT 'Oracle Database 12C Release', INSTR('Oracle Database 12C Release', 'Data', 3, 1) AA FROM dual;

- 위의 쿼리는 'Oracle Database 12C Release'이라는 문자열에서 'Data'라는 문자열을 3번째 인덱스부터 찾되 1번째로 찾은 인덱스를 알려달라는 뜻이다.
- O(1)r(2)a(3)c(4)l(5)e(6) (7)D(8)

ELECT 'Oracle Database 12C Release', INSTR('Oracle Database 12C Release', 'as', -4) AA FROM dual;

- 위의 쿼리는 'Oracle Database 12C Release'이라는 문자열에서 'as'라는 문자열을 뒤에서 4번째 인덱스부터 찾아 인덱스를 알려달라는 뜻이다.

 

/ LPAD문제
- emp2 테이블을 사용하여 아래 화면과 같이 deptno가 1000번대인 사원들의 사원이름을 총 15 바이트로 출력하되 빈 자리에는 해당 자리의 숫자로 채우세요.

select lpad(NAME, 15, '123456789') from emp2;

 

/ LTRIM(), RTRIM()
- 특정 문장에서 삭제할 문자열을 지정하여 삭제한다.
- LTRIM(문장, 삭제할문자열)

SELECT ENAME, JOB, LTRIM(JOB,'C') FROM EMP WHERE JOB = 'CLERK';

 

/ REPLACE()
- 문장안에서 지정한 문자열을 특정 문자열로 변환한다.
- REPLACE(문장, 변경할문자열, 특정문자열)

SELECT ENAME, REPLACE(ENAME, SUBSTR(ENAME,1,2), '##') FROM EMP WHERE EMPNO > 7000;

 

/ REPLACE 문제 1
- emp 테이블에서 아래와 같이 7000번 이상 부서에 소속된 직원들의 이름과 3-4 번째 글자만 '-' 으로 변경해서 출력하세요 .

SELECT ENAME, REPLACE(ENAME, SUBSTR(ENAME,2,2), '--') FROM EMP WHERE EMPNO > 7000;

 

/ REPLACE 문제 2
- Student 테이블에서 아래 그림과 같이 1 전공이 102 번인 학생들의 이름과 전화번호, 전화번호에서 국번 부분만 ‘*’ 처리하여 출력하세요. 단 모든 국번은 3자리로 간주합니다.

SELECT NAME, TEL, REPLACE(TEL, SUBSTR(TEL,1,3), '***') FROM student
WHERE DEPTNO1 = '102';

 

 


 

[3,4,5교시 - 정보시스템 진단]

 

/ IIS 관리자 띄우기
# start inetmgr

 

/ 폴더 공유 숨기기
- net share로 공유된 폴더들을 확인할 수 있는데 이것때문에 취약점이 발생한다.
- 해서 보이지 않도록 설정할것이다.
- 윈도우로고 우클릭 > 컴퓨터 관리



- 여기서 윈도우 로그를 확인해볼 수도 있다.

 

- 여기서 응용프로그램을 우클릭 하고 속성을 클릭해본다.

 

- 로컬 사용자 및 그룹도 살펴본다.
- 아이콘에 아래화살표가 있는것은 존재하긴 하지만 다운시켜서 사용하지 않는것을 뜻한다.

 

- 게스트 계정은 예전에 사용했었었는데 취약점이 있어가지고 사용안하는것으로 바뀌었다고 한다.
- 예전에 중국에서 이걸 이용해서 mp3 서버로 많이 이용했었다고 한다.

 

- 관리자를 살펴본다.
- 대기업같은곳에서는 'Administrator'라는 관리자계정명을 변경해서 사용하기도 한다.

 

/ 여담
- 백업데이터는 로컬에 저장할 수 없도록 법규로 지정되어 있다.

/ 공유중지
- 공유 폴더 > 공유 > C$를 우클릭하여 공유 중지를 하면 목록에서 사라진다.
- 'net share'에서도 사라졌다.

- 근데 재부팅하면 다시 살아날것이다.

# services.msc
- 에 들어가서 Server를 찾아 다시시작을 한다.
- 화면에 보이는곳에서 '다시 시작'을 클릭해도 되고,

- net stop과 net start로 다시 시작을 해주어도 된다.

 

/ cmd에서도 C$를 지워본다.
# net share c$ /delete

- 이번에도 lanmanserver를 재시작하면 c$가 다시 살아난다.

 

/ cmd로 숨은 공유를 추가하는 법을 잠깐 살펴보자.
# net share c$=c:\

 

/ 완전 삭제
- 이제 완전 삭제하기 위해 레지스트리를 수정해보자.
- 실행창을 띄워서 'regedit'을 입력해보자.

 

 - 이때 보이는 5개의 묶음을 하이브라고 한다.

 

/ 레지스트리 하이브
- HKEY_CLASSES_ROOT : 파일, 확장자 정보, 프로그램이 연결되는 정보가 들어간다. 근간이 되는 정보들
- HKEY_CURRENT_USER : 현재 활동중인, 로그인 되어있는 사용자 정보
- HKEY_LOCAL_MACHINE : 하드웨어와 소프트웨어 관련 설치 정보, 드라이버 정보
- HKEY_USERS : 서버에 들어있는 사용자 정보
- HKEY_CURRENT_CONFIG : 디스플레이, 프린트 설정

/ SAM
- Security Account Manager
- 사용자와 그룹에 대한 계정정보 데이터베이스를 관리
- 윈도우에 들어있는 것
- 사용자가 로그인을 시도하면 DB와 비교하여 맞으면 로그인하게 해주고 틀리면 로그인을 못하게 한다.
- 액티브 디렉토리에 원격 사용자 인증을 해주는 것이다.

/ LSA
- Local Security Authority
- 모든 계정의 로그인(로컬, 원격)에 대한 인증(검증)
- 모든 자원(파일, 디렉토리)에 대한 접근권한 확인
- 계정이름 + SID(Security IDentifier) 비교 매칭 확인
- 관리자 계정은 SID가 500이다.

/ SRM
- Security Reference Monitor
- SAM이 사용자 계정/pw가 일치하는지 여부를 판단해서 SRM에게 전달하면
- SRM이 SID를 부여한다.

 

/ 레지스트리 편집
- 란만서버의 파라메터에 들어가서 우클릭으로 AutoShareServer 레지스트리를 만들고 값을 0을 준다.(DWORD로 생성)

 

- 란만서버를 재시작하면 IPC를 제외하면 모두 사라져있다.

 

- IPC$막으려면 란만서버를 중지하면 되지만 나도 불편해진다.
- AutoShareWks가 뭔지 검색해보기

- AutoShareServer 레지스트리 생성 후에는 없는것이 기본값이기 때문에 'net share c$=c:\'로 만들어도 란만서버를 재시작하면 사라진다.

 

728x90

+ Recent posts