1. SQLInjection(Blind)란? SQL Injection-Blind는 공격자가 웹 애플리케이션에서 발생하는 SQL Injection 취약점을 악용하여 데이터베이스에 액세스하려는 공격 형태 중 하나다. Blind SQL Injection은 쿼리의 실행 결과에 대한 정보가 화면에 표시되지 않는 경우에 사용된다. 즉, 공격자는 쿼리의 결과를 직접 확인할 수 없으며, SQL 쿼리의 결과 값이 참 또는 거짓인지를 구별하여 규칙적인 HTTP의 응답의 차이를 이용해 DB의 데이터를 간접적으로 추측하고 수집하는 공격이다. 2. 공격수행 더보기 - 수행하기 앞서 이 blind sql injection공격을 할 때에는 burp의 Repeater기능을 사용하게 된다면 더욱 수월할 것이다. - 해당 SQL 질의에..
1. XSS- Stored란? Stored XSS공격은 말 그대로 보안이 취약한 서버에 악의적인 스크립트를 저장함으로써 발생하는 취약점에 해당한다. 예를 들어 서버에서 제공되는 게시판, 사용자 프로필, 문의글 등에 스크립트를 삽입하여 저장한 후 사용자가 확인할 때 발생하는 취약점에 해당한다. 2. low단계 더보기 - 현재 페이지에서는 Name이라는 text칸에는 글자수 제한이 있다. Message칸에는 글자수 제한이 없는것으로 확인이 된다. - 메세지 칸에 삽입한 결과 아무런 필터가 없이 XSS문이 작동되었다. - Name칸에도 XSS가 작동하는지 확인하기 위하여 개발자도구(F12)를 이용하였다. - maxlength라는 글자수 제한을 변경할 수 있다. - Name이라는 칸에 글자수 제한이 풀렸기 때문..
1. XSS - Reflected 이란? 사용자가 조작할 수 있는 입력값을 갖는 요청이 즉각적으로 사용자에게 응답되고 이 응답에 사용자의 입력값이 안전하지 않은 방식으로 포함될 때 발생하는 XSS를 Reflected-XSS라고 합니다. 요약하여 악성스크립트를 요청하여 서버측 응답을 가져온다. 2. low 단계 더보기 - 해당 페이지의 파라미터를 입력하는 칸이 있다. - 입력값을 삽입하였을때 파라미터가 넘어가는것을 확인할 수 있다. - 이를 개발자 도구를 통하여 확인해본결과 파라미터 그대로 간다는것을 확인할 수 있다. - 임의의 xss문구를 삽입하였다. - 결과 아무런 필터가 없어 XSS문구가 발생이 되었다. 3. medium 단계 더보기 - low단계에서 사용해봤던 방식으로 접근해봤으나 필터링이 되어있는..
1. XSS - DOM 이란? 1. XSS 란? 악의적인 사용자가 공격하려는 사이트에 악성 스크립트를 주입하는 행위이다. 공격에 성공하게 되면 사이트에 접속한 사용자는 악성 스크립트를 실행하게 되며, 보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등 민감한 정보를 탈취할 수 있는 위험한 취약점에 해당한다. 2. DOM 기반 피해자의 브라우저에서 *DOM 환경을 수정하여 클라이언트 측 코드가 예상치 못한 방식으로 공격 구문이 실행되는 XSS(Cross Site Scripting) 공격에 해당한다. 즉, 페이지 자체(HTTP 응답)는 변경되지 않지만, 페이지에 포함된 클라이언트 측 코드는 DOM환경에서 발생한 악의적인 변조로 인해 공격 구문이 실행되는 공격에 해당한다. ※ DOM 이란? - DOM(..
※ File Inclusion 취약점이란? - 파라미터 값을 정확하게 검사하지 않을 때에 공격자가 피해자 대상 서버에서 시스템 파일을 읽어 탈취하거나 공격자가 만들어둔 소스코드를 Include 하도록 유도하는 공격입니다. - LFI (Local File Inclusion) : 공격자가 공격 대상 서버에 업로드되어 있는(위치한) 파일을 실행, 공격에 활용하는 취약점 - RFI (Remote File Inclusion) : 공격자가 외부 서버(공격자 서버 등)에 있는 원격 파일을 URL 파라미터에 포함, 전달하여 실행 1.Low 단계 , medium 단계 더보기 - 첫 페이지를 보면 파라미터 값으로 include.php라는 파일을 불러오는 것을 확인할 수 있다. 이를 다른 것으로 확인하면 될 것 같다는 생각..
1. 소스코드 - 소스코드 없이 풀지 못했으므로 이번문제는 소스코드부터 확인하겠다. - 소스코드는 위 사진과 같다. 코드를 확인한 결과 필터링에 대한 내용을 확인할 수 있다. if( ( strtolower( $uploaded_ext ) == "jpg" || strtolower( $uploaded_ext ) == "jpeg" || strtolower( $uploaded_ext ) == "png" ) && ( $uploaded_size < 100000 ) && getimagesize( $uploaded_tmp ) ) { - 필터링 부분을 확인하자면 jpg , jpeg , png 확장자만 확인하는 화이트 리스트 방식 필터링이 되어있다. 또 다른 getimagesize라는 필터와 strtolower이라는 대소문..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.