분류 전체보기
-
E2E 암호화 로직은 말 그대로 종단 간 암호화로공격자가 중간에 패킷을 가로채도 데이터가 암호화되어 볼 수 없는 상태로 만드는 역할을 수행한다. 모의해킹을 수행하는 입장에서도 또한 E2E 암호화 로직이 존재하는 경우, 파라미터 변조가 불가능하므로 우회 작업이 불가피하다.E2E 암호화 된 데이터를 처리하는 서버 측에서는 대부분 단말기의 성능이 매우 낮거나 단말기 환경의 호환성 이슈 등의 이유로암호화 로직이 제대로 동작하지 않는다면 가용성에 침해 될 수 있기 때문에 평문 데이터의 전송도 허용하는 경우가 많다.이러한 특성을 이용하여 암호문을 평문으로 복호화한 후 변조, 전송하여 진단을 수행하면 된다. 그리고 이 암호문 복호화 작업을 자동화하기 위해서는 당연하게도 일단 암호문과 암호키를 찾아야 한다. 대상이 ..
E2E 암호화 데이터 복호화 Fiddler ScriptE2E 암호화 로직은 말 그대로 종단 간 암호화로공격자가 중간에 패킷을 가로채도 데이터가 암호화되어 볼 수 없는 상태로 만드는 역할을 수행한다. 모의해킹을 수행하는 입장에서도 또한 E2E 암호화 로직이 존재하는 경우, 파라미터 변조가 불가능하므로 우회 작업이 불가피하다.E2E 암호화 된 데이터를 처리하는 서버 측에서는 대부분 단말기의 성능이 매우 낮거나 단말기 환경의 호환성 이슈 등의 이유로암호화 로직이 제대로 동작하지 않는다면 가용성에 침해 될 수 있기 때문에 평문 데이터의 전송도 허용하는 경우가 많다.이러한 특성을 이용하여 암호문을 평문으로 복호화한 후 변조, 전송하여 진단을 수행하면 된다. 그리고 이 암호문 복호화 작업을 자동화하기 위해서는 당연하게도 일단 암호문과 암호키를 찾아야 한다. 대상이 ..
2025.03.01 -
고객사가 웹 취약점 점검을 매년 받아왔고 조치도 잘 하는 사이트라면 취약점 하나 잡는게 여간 쉬운 일이 아니다. 그럴땐 js 나 html 파일에서 화면 상에 노출되지 않는 Endpoint URL 들을 뒤져보면 다른 사람이 아직 발견하지 못한 취약점들이 나오는 경우가 꽤 있기도 하다. 이를 위해 버프스위트 익스텐션으로 JS Link Finder 라는게 존재하지만 특정 URL 을 대상으로만 수동으로 스캔하고 싶어서 Endpoint URL을 파싱해주는 도구를 만들었다. 위 실행 파일을 다운받아 C:\Windows\System32 등 환경변수로 지정된 경로에 저장하면 된다.명령어의 옵션은 아래와 같다. 기본적인 사용방법은 ep 명령어 뒤에 endpoints 를 수집할 URL 경로 또는 파일(js, html..
URL Endpoints 파싱고객사가 웹 취약점 점검을 매년 받아왔고 조치도 잘 하는 사이트라면 취약점 하나 잡는게 여간 쉬운 일이 아니다. 그럴땐 js 나 html 파일에서 화면 상에 노출되지 않는 Endpoint URL 들을 뒤져보면 다른 사람이 아직 발견하지 못한 취약점들이 나오는 경우가 꽤 있기도 하다. 이를 위해 버프스위트 익스텐션으로 JS Link Finder 라는게 존재하지만 특정 URL 을 대상으로만 수동으로 스캔하고 싶어서 Endpoint URL을 파싱해주는 도구를 만들었다. 위 실행 파일을 다운받아 C:\Windows\System32 등 환경변수로 지정된 경로에 저장하면 된다.명령어의 옵션은 아래와 같다. 기본적인 사용방법은 ep 명령어 뒤에 endpoints 를 수집할 URL 경로 또는 파일(js, html..
2025.02.09 -
Palera1n 으로 탈옥 후에 SSH 로그인을 하려는데 어떤 이유에서 인지 alpine으로 로그인이 되지 않을 때가 있다. 패스워드는 당연히 alpine 으로 초기화 되어있으리라 생각하고 다시 한 번 천천히 alpine 을 입력해봐도 인증 오류가 발생한다. 다행히도 패스워드 관련 설정 파일을 직접 수정하여 해결 가능한 문제였다. 우선 웹 브라우저에서 패스워드 해시값 생성이 가능한 사이트로 들어간다. Password 에는 alpine, Salt 값은 아무 문자열을 입력하고 Encrypt 를 클릭하면 패스워드 해시값이 생성되는데 생성된 해시값은 복사해둔다. 이제 생성한 패스워드 해시값을 root 에게 할당하면 된다. Sileo 에서 Filza를 찾아 설치하고, Filza 에서 /etc/master.pass..
Palera1n 탈옥 후 SSH 패스워드 초기화Palera1n 으로 탈옥 후에 SSH 로그인을 하려는데 어떤 이유에서 인지 alpine으로 로그인이 되지 않을 때가 있다. 패스워드는 당연히 alpine 으로 초기화 되어있으리라 생각하고 다시 한 번 천천히 alpine 을 입력해봐도 인증 오류가 발생한다. 다행히도 패스워드 관련 설정 파일을 직접 수정하여 해결 가능한 문제였다. 우선 웹 브라우저에서 패스워드 해시값 생성이 가능한 사이트로 들어간다. Password 에는 alpine, Salt 값은 아무 문자열을 입력하고 Encrypt 를 클릭하면 패스워드 해시값이 생성되는데 생성된 해시값은 복사해둔다. 이제 생성한 패스워드 해시값을 root 에게 할당하면 된다. Sileo 에서 Filza를 찾아 설치하고, Filza 에서 /etc/master.pass..
2024.03.10 -
여러 회사들의 모바일 앱을 분석해보다 보니 느낀거지만, 요즘은 금융권에 해당하지 않더라도 앱에 모바일 앱 보호 솔루션을 씌워놓은 회사들이 점점 늘어나고 있는 듯 하다. 그리고 대부분의 모바일 앱 보호 솔루션들이 C/C++ 로 컴파일된 라이브러리 파일(.so) 단에서 동작하는 경우가 많기 때문에 JEB, Jadx 등으로 Java 메소드만 분석하려고 하다가는 답도 찾지 못하고 솔루션한테 얻어맞기만 하다가 프로젝트가 끝날 수 있다. 대부분의 솔루션들은 open, fopen, access 등 의 내장된 C/C++ 표준 라이브러리 함수를 이용해 루팅/탈옥 여부를 탐지하곤 하는데 해당 함수들은 대개 안드로이드의 경우 libc.so 에, iOS 의 경우는 libSystem.B.dylib 에 내장되어 있다. 표준 C ..
Frida 표준 C 라이브러리 함수 후킹여러 회사들의 모바일 앱을 분석해보다 보니 느낀거지만, 요즘은 금융권에 해당하지 않더라도 앱에 모바일 앱 보호 솔루션을 씌워놓은 회사들이 점점 늘어나고 있는 듯 하다. 그리고 대부분의 모바일 앱 보호 솔루션들이 C/C++ 로 컴파일된 라이브러리 파일(.so) 단에서 동작하는 경우가 많기 때문에 JEB, Jadx 등으로 Java 메소드만 분석하려고 하다가는 답도 찾지 못하고 솔루션한테 얻어맞기만 하다가 프로젝트가 끝날 수 있다. 대부분의 솔루션들은 open, fopen, access 등 의 내장된 C/C++ 표준 라이브러리 함수를 이용해 루팅/탈옥 여부를 탐지하곤 하는데 해당 함수들은 대개 안드로이드의 경우 libc.so 에, iOS 의 경우는 libSystem.B.dylib 에 내장되어 있다. 표준 C ..
2023.11.26 -
Blind SQL Injection을 항상 수동 혹은 Burp Suite 의 Intruder 를 통해 수행하다가 페이로드 전송 딜레이를 조절 불가한 점과(이게 제일 큰 문제..) 추출할 문자열의 길이가 길어질수록 피로도가 높아지는 등의 문제로 자동화 코드를 하나 만들어야겠다고 생각했다. 테스트는 비박스의 SQL Injection - Blind - Boolean-Based 를 대상으로 수행했다. 삽입한 SQL 구문으로 인해 where절이 참이 되면 "The movie exists in our database!" 거짓이 되면 "The movie does not exist in our database!" 문자열이 출력되는 구조이다. 위 특성을 이용해 Blind SQL Injection을 통해 버전 정보를 출력..
Blind SQL Injection(Boolean-Based) 자동화 파이썬 코드Blind SQL Injection을 항상 수동 혹은 Burp Suite 의 Intruder 를 통해 수행하다가 페이로드 전송 딜레이를 조절 불가한 점과(이게 제일 큰 문제..) 추출할 문자열의 길이가 길어질수록 피로도가 높아지는 등의 문제로 자동화 코드를 하나 만들어야겠다고 생각했다. 테스트는 비박스의 SQL Injection - Blind - Boolean-Based 를 대상으로 수행했다. 삽입한 SQL 구문으로 인해 where절이 참이 되면 "The movie exists in our database!" 거짓이 되면 "The movie does not exist in our database!" 문자열이 출력되는 구조이다. 위 특성을 이용해 Blind SQL Injection을 통해 버전 정보를 출력..
2023.09.28 -
일반적으로 APK 파일 내부에 lib 폴더를 보면 호환성을 위해 ABI 별로 동적 라이브러리 파일이 각각 생성되어 있는 것을 볼 수 있다. 하지만 이 뚱뚱한 라이브러리들을 본인이 쓰지도 않을 버전까지 모두 포함하여 다운로드 하는 것은 Cost 낭비라고 볼 수 있다. 그리고 실제로 APK 파일들의 용량도 점점 증가하고 있다고 한다. 그래서 구글에서는 Android App Bundle 과 Dynamic Delivery 라는 기능을 추가했는데 이를 통해 비용문제를 해결하고 있다. 기존(그림 왼쪽) APK에서는 모든 언어셋 및 화면 크기, 하드웨어 아키텍처에 해당하는 리소스들을 하나의 APK 에 포함시켰던 반면에, Dynamic Delivery(그림 오른쪽) 은 Play Store에 접속한 단말기에 해당하는 리..
분할 APK(Split APKs) 병합일반적으로 APK 파일 내부에 lib 폴더를 보면 호환성을 위해 ABI 별로 동적 라이브러리 파일이 각각 생성되어 있는 것을 볼 수 있다. 하지만 이 뚱뚱한 라이브러리들을 본인이 쓰지도 않을 버전까지 모두 포함하여 다운로드 하는 것은 Cost 낭비라고 볼 수 있다. 그리고 실제로 APK 파일들의 용량도 점점 증가하고 있다고 한다. 그래서 구글에서는 Android App Bundle 과 Dynamic Delivery 라는 기능을 추가했는데 이를 통해 비용문제를 해결하고 있다. 기존(그림 왼쪽) APK에서는 모든 언어셋 및 화면 크기, 하드웨어 아키텍처에 해당하는 리소스들을 하나의 APK 에 포함시켰던 반면에, Dynamic Delivery(그림 오른쪽) 은 Play Store에 접속한 단말기에 해당하는 리..
2023.03.12