2단계의 문제를 해결 후 3단계의 문제에 도전해 보겠다. 해당 사이트의 구조를 확인하니 이미지 1,2,3 버튼 클릭 시 파라미터를 전달하여 불러오는 듯하다. 이미지를 선택하는 값에 임의의 값을 삽입하였더니 iframe 태그와 img 태그에 삽입이 되는 것을 확인할 수 있으며 필터링이 있는지를 확인하기 위해 ' , " , >를 삽입해 봤다.해본 결과 " 는 "e로 치환되는 것을 확인이 되었으며 ' 는 "로 치환이 되었다. 그러므로 해당 img 태그에서 '를 사용하는 XSS를 삽입하면 되겠다고 생각이 된다. ' onclick="alert(1)"; 위의 스크립트를 삽입을 시도! XSS가 실행이 되므로 3단계 문제가 해결되었다.
이번에는 이전 1단계 를 해결하여 2단계의 문제에 도전한다.2단계 문제는 게시판 형식으로 Stored 형식으로 XSS를 사용하게 만든 환경 같다. 위의 스크립트를 입력란에 삽입하여 전송했을 경우 태그 안으로 들어가서 스크립트가 실행되지 않는 것을 확인할 수 있으며 를 우회하여야겠다는 생각이 든다. https://developer.mozilla.org/ko/docs/Web/HTML/Element/blockquote: 인용 블록 요소 - HTML: Hypertext Markup Language | MDN" data-og-description="HTML 요소는 안쪽의 텍스트가 긴 인용문임을 나타냅니다. 주로 들여쓰기를 한 것으로 그려집니다. (외형을 바꾸는 법은 사용 일람을 참고하세요) 인용문의 출처 UR..
안드로이드 구성요소(Component)더보기안드로이드 애플리케이션을 실행 시 고유의 기능을 가진 4개의 기본 구성 요소에 액세스를 하게 되는데 액세스 하는 이들을 기본 4대 구성요소라고 부른다. 1. 액티비티 (Activity)더보기 액티비티(Activity)는 앱의 화면(사용자와 상호작용하는 화면)이다.보통 앱을 켰을때 보이는 메인화면을 "Main Activity"라고 부른다. 그렇기 때문에 적어도 반드시 하나 이상의 액티비티를 포함하고 있다. 다른 액티비티를 호출하기 위해서 인텐트를 사용하여 호출한다. 2. 서비스(Service)더보기 안드로이드 4대구성요소 중 백그라운드에서 수행작업을 할 때 사용되는 구성요소3가지 서비스 형태로 존재한다.1. Forground Service- 해당 서비스는 유저..
1. Smali 코드란???An assembler/disassembler for Android's dex format의 약자로 DEX 바이너리를 읽을 수 있도록 표현한 언어이며 DEX파일 디컴파일 했을경우 나오는 어셈블리어와 같은 결과물이다. 안드로이드 앱을 대상으로 소스코드를 변조할 때 Smali 코드를 수정하는것을 리패키징이라고 한다.DEX에 대해서는 이전의 글을 확인하면 된다. 2. Smali 어셈블리 지시자 , 데이터 타입 및 제어문https://naro-security.tistory.com/41에서 정보를 얻음. 안드로이드 smali 코드 분석에 관한 기초 지식개요smali 코드는 안드로이드 애플리케이션의 Dalvik 가상 머신 코드를 표현한 언어이다. Dalvik VM은 안드로이드 앱의 실행을..
1. 디컴파일(Decompile)디컴파일이란 컴파일(사람이 읽을 수 있는 소스코드를 기계어로 변환하는 작업)의 반대 말로 APK 파일을 분해하는 과정을 통해 리소스, 소스코드, Smali 코드가 나오게 된다. 2. 리패키징 리패키징이란 디컴파일을 통해 사람이 읽을 수 있는 소스코드, Smali 코드를 변조 후 앱을 구동할 수 있도록 패키징 하는 것이다.3. apktool 다운로드앞서 설명한 디컴파일과 리패키징을 하기 위해서는 apktool이 필요하다.apktool이란 안드로이드 대상의 리버스 엔지니어링 도구이며 apk파일을 디컴파일 하거나, 코드를 수정하여 패키징 할 수 tool이다.https://apktool.org/ Apktool | ApktoolA tool for reverse engineerin..
1. DEX ?"Android"는 JVM(자바가상머신)이 아닌 DVM(달빅가상머신)을 사용하여 .dex파일을 실행한다.- JVM은 컴퓨터의 메모리를 사용하여 스택기반으로 작업코드를 읽어서 사용하고, DVM은 하나의 파일에 모든 소스가 있어서 DEX파일로 부터 작업코드를 읽어 사용한다. 메모리측면으로 봤을 경우 JVM이 뛰어나나 속도측면에서는 DVM이 뛰어남.- Dalvik이란 Android에서 앱을 실행하기 위해 설계된 경량의 가상머신이다. 특징은 각 앱은 독립적으로 실행되어 메모리와 프로세스를 공유한다."DEX"는 구글에서 "Dalvik Executable"의 약자로 모바일 디바이스에서 사용하기 위해 만들어졌으며, "Android"에서 사용되는 "DEX"라는 파일 포맷은 Java로 짜인 코드가 컴파일되..