| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- XSS
- ctf
- 안드로이드
- binwalk
- FTK Imager
- 2018
- lord of sql injection
- base64
- diva
- MFT
- Strings
- SQL Injection
- beebox
- kibana
- otter
- dreamhack
- 인시큐어뱅크
- elasticsearch
- Suninatas
- Reflected XSS
- CTF-d
- InsecureBank
- vulnhub
- ESXi
- foremost
- Docker
- Openstack
- igoat
- Volatility
- frida
- Today
- Total
목록전체 글 (452)
Information Security
그림 1-1처럼 3번 문제를 보면 "Write articles in Notice Board!"라는 문구만 표시되어 있다. 그림 1-2처럼 FREE WRITE 게시판에 URL을 보면 /board/free/write를 확인할 수 있다. 그림 1-1을 보면 notice 게시판에 글을 쓰라고 해서 그림 1-3처럼 URL 주소에 board 대신에 notice로 변경 후 NOTICE 게시판이 나온 것을 알 수 있다. 그림 1-4처럼 NOTICE 게시판에 글을 등록했다. NOTICE 게시판에 게시글을 등록하면 키 값을 확인할 수 있다.
XSS - Stored(User-Agent) - 접속한 웹 브라우저의 정보가 저장된 User-Agent 헤더 값을 테이블 형태로 출력한다. Level (Low) User-Agent 부분에 를 입력했다. 게시판에 쿠키 값이 저장된 것을 알 수 있다. Level (Medium) Level (Medium)도 그림 1-1처럼 User-Agent 부분에 스크립트를 삽입했다. 그림 1-2처럼 쿠키 값이 보이지 않고 공백으로 보이는 것을 알 수 있다. Level (High) Level (High)도 그림 1-1처럼 User-Agnt 부분에 스크립트를 삽입했다. Level (High)은 스크립트 언어가 그대로 노출되는 것을 알 수 있다. 대응방안 htmlspecialchars 함수를 호출하여 입력 데이터를 UTF-8로..
Level (Low) 스크립트를 입력했는데 The secret has been changed! 메시지를 보여준다. 대응방안 htmlspecialchars 함수를 호출하여 입력 데이터를 UTF-8로 인코딩한다. 두 번째 인자에 ENT_QUOTES를 추가하여 XSS에 사용되는 특수 문자들을 HTML 엔티티 코드로 변환하여 스크립트 코드를 입력하여도 웹 브라우저에서는 문자로 인식한다.
XSS - Stored (Blog) - XSS는 악의적인 스크립트 코드가 웹에 입력되면서 데이터베이스에 저장된다. 링크를 이용하여 일회성으로 클릭을 유도하지 않고 불특정 다수의 사용자가 공격자의 게시물에 접근하면 지속적으로 악의적인 스크립트가 실행되기 때문에 위협 영향도가 높다. Level (Low) 데이터를 1234를 입력해보니 추가되는 것을 확인하고 를 입력해보니 쿠키 값을 보여준다. Level (Medium) Level (Medium)은 그림 1-1처럼 쿠키 값이 노출되지 않는다. Level (High) Level (High)은 그림 1-2처럼 입력한 스크립트 언어가 그대로 노출되는 것을 알 수 있다. 대응방안 addslashes 함수를 통해 쿼터(',")같은 특수 문자들을 포함하고 있는 문자열에 ..
Session Mgmt – Administrator Portals - 세션은 웹 사이트에서 서비스를 제공할 때 사용자의 로그인을 유지하기 위하여 사용한다. 세션 관리가 소홀하면 세션을 가로채서 재사용하는 공격이 가능하다. Level (Low) 사용자가 관리자 페이지에 접근 시도를 했다. 힌트는 URL을 확인해보라고 한다. URL 주소에 admin을 1로 변경했는데 Locked이 풀리는 것을 알 수 있다. Level (Medium) 난이도 중은 URL이 아닌 cookies 값을 확인하라는 것이다. 버프 스위트로HTTP 요청을 가로채서 쿠키 값을 확인했다. 그림 1-2처럼 admin을 1로 수정했다. 관리자 페이지가 노출되는 것을 알 수 있다. 대응방안 페이지의 소스 코드를 확인하면 이전 단계와는 다르게 a..
그림 1-1을 보면 로그인 화면이 보입니다. ID/PW 입력하여 성공하면 Authkey를 보여주는 것 같습니다. 그림 1-2 test/1234 입력한 결과 "You can't join! Try again 경고창을 보여주는 것을 알 수 있다. 그림 1-3을 보면 문제 2번에 대한 소스코드이다. 부분을 보시면 chk_form() 함수를 이용하여 id값과 pw값을 불러와 비교를 하는 것을 알 수 있다. id==pw 값이 같으면 alert("You can't join! Try again"); 메시지를 보여주고 id/pw 값을 초기화를 하는 것을 알 수 있다. id/pw 값이 다르면 submit() 함수가 실행되는 것을 알 수 있다. 그런데 Hint를 보면 Join / id=pw 값이 같아야 한다는 것을 알 수 ..
그림 1-1을 보면 Replace() 함수와 Mid() 함수를 알면 풀 수 있는 문제인 것 같다. Replace() 함수 함수 Replace(문자열, 치환될 문자열, 치환할 문자열) 예시 result = Replace("hello", "e", "a") print (result) 결과 : hallo Mid() 함수 함수 Mid(문자열, 시작 위치, 자리수) 예시 result = Mid("abcd123", "2", "4") print (result) 결과 : bcd1 문제의 코드에서는 Replace() 함수 두 개를 이용하여, 입력받은 문자열에서 문자'a'와 문자'i'에 대해 치환 후 Mid() 함수를 이용하여 2~9번째 글자를 추출해 내는 코드가 작성되어 결과 값이 'admin'일 경우에, pw를 반환한다..
Broken Auth – Password Attacks - 사용자에 대한 계정 정보를 획득하기 위하여 비밀번호로 입력 가능한 모든 문자 조합을 입력하여 사용자의 계정과 비밀번호가 일치할 때까지 대입하는 공격이다. Level (Low) 버프스위트에 무작위 공격을 시도하려고 Send to Intruder 메뉴로 들어갔다. Clear 버튼을 누른 후 bug 부분만 드래그한 후 Add 버튼을 클릭했다 Brute forcer 공격하기 전에 패스워드 길이를 3으로 설정을 했다. aaa 부터 하나씩 대입하며 공격하는 것을 알 수 있다. 대응방안 아이디와 비밀번호를 알고 있어도 CAPTCHA를 입력하여야 한다. 무차별 대입 공격이 불가능하는 것을 알 수 있다.
