메가IT아카데미 국기과정/JAVA와 웹보안
[1-7] Sensitive Data Exposure
한님폐하
2022. 9. 13. 09:26
1. Base64 인코딩
- 8bit 2진수 데이터를 6bit씩 재구성하여 64개의 문자/숫자/기호를 이용하여 ASCII 문자열로 인코딩하는 암호화 기능이다.
- 64개의 문자/숫자/기호 : A~Z, a~z, 0~9, +, /
- Base64 테이블을 참조하면 디코딩이 가능하기 때문에 보안상 취약하다.
echo -n cisco | base64
echo -n Y2lzY28= | base64 --decode
2. Base32 인코딩
- 8bit 2진수 데이터를 5bit씩 재구성하여 32개의 문자/숫자를 이용하여 ASCII 문자열로 인코딩하는 암호화 기능이다.
- 32개의 문자/숫자 : A~Z, 2~7
echo -n meg | base32
echo -n NVSWO=== | base32 --decode
3. Base64 Encoding (Secret)
- 해시값이 간단하거나 많이 노출된 경우라면 레인보우 테이블에 매칭되기 때문에 실제 평문 내용을 조회할 수 있다.
- 참고 사이트 : https://hashes.com/en/decrypt/hash
[참고] %2F는 ASCII 문자로 / 이다.
4. Clear Text HTTP (Credentials)
- 실제 PC에서 'Internet Explorer' 브라우저를 이용하여 시나리오 페이지로 접속한다.
- 공격자는에서 ettercap을 이용하여 ARP 스푸핑을 실시한다.
- 실제 PC에서 bee/bug로 로그인을 실시한다.
5. Heartbleed Vulnerability
- Open SSL 라이브러리의 구조적인 취약점이다.
- 동작 과정은 클라이언트가 임의 길이를 갖고 있는 정보를 서버에게 보내면 서버는 동일한 길이의 정보를 응답한다.
- 이때, 공격자가 거짓의 길이 정보를 서버에게 보내면 서버는 Heartbeat에서 이를 검증하지 않고, 거짓 길이의 정보만큼 응답하는 취약점이 있다.
ls /usr/share/nmap/scripts | grep ssl-heartbleed
nmap --script=ssl-heartbleed.nse -sV -p 8443 [타겟 IP]
6. POODLE Vulnerability
- POODLE : Padding Oracle On Downloaded Legacy Encryption
- SSLv3 프로토콜에서 암호화되어 통신 중인 암호문 중 일부가 평문으로 복호화가 가능한 취약점이다.
- 블락암호화 기법인 CBC(Cipher Block Chaning) 모드를 사용할 경우, 발생하는 패딩된 암호화 블락이 MAC(메세지 인증 코드)에 의해서 보호되지 않기 때문에 발생한다.
ls /usr/share/nmap/scripts | grep poodle
nmap --script=ssl-poodle -sV -p 443 [타겟 IP]