잡다

PenetrationTest For CTF

관용 2021. 1. 18. 23:22

PenetrationTest For CTF

O 개요

-       공격자가 시스템의 정보 보증을 낮추는데 사용되는 약점. 취약점은 세 요소의 교집합. 1)시스템 민감성 또는 결함, 2)공격자가 결함에 대한 접근 3) 공격자가 결함에 대한 익스플로잇 가능성.

<OWASP TOP 10>

O SW취약점의 증명

-       통상적인 웹서비스 구조 WAS-WEB-(Interlink)-DB

-       외부 값의 입력->처리->저장 시 각 영역별 Procedure에서 발생

-       CTF의 경우, 공격성 기법의 조합 및 최신 기법 요구

O SW취약점의 종류

-       SQL Injection

공격벡터

ID/PW 로그인폼, 검색폼, URL의 인덱스파라미터, 쿠키 또는 히든필드

설명

신뢰할 수 없는 데이터가 명령어나 질의문의 일부분으로서 인터프리터로 보내질 때 발생(‘, ‘’, --)

취약점 원인

String vul=”select * from test_table” + “where id=” + response.get Parameter(“user”) + “ and password = “ + response.getParameter(“password”);

-       Xquery Injection(XPATH 유사)

공격벡터

 XML Document

설명

XML 에 대한 동적 쿼리문(Xquery) 생성 시 외부 입력값에 대한 검증절차 부재로 빌생

취약점 원인

"for \$user in doc(users.xml)//user[username='" . $_GET["username"] . "'and pass='" . $_GET["password"] . "'] return \$user"
  $query = $zorba->compileQuery($express);
  // execute query
  $result = $query->execute();

-       LDAP injection

공격벡터

외부 입력 값에 (=,+,<,>,#,\,*+,*)를 필터링 핮 않으면 LDAP 명령어 실행

설명

 

취약점 원인

DirectorySearcher src =             new DirectorySearcher("(manager=" + managerName.Text + ")"); src.SearchRoot = de; src.SearchScope = SearchScope.Subtree;
foreach(SearchResult res in src.FindAll()) {
  ...
}

n  XSS

공격벡터

Javascript

설명

자바스크립트 처럼 클라이언트 측에서 실행되는 언어로 작성된

악성스크립트 공격. <script>, <? 등의 특수문자 필터링 없음.

취약점 원인

String memo = rs.getString(1);

Out.print(“text:” + textbox + “<br>”);

n  BOF

공격벡터

인자 값, 파일

설명

정해진 버퍼의 크기보다 큰 데이터를 저장함으로써 실행 시 오류 발생

취약점 원인

Void func(char *str)

{

Char buf[4];

Strcpy(buffer,str);

Return ;

}

… strcat, sprinf, gets, scanf()….

n  Command execute

공격벡터

Parameter

설명

적절한 검증절차를 거치지 않른 사용자 입력값이 OS에서 실행

취약점 원인

String argu=props.getproperty(“type”)

Strig gogogo= new string(“cmda.exe /k \”test.bat \””);

Runtime.getruntime().exec(gogogo+”c:\\prog\\ + type);

n  File upload

공격벡터

File Upload

설명

첨부파일 업로드 기능을 악용하여 웹 서버 권한 획득

취약점 원인

String fnaa=file.getoriginalfilename()

File updir= new file(‘/app”);

String filepath=uploaddir.getabsolutepath()+’/’+fnaa);

n  File Download

공격벡터

File Respo

설명

첨부파일 다운로드 기능을 악용하여 웹 서버 권한 획득

취약점 원인

String fpathaa= UpPath+ filename;

n  Form Field 조작방지

공격벡터

Form

설명

Hidden Field 값을 조작하여 악서기능 수행

취약점 원인

<input type=”hidden” name=”password” value=”1234”>

n  신뢰되지 않는 URL 주소

설명

URL 파라미터 값에 페이지를 입력하여 피싱 등에 악용

취약점 원인

String fakeurl=request.getparameter(“fakeurl”);

Response.sendredirect(fakeurl);

n  CSRF

설명

로그인한 피해자의 브라우저가 취약함 웹 애플리케이션에 의도하지 요청 수행

취약점 원인

<form name=”fform” method=”get” action=”gogo.do”>

n  쿠키변조

설명

사용자 인증 등에 사용되는 쿠키의 인증

취약점 원인

Cookie c = new Cookie(id, realaccount)

n  안정하지 않은 암호화 사용

설명

사용자 인증 등에 사용되는 쿠키의 인증

취약점 원인

Cipher c = cipher.getinstance(“base64”)

O 보안설정

n  미 사용 CGI 제거 및 검색엔진 노출 방지

사용하지 않는 CGI 제거 및 rotbots.txt 설정

Php, cgi 제거

-

User-agent: *

Disallow: /

-        

n  불충분한 전송 계층 보호

서버/클라이언트간의 통신시 암호화

SSL 적용

n  디렉토리 리스팅 및 심볼릭 링크 방지

현재 브라우징 하는 디렉토리의 모든 파일을 사용자에게 보여줌

Apache의 경우, httpd.conf Options 인자에 indexs 포함

Httpd.conf options followsymlinks 제거

n  CGI 스크립트 실행 디렉토리 제한

CGI 업로드 후 임의의 명령 실행

ExecCGI

n  에러메시지 관리

에러메시지를 통한 정보 획득

별도의 에러페이지 작성후 redirection

n  관리자페이지

모든 권한을 가지고 있는 관리자메뉴를 제공

제거

 

 

'잡다' 카테고리의 다른 글

용기, 삶  (0) 2021.02.03
ReverseEngineering For CTF  (0) 2021.01.18
ltrace  (0) 2021.01.18
Digital Forensic For CTF  (0) 2021.01.18
CTF 문제  (0) 2021.01.18