목록전체 글 (173)
Iriton's log
초기 화면이다. 아무것도 안 떠서 네트워크 오류인 줄 알았다. 소스코드를 보고 아닌 걸 알게 됐다. 문제 설명에도 Do you know phpBB?라 되어 있고 주석에도 경로를 알려준다. 한 번 따라가 보자. 뭐가 있긴 하다. 오른쪽 텍스트를 누르면 어떤 rootme의 링크로 이동한다. 뭐... 어쩌라는 거지?? phpBB에 대해 검색해 보니까 PHP 기반 전자 게시판이라고 한다. install file이면 phpBB를 설치해야 flag가 보이나? 싶었다. 좀 찾아 보니까 phpbb/install 이란 경로가 있는 듯했다. 이동했다. php 파일이 보였다. 누르면 설치될라나 싶어서 눌렀다. 위와 같은 화면이 보였다. install.php 파일을 제거해야 하는데 제거하지 않은 후에 배포해서 생긴 취약점인 ..
Upload로 가보자 파일 형식이 제한되어 있다. php파일을 올리면 제한이 걸린다. 그럼 php 파일 뒤에 .png를 추가만 해주면 어떻게 될까? 우선 php 파일 코드는 아래와 같다. 원래는 $_GET['cmd']를 사용해야 경로를 계속해서 찾을 수 있는데 해당 문제는 위와 같이 경로를 알려 줬기 때문에 코드를 쉽게 짤 수 있었다. 메모장에서 코드를 작성하고 저장할 때만 test.php.png로 저장하면 된다. (Double extensions 가 문제 제목인 이유이다.) 그럼 업로드까지는 성공적으로 수행된다. 지금 보니 경로도 다 보여주네 이것만으로도 취약점이 된다. 아무튼 링크 타고 가면 flag 값이 보인다. 이외에도 1. 아까 말한 $_GET['cmd'] 명령어로 php 코드를 작성하여 경로를..
저 경로에 있는 flag.php 파일을 읽는 게 미션이라고 한다. 파일은 같은 폴더에 저장된다. 파일 업로드 취약점을 활용하여 php 코드를 작성하여 해당 경로의 flag 파일을 볼 수 있게 할 수 있나? 했지만... 안 되네... 절대 경로로 바꿔서 해도 안 된다. 웹쉘이 아니면 뭐지 싶어서 검색을 좀 해봤다. .htaccess 파일을 업로드 하여서 flag.php 파일의 설정을 바꿔야 한댔다. 그러고 보니 flag.txt가 아니라 php 파일이라서 실행이 되는 거니까 형식을 바꿔야 한다. 파일 업로드 경로에 .htaccess.txt 파일을 만들어서 flag.php의 php 파일이 실행되지 않도록 확장자를 지운다. php_flag engine off 를 작성하면 된다. 이때 주의사항은 메모장에서 파일을..
문제 설명 php로 작성된 파일 저장 서비스입니다. 파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다. 문제 페이지이다. Upload 하면 List에 스택이 쌓일 거 같다. 업로드 했을 시 뜨는 창이다. List에 가면 업로드 된 파일이 저장되어 있고, 클릭하면 파일이 실행된다. 업로드 했을 때 저장된 경로까지 친절히 알려 주고 직접 그 경로에 접속하여 파일을 실행시켜 준다. 이를 이용하면 flag 값을 얻을 수 있다. 파일 업로드 취약점을 이용해 보자. 여기서 파일 업로드 취약점이란? 원하는 파일 경로 또는 파일 명을 업로드할 수 있다면, 공격자가 웹 어플리케이션 또는 서버의 서비스가 참조하는 파일을 업로드하여 공격한다. 다시 돌아가서, 해당 문제는 php로 작성된..
초기 화면이다. Upload My Memo를 통해 원하는 제목과 내용을 입력 후 Upload를 누르면 이렇게 뜬다. 왠지 파일이 저장되는 경로를 이용하면 flag를 얻을 수 있을 거 같다. 우선 url이 파일 이름으로 지정되어 있다. 드림핵은 flag.py 파일에 flag가 저장되어 있는 경우가 많아서 name= 뒤에 flag.py를 넣어 봤다. 해당 경로에는 flag.py가 없는 거 같다. ../flag.py를 이용하면 flag값을 얻을 수 있다. ../ 은 상대경로를 이용하여 상위 폴더로 이동하는 것이다. 즉, flag.py는 상위 폴더에 위치해 있었다. 어렵진 않지만 드림핵 문제를 좀 풀어보면 얻을 수 있는 추리력을 요구하는 문제다.
문제 미키의 뒷마당에는 특정 수의 양이 있다. 그가 푹 잠든 사이에 배고픈 늑대는 마당에 들어와 양을 공격했다. 마당은 행과 열로 이루어진 직사각형 모양이다. 글자 '.' (점)은 빈 필드를 의미하며, 글자 '#'는 울타리를, 'o'는 양, 'v'는 늑대를 의미한다. 한 칸에서 수평, 수직만으로 이동하며 울타리를 지나지 않고 다른 칸으로 이동할 수 있다면, 두 칸은 같은 영역 안에 속해 있다고 한다. 마당에서 "탈출"할 수 있는 칸은 어떤 영역에도 속하지 않는다고 간주한다. 다행히 우리의 양은 늑대에게 싸움을 걸 수 있고 영역 안의 양의 수가 늑대의 수보다 많다면 이기고, 늑대를 우리에서 쫓아낸다. 그렇지 않다면 늑대가 그 지역 안의 모든 양을 먹는다. 맨 처음 모든 양과 늑대는 마당 안 영역에 존재한다..
문제 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다. 두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸어서 갈 수 있는 경로가 있어야 한다. 지도는 바다로 둘러싸여 있으며, 지도 밖으로 나갈 수 없다. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도가 주어진다. 1은 땅, 0은 바다이다. 입력의 마지막 줄에는 0이 두 개 주어진다. 출력 각 테스트 케이스에 대해서, 섬의 개수를 출력한다..
js 챌린지라고 한다. 소스코드부터 확인하자. ...? 아무런 의미가 없어 보이진 않고, 암호화를 이모티콘으로 한 건가? 찾아보니 자바스크립트 코드를 이모티콘으로 난독화하는 방법이 있다고 한다. 친절하게도 이를 디코딩 해주는 사이트도 있었다. https://utf-8.jp/public/aaencode.html aaencode - Encode any JavaScript program to Japanese style emoticons (^_^) aaencode demo aaencode - Encode any JavaScript program to Japanese style emoticons (^_^) Enter JavaScript source: alert("Hello, JavaScript") utf-8.jp..