일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Openstack
- elasticsearch
- InsecureBank
- lord of sql injection
- Strings
- MFT
- ctf
- vulnhub
- foremost
- diva
- 2018
- base64
- NTFS
- SQL Injection
- kibana
- Reflected XSS
- igoat
- ESXi
- otter
- XSS
- CTF-d
- frida
- Suninatas
- Volatility
- beebox
- 안드로이드
- 인시큐어뱅크
- logstash
- Docker
- 파이썬
- Today
- Total
목록Web Security/Bee-Box (38)
Information Security
XSS – Reflected (Eval) Level (Low) Eval함수는 수식 형태로 문자열을 실수로 반환하는 자바스크립트다. URL 주소에 1234 데이터를 입력해 오류의 메시지를 보여준다. Eval 함수에 document.write(alert(1)))를 입력해 경고창을 확인했다.
XSS – Reflected (AJAX/JSON) - AJAX 기능을 활용하여 검색어를 입력하면 해당하는 영화가 데이터베이스에 있는지를 확인하고 결과를 바로 출력한다. Level (Low) 를 입력했는데 바로 보이는 것을 알 수 있다. GET 방식으로 xss ajax 2-2.php로 데이터가 전달되는 것을 알 수 있다. 소스코드를 확인한 결과 xss ajax 2-2.php를 호출하는 것을 알 수 있다. 스크립트 언어가 GET방식으로 인코딩 방식으로 전달되는 것을 알 수 있다. GET 방식이기 때문에 URL 주소에 그림 1-4처럼 보이는 스크립트 언어가 보이는 것을 알 수 있다. Level (Medium) Iron Man 데이터를 입력하면 데이터베이스에 있다고 메시지를 보여준다. 그림 1-5처럼 URL 주..
XSS – Reflected(JSON) - JSON은 클라이언트와 서버가 통신할 때 자료를 표현하는 방법으로 특정 언어에 제한 없이 그대로 사용할 수 있다는 장점이 있고 JSON으로 객체를 선언하는 자바 스크립트 코드를 사용하여 검색한 영화 정보를 출력한다. Level (Low) 입력란에 123을 입력했다. 소스코드를 열어 입력한 값을 확인했다. 로 닫아주고 를 입력했다. 그림 1-3처럼 입력 해 스크립트가 동작하는 것을 알 수 있다. 대응방안 htmlspecialchars 함수를 호출하여 입력 데이터를 UTF-8로 인코딩한다. 두 번째 인자에 ENT_QUOTES를 추가하여 XSS에 사용되는 특수 문자들을 HTML 엔티티 코드로 변환하여 스크립트 코드를 입력하여도 웹 브라우저에서는 문자로 인식한다.
XSS – Reflected(POST) - 웹 페이지 URL에 존재하는 파라미터에 악의적인 스크립트 코드를 입력하여 사용자가 URL을 클릭하면 파라미터에 입력한 악성 스크립트 코드가 실행되게 하는 공격이다. Level (Low) First name aaaa Last name aaaa를 입력했다. 버프 스위트에 그림 1-1에 입력한 데이터 내용의 있다. , 를 데이터를 수정해 전송했다. 그림 1-3에서 보이는 스크립트 언어 경고창이 보이는 것을 알 수 있다. Level (High) Level (High)도 스크립트를 삽입했다. Level (High)는 스크립트 언어가 그대로 노출되는 것을 알 수 있다. 대응방안 htmlspecialchars 함수를 호출하여 입력 데이터를 UTF-8로 인코딩한다. 두 번째 ..
XSS – Reflected(GET) - 웹 페이지 URL에 존재하는 파라미터에 악의적인 스크립트 코드를 입력하여 사용자가 URL 클릭하면 파라미터에 입력한 악성 스크립트 코드가 실행되는 공격이다. Level (Low) First name 1234 Last name 1234를 입력해 URL 주소와 Welcome 1234를 확인할 수 있다. , 를 입력해 쿠키 값을 확인할 수 있다. Level (High) 그림 1-1처럼 스크립트 언어를 입력하면 그대로 노출되는 것을 알 수 있다. 대응방안 htmlspecialchars 함수를 호출하여 입력 데이터를 UTF-8로 인코딩한다. 두 번째 인자에 ENT_QUOTES를 추가하여 XSS에 사용되는 특수 문자들을 HTML 엔티티 코드로 변환하여 스크립트 코드를 입력하..
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 함수를 통해 쿼터(',")같은 특수 문자들을 포함하고 있는 문자열에 ..