Season 1/워게임
-
이번 문제는 xss 문제인 것 같다. 일단, 밑에 나온 alert 창을 띄우는 스크립트를 삽입하면 어떻게 반응하는지 확인하였다. 스크립트가 서버의 xss 필터에 걸리면, no hack을 출력하는 것을 볼 수 있다. 혹시 자바스크립트로 xss 필터 기능을 정의했는지 또는 주석으로 힌트가 있는지 확인해봤다. 확인한 결과 PHP에서 xss필터 기능을 정의되었고, 코드 상에는 힌트가 없었다. 그렇다면, xss 필터가 어떤 것을 필터링하는지 확인을 해야한다. 필터링 목록 script alert Xss에 사용되는 HTML 태그 (img, svg, onclock, onerror 등등) 손으로 직접쳐서 확인한 결과 대문자 상관없이 script와 alert가 필터링 되어있었다. 또한 단어에서 사용된 알파벳 2이상 조합하..
Old - 23 Write Up이번 문제는 xss 문제인 것 같다. 일단, 밑에 나온 alert 창을 띄우는 스크립트를 삽입하면 어떻게 반응하는지 확인하였다. 스크립트가 서버의 xss 필터에 걸리면, no hack을 출력하는 것을 볼 수 있다. 혹시 자바스크립트로 xss 필터 기능을 정의했는지 또는 주석으로 힌트가 있는지 확인해봤다. 확인한 결과 PHP에서 xss필터 기능을 정의되었고, 코드 상에는 힌트가 없었다. 그렇다면, xss 필터가 어떤 것을 필터링하는지 확인을 해야한다. 필터링 목록 script alert Xss에 사용되는 HTML 태그 (img, svg, onclock, onerror 등등) 손으로 직접쳐서 확인한 결과 대문자 상관없이 script와 alert가 필터링 되어있었다. 또한 단어에서 사용된 알파벳 2이상 조합하..
2021.05.17 -
페이지를 확인하니, 입력 폼과 맨 위 가운데에 나타난 time limit가 눈에 띄었다. 대충 감으로 생각했을 때 2초 안으로 입력하라는 미션같다. 시간 제한을 신경 안쓰고, 서버에 값을 보내니 Too Slow 문구가 출력되고 몇 초 지나서 원래의 페이지로 돌아갔다. 나는 자바스크립트를 이용하여 입력값을 넣고, 서버에 전송하여 2초를 넘기지 않고 서버로 값을 보내기 위해서는 코드를 작성하여 보내는 방법 밖에 없을거라 생각하여 코드를 작성하기 위해 개발자 도구로 페이지 코드를 확인하였다. function ck(){ if(lv5frm.id.value=="") { lv5frm.id.focus(); return; } if(lv5frm.cmt.value=="") { lv5frm.cmt.focus(); return..
Old - 20 Write Up페이지를 확인하니, 입력 폼과 맨 위 가운데에 나타난 time limit가 눈에 띄었다. 대충 감으로 생각했을 때 2초 안으로 입력하라는 미션같다. 시간 제한을 신경 안쓰고, 서버에 값을 보내니 Too Slow 문구가 출력되고 몇 초 지나서 원래의 페이지로 돌아갔다. 나는 자바스크립트를 이용하여 입력값을 넣고, 서버에 전송하여 2초를 넘기지 않고 서버로 값을 보내기 위해서는 코드를 작성하여 보내는 방법 밖에 없을거라 생각하여 코드를 작성하기 위해 개발자 도구로 페이지 코드를 확인하였다. function ck(){ if(lv5frm.id.value=="") { lv5frm.id.focus(); return; } if(lv5frm.cmt.value=="") { lv5frm.cmt.focus(); return..
2021.05.17 -
들어가면, Level 1이라는 글과 소스코드를 볼 수 있는 링크가 페이지에 출력되어 있다. 페이지에 아무 반응이 없어서 코드를 살펴보았다. 맨 처음에 정의된 코드인데, user_lv이라는 쿠키를 1로 지정한다는 코드였다.
Old - 1 Write Up들어가면, Level 1이라는 글과 소스코드를 볼 수 있는 링크가 페이지에 출력되어 있다. 페이지에 아무 반응이 없어서 코드를 살펴보았다. 맨 처음에 정의된 코드인데, user_lv이라는 쿠키를 1로 지정한다는 코드였다.
2021.05.17 -
이번엔 채팅앱 같은 페이지가 나왔다. aaaa를 입력하니, command not found라는 문구가 출력이 되었다. command라는 단어를 보는 순간 난 ls 명령어를 입력하여 서버로 보냈다. 파일 이름이 출력되었다. 다른 명령어들을 입력해보았지만, 모두 command not found라는 문구가 출력이 되었다. 그러다가 flag을 입력해보니, 다른 문구가 출력이 되었다. admin만 사용이 가능하다는 문구였다. 더이상 찾을 것이 없을 거 같아서 개발자 도구를 통해 코드를 살펴보았다. $(function () { var username = "guest"; var socket = io(); $('form').submit(function(e){ e.preventDefault(); socket.emit('..
Old - 58 Write Up이번엔 채팅앱 같은 페이지가 나왔다. aaaa를 입력하니, command not found라는 문구가 출력이 되었다. command라는 단어를 보는 순간 난 ls 명령어를 입력하여 서버로 보냈다. 파일 이름이 출력되었다. 다른 명령어들을 입력해보았지만, 모두 command not found라는 문구가 출력이 되었다. 그러다가 flag을 입력해보니, 다른 문구가 출력이 되었다. admin만 사용이 가능하다는 문구였다. 더이상 찾을 것이 없을 거 같아서 개발자 도구를 통해 코드를 살펴보았다. $(function () { var username = "guest"; var socket = io(); $('form').submit(function(e){ e.preventDefault(); socket.emit('..
2021.05.16 -
Mail subject라고 라벨이 있는 것으로 보아서, 메일을 보낸다는 것을 추측했다. Input에 기본값으로 지정된 값을 그대로 서버로 보내니, 메일을 보냈다는 문구가 출력되었다. 문제를 보고 난 BeeBox의 SMTP 문제를 생각할 수 있었다. Input에 Cc을 넣어서 메일을 공격자가 원하는 메일로 참조하는 공격이였다. 위 방법대로 공격해보도록 하겠다. Post 메소드로 값을 넘겨주기 때문에 body 안에 Cc를 삽입하여 보냈다. 그 결과 Flag를 획득할 수 있었다.
Old - 47 Write UpMail subject라고 라벨이 있는 것으로 보아서, 메일을 보낸다는 것을 추측했다. Input에 기본값으로 지정된 값을 그대로 서버로 보내니, 메일을 보냈다는 문구가 출력되었다. 문제를 보고 난 BeeBox의 SMTP 문제를 생각할 수 있었다. Input에 Cc을 넣어서 메일을 공격자가 원하는 메일로 참조하는 공격이였다. 위 방법대로 공격해보도록 하겠다. Post 메소드로 값을 넘겨주기 때문에 body 안에 Cc를 삽입하여 보냈다. 그 결과 Flag를 획득할 수 있었다.
2021.05.16 -
랭킹 게시판이 문제로 나왔다. 이게 무슨 기능을 하는지 몰라서 일단 개발자 도구로 코드를 살펴봤다. .... 랭크에 나온 사용자를 클릭하면, ?hit=hyes4167와 같이 사용자 이름을 파라미터 값으로 서버에 넘겨주고 있다. 어떤 기능인지 확인하기 위해 클릭을 했더니, 페이지가 다시 랭킹 게시판으로 넘어오고, hyes4167의 Hit 값이 증가가 되었다. 이것을 통해 난 Hit 점수를 100까지 올려야한다는 것을 느낌적으로 알아챌 수 있었다. 그래서 Hit 값을 올리기 위해 한번 클릭하니, 투표를 이미 했다는 Alert창이 띄어졌다. 그래서 투표를 했는지 안했는지를 구분하기 위해 쿠키에 값을 넣었을 것 같아서 쿠키를 확인하였다. 예상대로, 쿠키에 투표 값이 있었다. 나는 쿠키를 삭제하여, 페이지에 다시..
Old - 32 Write Up랭킹 게시판이 문제로 나왔다. 이게 무슨 기능을 하는지 몰라서 일단 개발자 도구로 코드를 살펴봤다. .... 랭크에 나온 사용자를 클릭하면, ?hit=hyes4167와 같이 사용자 이름을 파라미터 값으로 서버에 넘겨주고 있다. 어떤 기능인지 확인하기 위해 클릭을 했더니, 페이지가 다시 랭킹 게시판으로 넘어오고, hyes4167의 Hit 값이 증가가 되었다. 이것을 통해 난 Hit 점수를 100까지 올려야한다는 것을 느낌적으로 알아챌 수 있었다. 그래서 Hit 값을 올리기 위해 한번 클릭하니, 투표를 이미 했다는 Alert창이 띄어졌다. 그래서 투표를 했는지 안했는지를 구분하기 위해 쿠키에 값을 넣었을 것 같아서 쿠키를 확인하였다. 예상대로, 쿠키에 투표 값이 있었다. 나는 쿠키를 삭제하여, 페이지에 다시..
2021.05.16