해킹 122

[ Mobile App Hacking ] 취약한 HSTS 암호화 프로토콜

이번에는 HSTS 프로토콜에 대해 보고 서버에서 취약한 HSTS 설정을 하면 어떤 화면이 뜨는지 보겠습니다. HSTS는 클라이언트의 브라우저에서 HTTPS 접속을 강제화하여 최초 접속 시부터 HTTPS 접속을 유도하는 기능입니다. 하지만 암호화 프로토콜 버전이 낮거나 취약한 프로토콜을 사용하고 있따면 SSL Strip의 위험이 있습니다. SSL Strip 이란? 일반적으로 잘 알려진 MITM (Man in the Middle) 공격을 보안하기 위함입니다. 일반적으로 TLS / SSL로 암호화 된 세션은 중간에서 공격자가 그 내용을 감청하더라도 암호화 되어 있기 때문에 데이터가 보호 될 수 있습니다. 그러나 강제로 SSL/TLS 암호화 세션을 암호화가 되지 않은 HTTP 세션으로 유도하게 된다면 암호화가 ..

Burp Suite로 Nox 패킷 보기 #2 - 도메인 scope 설정

1편에서 인증서에 문제가 있는 상황에서 이를 해결하는 내용의 포스팅입니다. Burp Suite로 Nox 패킷 보기 #1 - mount, 인증서 등록 Linux 및 UNIX 운영 체제에서는 mount 명령을 사용하여 파일 시스템 및 USB 플래시 드라이브와 같은 이동식 장치를 디렉토리 트리의 특정 마운트 지점에 연결할 수 있습니다. 반대로 unmount 명령은 마 seahippocampus.tistory.com Proxy listener 탭에서 bind to port 8081 로 add하고 All interfaces 누르고 OK 그리고 기존의 127.0.0.1:8080의 Running 체크표시를 해제하고 8081 포트의 체크만 남겨둡니다. 그리고 Nox를 켜서 설정 버튼을 눌러줍니다. 그 후 네트워크 와이..

Burp Suite 설정값 Json으로 추출해서 저장하기

버프 스위트를 사용할 때는 매번 일시적으로 실행시키기 때문에 저장해놓은 설정값이 초기화 됩니다. 하지만 매번 실행할 때마다 버프 스위트를 설정해주기엔 귀찮고 피곤하기 때문에 설정값을 추출해서 파일의 형태로 만들어둔 뒤 이 파일만 불러와주면 문제가 해결됩니다 버프 스위트를 실행해줍니다. Start Burp 를 눌러줍니다 상단 탭에 있는 Proxy settings로 원하는 설정값으로 바꿔보겠습니다. 설정을 할 때는 잡다한 캐시라던가 서비스 도메인이 아닌 (bootstrap이나 googleapi같은..) 패킷들도 작업할 때마다 사정없이 날라오기 때문에 이 꽤 걸리적 걸리는 패킷을 거르고 서비스 도메인만 보게 만드는 설정을 할 것입니다. Request / Response intercdeption rules에서 ..

해킹/Web Hacking 2023.09.03

[ Mobile App Hacking ] SSL Pinning 우회하기

오늘 포스팅 주제는 SSL Pinning을 우회해보는 걸로 작성해나가 보겠습니다 SSL Pinning이란 클라이언트 측에서 SSL HandShake 이후에도 증명서를 재검증하기 때문에 MITM공격을 방지하는 데 도움이 되지만 자신의 인증서가 정상적인 것처럼 Frida를 사용하여 앱 내부로 삽입하여 속이게 된다면 우회가 가능합니다. SSL / TLS 란? SSL/TLS란 세션계층 프로토콜이라는 건 아니고, 응용계층 및 전송계층 사이에서 안전한 보안 채널을 형성해 주는 역할을 수행하는 보안용 프로토콜입니다. 즉, HTTPS가 SSL/TLS와는 차이가 있다는 말입니다. SSL/TLS는 보안 통신을 하기 위한 보안용 프로토콜이고, HTTPS는 이런 보안용 프로토콜에 HTTP를 얹어서 통신을 하는 프로토콜인 것입..

Burp Suite로 Nox 패킷 보기 #1 - mount, 인증서 등록

Linux 및 UNIX 운영 체제에서는 mount 명령을 사용하여 파일 시스템 및 USB 플래시 드라이브와 같은 이동식 장치를 디렉토리 트리의 특정 마운트 지점에 연결할 수 있습니다. 반대로 unmount 명령은 마운트된 파일 시스템을 디렉토리 트리에서 분리합니다. mount / unmount mount 명령어는 보조기억장치를 디렉토리로서 사용할 수 있게 하는 명령어 우리에게 익숙한 윈도우에서는 USB나 외장하드같은 물리적 장치를 컴퓨터와 연결하면 자동으로 연결이 되지만 리눅스에서는 직접 연결한 물리적인 장치와 리눅스의 특정 디렉토리를 연결하여 사용해야 하는데, 이때 연결하는 이 행위를 마운트 (mount)라고 합니다. 사용법 mount [option] [file system] [device] [dire..

DOM Based XSS와 Reflected XSS의 차이점

XSS 공부를 하다보면 DOM Based 와 Refleceted에 대해서 헷갈리게 될 때가 온다. 하지만 조사를 하다보니 느낀 건 스크립트가 심어져서 실행되는 시점이 다르다는 결론이었다. 클라이언트 측에서 DOM을 통해 동적 페이지 구성을 하는 기능에서 XSS 발생되는 것이 DOM XSS 서버 측에서 동적 페이지 구성을 하다가 XSS가 터지는 것을 Reflected XSS라고 한다. DOM Based XSS의 경우는 페이지를 한번 로드하고 새로고침이 되지 않더라도 XSS를 심어 계속 크사를 터트릴 수있지만 Reflected XSS를 터트리는 링크는 1회성으로 한번 터트리고 나면 새로고침을 해야 다시 스크립트가 실행된다. 서버가 페이지를 내려주는 응답이 있어야만 터지는 것이다. DOM이란? DOM은 Doc..

해킹/Web Hacking 2023.08.28