CTF 3

Web Shell CTF #3 풀이

이번에는 WebShell #3 문제를 풀어보겠습니다. 링크의 lfi_1라는 텍스트를 보니 LFI 취약점을 이용하는 문제인 것 같습니다. flag.txt 의 파일 내용을 읽어내야 하는 문제입니다. 회원가입을 진행해주고 로그인을 합니다. 기존의 문제랑 달리 배치가 모양새를 띄고 있네요 ㅋㅋ 인사말 페이지에 취약한 파라미터가 있을 확률이 높을 것 같습니다. 게시판에 들어가 제목과 간단한 내용을 작성하고 간단한 이미지 파일을 업로드해서 패킷을 어떻게 주고받는지 살펴보겠습니다. Intercept 를 on 해줍니다. 대략 이런 패킷들이 주고받아지고 있습니다. 이상한 건 intercept 를 on 하고 Download를 눌렀는데도 다운로드가 받아졌다는 것입니다. 그래서 파일의 저장 위치를 알아내기 위해 개발자 도구를..

File Download CTF #2 풀이

이번엔 File Download CTF 두번째 문제를 풀어보겠습니다. 파일 다운로드 취약점을 발견했다면? 아마 파일 업로드도 해보고 다운로드도 해보고 웹 사이트를 탐색하다가 발견했을 겁니다. 그렇게 download.php라는 파일에서 filepath라는 파라미터로 다운로드 받는다는 것을 알아낸 상황입니다. 슬래시 다음 제 아이디 다음 슬래시 파일 명입니다. 그럼 오른쪽 Response에서 PNG 파일 시그니쳐와 함께 다운로드된 것을 볼 수 있습니다. 테스트를 위해 이전 디렉토리로 가는 ../를 넣어주겠습니다. 어라? 그래도 다운로드가 됩니다. /bokyu/itsfruit.png도 다운되고 /../bokyu/itsfruit.png도 다운이 된다? 이건 업로드할 때 이중으로 저장되는 게 아닌 이상 어떤 글자..

CSRF CTF 문제풀이 #1

이번엔 CSRF CTF 1번 문제를 풀어보도록 하겠습니다 CSRF 공격을 이용해 admin 계정의 비밀번호를 바꾸게 해야합니다. CSRF 공격은 폭과 높이를 0으로 숨긴 iframe을 써서 action 속성으로 전달된 창이 뜨지 않게 할 수 있습니다. 코드를 보면 게시판만 읽어도 mypage_update.php에서 회원 정보를 수정한 효과를 얻을 수 있습니다. Javascript에서는 document.forms 객체로 form 태그에서 사용되는 양식들을 제어할 수 있습니다. 코드대로라면 document.forms[0].submit()은 코드의 처음 form 태그 안에 존재하는 submit 속성을 가진 input을 누르게 될 겁니다. document.forms 사용법 →document.forms[0] →d..