반응형

분류 전체보기 225

old-6

view-source 링크와 ID, PW가 나와있다. 이번에도 view-source 페이지에서 코드를 보고 푸는 것 같다. 코드를 보자! php 코드가 크게 2개가 있다. 왼쪽을 보면 id에 "guest", pw에 "123qwe"를 넣는다. 이 값은 앞 페이지에서 본 ID, PW랑 똑같다. 코드를 계속 보면 다음 for문을 이용해 20번 base64로 인코딩하는 것을 볼 수 있다. 그런 다음 replace 함수를 써서 다른 값으로 바꾸는 것을 볼 수 있다. 그리고 그 값을 쿠키값으로 세팅하는 것을 볼 수 있다. 즉, ID, PW를 암호화해서 쿠키값으로 쓴다! 이제 오른쪽 php 코드를 보자. 이번에는 쿠키값을 가져와 아까 했던내용을 반대로 하고 있다. 즉, 복호화를 하는 것이다. 복호화를 해서 ID랑 P..

old-5

5번 문제를 들어가면 딱 2개의 버튼이 존재한다. 혹시 모르니 소스코드를 확인하였다. 확인해보면 자바스크립트가 존재하는데 Join을 누르면 그냥 메시지 박스로 접속 거부 문구만 띄운다. 두 번째로 Login 버튼을 누르면 mem/login.php 페이지로 이동한다. 일단 한번 가보자. 해당 페이지를 보면 정말 id, pw 입력하는 것 밖에 없다. 그래서 첫 번째로 생각한 게 Blind SQL injection이었다. 그래서 여러 테스트를 해봤다. 아이디 또는 패스워드 하나라도 입력을 안 하면 아무 값도 안 떴다. 아이디, 패스워드에 아무 값이나 넣으면 무조건 [그림 1-4]처럼 패스워드가 틀렸다고만 떴다. 그래서 Blind SQL Injection은 아닌 것 같다고 생각했다. 방향을 바꿔서 소스코드를 다..

old-4

문제에 이상한 암호문과 Password 제출하는 부분 그 아래 좀 작고 어둡게 나와있지만 view-source 링크가 나와있다. 한번 링크를 클릭해 살펴보자! view-source 페이지를 클릭해 보면 해당 페이지의 php 소스가 나온다. 첫 번째 php 코드 부분은 그냥 view-source를 보여주는 부분이니 패스 두 번째 php 소스를 보면 solve(4) 부분을 볼 수 있다. 그렇다는 것은 이 부분을 분석해 우회하면 된다는 것이다. php 코드 부분을 살펴보면 sleep(1) 이 나온다 이 부분은 일부로 Password 입력하는 부분에 무작위로 값을 대입하는 것을 막기 위해 1초씩 딜레이를 걸었다. 두 번째 if 문에 isset함수와 key 부분(입력받은 Password)과 세션 값이 같아 참이면..

카테고리 없음 2020.02.19

old-26

26번 문제 페이지를 열면 view-source 링크만 딸랑 하나 있다. view-source 링크를 클릭해 열어보면 소스코드가 주어진다. 소스코드를 보면 solve(26); 부분이 보인다 이 말은 즉, 소스 코드를 분석해 sove(26); 부분까지 도달하게 만들면 된다. 소스 코드를 분석해보면 맨 위 php 부분은 view_source 이 페이즈를 열기 위한 부분이다. 그러므로 패스! 두 번째 php 부분을 분석하자. 여기서 첫 번째 if 문에서 preg_match 함수를 통해서 문자열을 찾는다. preg_match 함수는 정규표현식을 통해 표현식에 해당하는 문자열들을 찾는 것이다. 첫 번째 인자로 정규표현식을 넣고, 두 번째 인자는 검사 대상 문자열 넣는다. 여기서 문자열을 찾게 되면 1을 반환하고,..

13단계 darkknight -> bugbear

이번 문제는 RTL(Return To Library) 문제이다. 소스코드를 보면 더 이상 스택 부분 주소 값을 넣을 수 없게 '\xbf' 부분이면 프로그램이 종료된다. 여기서는 system() 함수를 사용할 것이다. 그러면 함수 주소를 알아야 한다. gdb를 이용해서 system 함수 주소 값을 가져온다. 이제 system 함수에 들어갈 인자 값이 필요하다. 여기서 우리가 system 함수를 이용해 실행할 것은 쉘(/bin/bash)이다. 당연히 메모리에 올라와 있는 문자열이 필요하다. 메모리에 /bin/bash라는 문자열이 올라와있는 곳의 주소 값을 찾아보자. 그림 1-3 소스코드를 컴파일해서 실행시켜 /bin/bash 메모리 주소값을 찾아보자. 컴파일한 후 이렇게 실행하면 메모리 주소 값이 나온다. ..

Manifest

매니페스트 파일은 Android 빌드 도구, Android 운영체제 및 Google Play에 앱에 관한 필수 정보를 설명한다. 안드로이드 애플리케이션을 구동하는데 필요한 설정값을 관리해주는 곳이라고 생각하면 편하다. 모든 앱 프로젝트에 manifests 폴더 안에 AndroidManifest.xml 파일이 있어야 한다. 매니페스트 파일 역할 1. 앱의 패키지 이름(식별자, 고유값) 앱을 패키징 할 때 빌드 도구가 이 값을 Gradle 빌드 파일의 애플리케이션 ID로 대체한다. 2. 앱의 구성 요소(activity, service, receiver, provider) 3. 앱이 시스템 또는 다른 앱의 보호된 부분에 액세스 하기 위한 필요한 권한 사용자 데이터, 특정 시스템 기능에 액세스 하기 위한 권한을..

반응형