SMALL

Wargame/Webhacking.kr 12

[Webhacking.kr - Old 25]

[문제] [풀이] 문제를 살펴보면 터미널 창의 파일 목록을 확인했을 때 볼 수 있는 결과 값을 확인할 수 있다. url을 살펴보면 file에 hello가 들어가 있는데, 문제를 통해 확인해보면 hello.php 가 hello로 변환되어 있다는 것을 볼 수 있다. http://webhacking.kr:10001/?file=hello 그렇다면 flag.php 파일 또한 flag로 입력하면 보일 것이라 생각되는데, 직접 실행해보면 다음과 같다. 이렇게 FLAG is in the code라는 문자열만 출력되고 flag를 획득할 수 없다. flag.php 소스코드를 읽어야 flag를 획득할 수 있는데 서버 내에 존재하는 flag.php 파일을 읽기 위해서는 LFI 취약점을 이용해야 한다. http://webhac..

[Webhacking.kr] Old-19

[문제] [풀이] 문제에 주어진 대로 admin으로 접속해보면 다음과 같은 메시지가 출력된다. 이 때 cookie 값을 확인해보면 phpsessid를 확인할 수 있다. admin외에 다른 값(1)을 넣어보면 hello 1과 같은 메시지를 출력한다. 그리고 admin을 넣었을 때와 달랐던 점은 userid가 생성된다는 것이다. 1을 넣었을 때 id가 YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWI%3D로 표현되었다. 이 외에도 다른 값을 넣어 보았는데, 마찬가지로 userid가 생성되는 것을 볼 수 있었다. MDNjN2MwYWNlMzk1ZDgwMTgyZGIwN2FlMmMzMGYwMzQ4NjVjMGMwYjRhYjBlMDYzZTVjYWEzMzg3YzFhODc0MThjZTRiMTZ..

[Webhacking.kr] Old-54

[문제] [풀이] 중요 코드를 살펴보면 다음과 같다. 그 중에서도 function answer 함수가 문제 풀이에 핵심적인 역할을 한다. 한 글자씩 표현되는 값을 중첩되게 표현하기 위해서는 aview.innerHTML=x.responseText; 부분을 aview.innerHTML+=x.responseText; 로 변경해주면 된다. if(x.responseText=="") aview.innerHTML="?"; 이 코드는 삭제해도 무방하다. 공백을 확인하기 위해서 넣어줬는데, 그러기 위해서는 if(x.responseText=="") aview.innerHTML+="?"; 로 변경해주면 된다. 변경한 값을 console 창에서 변경해준 뒤에 다시 페이지를 실행해보면 flag를 획득할 수 있다. [핵심] wi..

[Webhacking.kr] Old 26

[문제] [풀이] view-source 소스코드 중에서 핵심적인 부분은 php 코드 부분이다. 소스코드를 분석해보면 다음과 같다. if(preg_match("/admin/",$_GET['id'])) { echo"no!"; exit(); } -> get 방식으로 id를 입력 받아 admin이면 no! 출력 후 종료 $_GET['id'] = urldecode($_GET['id']); -> id를 urldecode하여 id에 저장 if($_GET['id'] == "admin"){ solve(26);} -> id가 admin이면 26 단계 solve 즉, admin를 입력해야 26단계를 해결할 수 있는데, admin을 필터링 하고 있다. get 방식으로 입력 값을 줘야 하니, urlencoding을 생각해볼 수..

[Webhacking.kr] Old 17

[문제] [풀이] 문제의 소스코드를 확인하니 unlock에서 계산된 값을 login.pw.value와 비교하여 get 방식으로 ?unlock/10을 보내고 있었다. 태그를 보면 login의 pw가 우리가 입력하는 입력 창임을 알 수 있다. 따라서 Console 창에서 unlock 변수에 들어갈 값을 계산해보면 7809297.1이 된다. 즉, 이 값을 입력 창에 입력해주면 되는 것이다! https://webhacking.kr/challenge/js-4/?780929.71 url 또한 unlock/10의 값이 파라미터로 연결된 것을 볼 수 있다.

[Webhacking.kr] Old 16

[문제] [풀이] Challenge 16 * 문제의 스크립트를 확인해보니 if(cd==??) 문 중에서 if(cd==124) location.href=String.fromCharCode(cd)+".php"; // do it! 부분만 다른 부분과 달랐다. 주석으로 do it이 있는 것으로 보아 해당 부분이 문제 풀이의 힌트가 될 것 같다. String.fromCharCode() 함수에 대해서 찾아보았는데, 와 같이 hex 값을 유니코드로 바꿔준다고 한다. 해당 값을 Console 창에서 실행해보면, |.php 파일을 나타내면서 flag를 출력한다. url 주소창을 보면 https://webhacking.kr/challenge/js-3/%7C.php 로 변경되어 있음을 확인할 수 있고, 7C가 | 로 변경되..

[Webhacking.kr] old-15

[문제] [풀이] 문제에 접속하면 접근 권한이 없다는 말과 함께 사이트의 첫 페이지로 이동하게 되는데, 이는 alert 함수를 포함하고 있는 자바스크립트가 동작되고 있기 때문이다. 이것을 방지하기 위해서는 사이트 내부의 설정을 변경해야 한다. whale에서는 설정의 검색 창에서 자바를 검색하면 자바스크립트 차단 여부를 묻는 곳을 확인할 수 있고, 여기서 설정할 수 있다. 설정 후 소스코드를 확인할 수 있고, document.write 함수를 확인할 수 있다. href 태그를 보니 ?getFlag를 출력하는 코드가 작성되어 있었다. 이를 실행하고자 console 창으로 이동하였고, 명령을 실행한 결과 GET FLAG라는 문구를 확인할 수 있었다. 하이퍼링크를 클릭하면 문제 풀이에 성공하였다는 문구를 확인할..

LIST