Web Hacking Study/수업 정리

[18주차] 부가 취약점 + 개념

silver surfer 2022. 8. 9.

** Injection

원리는 똑같다

> SSI Injection (Server Side Include)

> 볼 일이 거의 없는 옛날 기술

> .shtml

→ Server-parsed HTML : 서버에서 파싱하는 HTML

→ SSI Directive (SSI 지시어) : <!-- --> 내에 SSI 문법에 맞는 명령어를 적는 것

> 그 외의 ldap Injection, Xpath Injection 전부 다 비슷한 유형이다.

 

** BOF (Buffer OverFlow)

>              Process vs Program

→ 위치:    Memory       Disk 

> Buffer를 흘러넘치게 만든다

→ pwnable 공부

> BOF는 메모리의 명령어를  처리하면서 발생하는 취약점

+ Memory : CPU의 작업공간, 메모리가 크면 클수록 여러가지 일을 동시에 할 수 있다.

+ Disk : 데이터를 메모리로부터 읽어들이기도 하고 (Input) 처리 결과를 파일 시스템에 저장(Output)하기도 한다.

+ Program :  파일 시스템에 존재하는 정적인 실행파일

+ Process : 메모리로 이동하여 실행중인 프로그램

+ CPU : 메모리에서 클럭마다 명령을 하나씩 읽어와 실행하는 역할

+ Register : 명령어를 실행하기 위해 필요한 데이터, 상태, 명령어를 저장하는 공간(변수 느낌..?). CPU 내부에 존재한다

→ EIP (Instructor Pointer) : 그 다음에 실행할 명령어 주소

→ BOF는 메모리의 값을 변조하여 EIP 레지스터를 공격자가 원하는 값으로 바꾸는 것.

 

** Port Scan

> 어떤 포트가 열려있는지 확인하는 작업

> 직접 들어가보기

 

** MITM (Man In The Middle) 

> 공격자가 2명의 사용자 사이에 자리잡고 대화를 엿듣거나 데이터 전송을 가로채는 공격

* ARP Spoofing (ARP Protocol)

> LAN에서 ARP를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 기법이다.

> ARP : 소프트웨어적으로 할당된 논리 주소인 IP주소를(Network 계층) 실제적인 물리 주소인 MAC주소(DataLink 계층)로 바꿔주는 역할

> 정상 통신

 

> 비정상 통신

** CVE : 취약점 코드 

 

** [전자 금융] 거래 정보 관련 취약점

> 거래 2번 (사전 거래, 본 거래 → 패킷이 총 2개) 

 

** E2E (End To End) 암호화

> 웹에서 사용하는 e2e는 브라우저에서 암호화

> 종단간 암호화는 발신원부터 수신원까지 정보의 암호화를 유지한 채로 전송하는 방식

> 암호화가 언제, 어디서 적용되는지 추적하면 암호화를 우회할 수 있다

> 대부분의 경우 javascript에서 구현되어 있다

→ 우회 방법

① 암호화를 꺼버리는 방식

② javascript에 prompt 창을 이용한다

ex)

origin_data = prompt('e2edata',origin_data);

var encrypt_data = enc(origin_data);

send(encrypt_data);

> 외부 EXE 파일로 실행되는 경우 : javascript로 외부 exe를 호출하기 때문에 그 파일을 열어보면 e2e 암호화하는 부분이 있을거고 거기에 prompt창 이용

> 만약 javascript 다 뒤져도 모르겠으면 exe hooking (어려움)

 

** 모바일 앱 해킹

> Native App : TCP 통신

> Hybrid App : HTTP 통신 + 앱 화면(Native App)

> Web App : HTTP 통신 (burp suite 이용해서 데이터 확인)

> 서비스 취약점 (burp 키고 찾기), 단말기 취약점

→ 단말기 취약점 찾으려면 rooting, 탈옥 되어있어야한다

> 대부분 App에서 rooting, 탈옥된 단말기에서는 실행 x → 우회 (실행 코드 분석해서 찾기)

댓글