반응형

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
반응형

Burp Suite 프록시 툴을 사용 시 아래와 같은 handsahke alert: unrecognized_name 오류 발견했을 때 해결법입니다.




해결법 1. JAVA 낮은 버전 사용


해결법 2-1. Burp Suite Free version인 경우


1. cmd 명령프롬프트 열기

2. burp suite가 위치한 경로로 이동

3. java -Djsse.enableSNIExtension=false -jar burpsuite_xxx.jar 입력<< -Djsse.enableSNIExtension=false 옵션 추가



해결법 2-2. Burp Suite Pro version인 경우


1. BurpHelper.jar  더블클릭

2. 아래 그림과 같이 JVM Options 칸에 -Djsse.enableSNIExtension=false 입력 후 [Run] 버튼 클릭


반응형
반응형

1. Burp Suite(혹은 타 프록시 툴) 실행 후 [Proxy - Options]에서 Proxy Listeners 수정

   Loopback only 127.0.0.1:8080 → All interfaces *:8080


2. 단말기 [설정 - 연결 - Wi-Fi - 네트워크 설정 관리 -고급 옵션 표시] 접근 

   프록시 "설정 안 함" → "수동

                                 - 프록시 호스트 이름; Burp가 실행된 노트북(컴퓨터)의 IP주소

                                      - 프록시 포트; 8080(1번에서 설정한 포트)


3. 단말기에 Burp 인증서 설치(http://burp로 들어가 설치 가능하나 .der 확장자를 .cer로 바꿔야 함)

    

cacert.cer


단말기에 바로 설치하는 것을 추천


4. 위의 방법으로 진행하였음에도 불구하고 패킷이 잡히지 않는 경우는 앱 권한 상 프록시 사용 불가한 것

 

반응형
반응형

SQL Injection문제입니다.  관리자의 패스워드를 알아야하는 문제군요.



스크린 샷을 찍지는 않았지만, 문제를 들어가보면 메뉴가 3개가 나와있습니다. 그 중 첫번째 메뉴를 클릭하면 URL상에 파라미터가 action=news&news_id=1 이 전송됩니다.

문제 이름이 numeric인 만큼 news_id 파라미터가 매우 의심이 가는데요, 


1. ?action=news&news_id=2-1 << 시도해보았습니다.

결과 ; 에러 출력 없이 첫번째 메뉴가 정상적으로 열람되는 것을 보아 정수형 SQL Injection이 가능하다는 판단을 내릴 수 있습니다.


2.  ?action=news&news_id=1' << 이번에는 SQL Injection의 기본 형태인 싱글쿼터(')를 삽입해보았습니다.

에러 메시지로 SQLite3 데이터 베이스를 사용하고 있다는 것을 알 수 있습니다. 또한, '가 \로 치환되어 인식이 안된다는 것도 알 수 있군요..


3. 필드 갯수 구하기 ?action=news&news_id=1 order by 1-- 

                          ?action=news&news_id=1 order by 2--

                                ?action=news&news_id=1 order by 3-- 
                                ?action=news&news_id=1 order by 4-- << 에러 출력

order by 구문을 이용하여 필드의 갯수가 3개 인 것을 알 수 있었습니다. (order by 4--를 시도하면 에러가 출력되기 때문입니다.)



※ order by 구문과 동일한 역할을 하는 것이 union all select 구문입니다.

?antion=news&news_id=1 union all select null;

?antion=news&news_id=1 union all select null, null;

?antion=news&news_id=1 union all select null, null, null;

?antion=news&news_id=1 union all select null, null, null, null; << 에러 출력

null 인자를 하나씩 추가하여 필드 갯수 파악이 가능합니다.


4. sql query 문을 이용한 스키마 정보 파악 ?action=news&news_id=1 union select 1, sql, 3 from sqlite_master--

에러 메시지를 통해 sqlite3 데이터베이스를 사용하고 있다는 것을 파악했고, 찾아보니 sqlite의 데이터베이스의 스키마를 sqlite_master 테이블에 저장하고 있다고 하네요.

union select 구문은 컬럼 갯수를 맞춰야 하므로 1, sql, 3 으로 설정해서 sql 필드 정보를 알아보았습니다.

※ sql 필드에는 데이터베이스 생성 시 사용된 스키마 정보 중 테이블을 생성하는 CREATE TABLE 구문이 저장되어 있습니다.

결과를 보니 저희에게 필요한 테이블은 users 테이블이고, username과 password 컬럼을 출력해주면 되겠군요!!


5. username, password 출력 ?action=news&news_id=1 union select username, password, 3 from users--

마지막 작업 입니다.

users 테이블에서 username과 password(year라는 컬럼이 하나 더 있으므로 3 추가) 해주면

결과가 출력되었습니다!!~~


admin의 패스워드가 flag 값입니다. 


반응형

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

[root-me] PHP filters  (0) 2019.01.16
root-me >> SQL injection - blind  (0) 2018.06.08
root-me >> Command injection  (0) 2018.04.24
root-me >> HTTP Header  (0) 2018.02.23
root-me >> SQL injection - authentication  (0) 2018.02.22
반응형

너무 바빠서 오랜만에 포스트 하네요. 오늘은 Command Injection 입니다.

Start the challenge 버튼을 눌러 문제를 풀어봅시다.


루프백 아이피가 써있어서 제출을 눌러봤더니, 아무 동작을 하지 않습니다.

흠..일단 프록시 툴을 이용해봅시다.


제 PC에서만 그런건지? ip 인자 값이 널 값으로 전송되어 우선 루프백 아이피를 입력해서 전송해봅니다..


프록시 툴을 이용하니 정상적으로 결과값이 출력되네요~~


그렇다면 이번에는 Command Injection을 시도해봅니다.

; 기호가 리눅스 상에서는 명령어 2개를 연속으로 실행하는 아이이기 때문에 [아이피; 명령어] 를 삽입해봅니다.


오!! 해당 디렉토리에 있는 index.php 파일이 출력됬네요~ 

index.php 파일을 열면 뭐가 나올 것 같군요!@


[루프백 아이피; cat index.php] << 해당 명령어를 삽입하여 전송해보니!!


응답값으로 flag가 출력됬네요ㅎㅎ


반응형

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

root-me >> SQL injection - blind  (0) 2018.06.08
root-me>>SQL injection - numeric  (0) 2018.05.01
root-me >> HTTP Header  (0) 2018.02.23
root-me >> SQL injection - authentication  (0) 2018.02.22
root-me >> Improper redirect  (0) 2018.02.22
반응형

HTTP 응답 값에서 관리자 페이지로 접근하는 정보를 찾는 문제입니다.


문제에 접속해보니 내용은 HTTP 응답 값만이 아니다?? 라는 이해할 수 없는 말이 적혀 있네요.


HTTP 헤더를 봐야하는 문제이니 프록시 툴로 인터셉트하여 살펴보겠습니다.

위는 Request, 요청하는 부분의 헤더 값이구요,


이것은 응답 값의 데이터입니다. 사실 여기에서 막혀서 몇일 고민했답니다.ㅎㅎ

Header-RootMe-Admin: none << 이 부분이 매우 의심스럽지 않나요?


none을 admin으로 바꾼다던가 등의 시행 착오 끝에 전체를 복사하여 Request의 헤더부분에 붙여보았습니다.


Admin 페이지에 접근됬네요!! 억울하게 쉬운 문제였습니다.ㅜㅜ


반응형

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

root-me>>SQL injection - numeric  (0) 2018.05.01
root-me >> Command injection  (0) 2018.04.24
root-me >> SQL injection - authentication  (0) 2018.02.22
root-me >> Improper redirect  (0) 2018.02.22
root-me >> Driectory traversal  (0) 2018.02.21
반응형

SQL injection 문제입니다. 관리자의 패스워드를 알아내라고 하네요.


문제에 접속하니 로그인 창이 뜨네요. 관리자의 패스워드를 알아내야 하므로 id에 admin, password는 가장 기본적인 sql 쿼리인 'or1=1-- 을 넣어주었습니다.


그랬더니 에러문이 출력되었습니다. or 1=1을 띄어주어야 하나 봅니다.


이번엔 id에 admin, password에 'or 1=1-- 을 넣어주었습니다. 그랬더니 admin의 패스워드가 아닌 user1의 패스워드가 출력되네요.

여기에선 sql injection 취약점이 존재한다는 사실을 알 수 있었습니다.


그래서 id 부분에 sql 쿼리문을 넣어보았습니다. 처음에는 admin'or 1=1-- 로 시도 하였더니 안되더라구요.

그래서 admin'or '1'='1 을 넣어보았습니다.


!!! admin의 패스워드가 출력되었어요! 하지만 마스킹 처리가 되어있네요. 당황하지 마시고 F12 개발자도구를 열어봅니다...


소스코드 상에는 패스워드가 평문으로 출력되어 있네요. 해당 값이 flag 값입니다.

서버 단에서 마스킹 처리를 한 후에 클라이언트 단으로 넘어와야 하는데,, 이 부분도 취약점으로 볼 수 있겠네요.

어쨌든 클리어!



반응형

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

root-me >> Command injection  (0) 2018.04.24
root-me >> HTTP Header  (0) 2018.02.23
root-me >> Improper redirect  (0) 2018.02.22
root-me >> Driectory traversal  (0) 2018.02.21
root-me >> Install files  (0) 2018.02.21
반응형

Improper redirect 문제입니다. index 페이지에 접근하라고 하네요. 일단 문제 접속해봅시다.


문제를 열어보면 index.php가 아닌 login.php로 바로 리다이렉트되는 구조네요.


index.php에 접근해야하니 URL 상에 login.php?redirect 대신 index.php로 바꿔 전송해보았습니다.

하지만, login.php 화면으로 바로 리다이렉트 되네요.


때문에 저는 프록시 툴을 사용하였습니다. index.php로의 접근을 Burp Suite 툴을 이용해 조작하였죠.

그랬더니 브라우저 상에서는 보여지지 않았던 flag값을 볼 수 있었네요.

생각보다 어렵지 않은 문제였습니다.


반응형

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

root-me >> HTTP Header  (0) 2018.02.23
root-me >> SQL injection - authentication  (0) 2018.02.22
root-me >> Driectory traversal  (0) 2018.02.21
root-me >> Install files  (0) 2018.02.21
root-me >> Local File Inclusion  (0) 2018.02.21
반응형

Directory traversal 문제입니다. hidden section을 찾으라네요. traversal은 순회라는 뜻이라네요...


파일 업로드 문제에서 보았던 포토 갤러리가 보이구요, 여러 디렉토리가 보입니다.

또한, URL 상에 galerie 파라미터로 디렉토리 이름을 받고 있습니다.

처음에는 유추문제인줄 알고 admin, hidden 심지어 파일 업로드 문제에서 본 upload 폴더 까지 대입 시도를 해보았는데요,

실패하였습니다.


하지만, directory indexing에서 사용했던 디렉토리 리스팅 취약점을 이용해보았습니다.

galerie 파라미터 부분에 값을 지웠더니 숨겨진 디렉토리까지 모두 보여지네요!!!

디렉토리 명 끝 부분이 안보입니다. 조금 확대해서 보세요


해당 디렉토리에 접근하였더니 password.txt파일이 있는 것을 확인하였습니다. 

저는 바로 우클릭하여 이미지 주소 복사한 후 다른 창에서 열었습니다.

열면 바로 보이네요. 생각보다 쉬운 문제였습니다ㅠㅠ 왜 삽질한거죠..

반응형

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

root-me >> SQL injection - authentication  (0) 2018.02.22
root-me >> Improper redirect  (0) 2018.02.22
root-me >> Install files  (0) 2018.02.21
root-me >> Local File Inclusion  (0) 2018.02.21
root-me >> File upload - null byte  (0) 2018.02.21

+ Recent posts

반응형
반응형