목록WebHacking (65)
Iriton's log
query : select id from prob_goblin where id='guest' and no=
query : select id from prob_cobolt where id='' and pw=md5('')
필요 개념 정리 preg_math(): 인자로 전달받은 정규 표현식과 일치하는 패턴을 검색하는 php의 함수.⇒ 1. 정규식 표현 2. 검색 대상 문자열 3. 매칭된 값을 배열로 저장하고 싶을 시, 배열의 변수⇒ preg_math($pattern, %subject, $matches) ⇒ preg_math(’/정규식표현/’, ‘검색대상문자열’, ‘배열변수’) 세 가지 인자를 받는다. 정규 표현식: 문자열을 바탕으로 검색을 수행하여 패턴과 일치하는지 조사하고, 분할하는 문자열 처리 방법 mysqli_fetch_array 함수는 특성상 한 번의 콜에 하나의 행만 가져올 수 있다. #: %23 공백: %20 query : select id from prob_gremlin where id='' and pw=''
초기 화면이다. 아무것도 안 떠서 네트워크 오류인 줄 알았다. 소스코드를 보고 아닌 걸 알게 됐다. 문제 설명에도 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는 상위 폴더에 위치해 있었다. 어렵진 않지만 드림핵 문제를 좀 풀어보면 얻을 수 있는 추리력을 요구하는 문제다.