Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

White Security

neverlanctf 2019 - Console writeup 본문

CTF Writups

neverlanctf 2019 - Console writeup

POSIX 2019. 2. 4. 17:58


neverlanctf의 console 문제입니다.

링크가 하나 주어지네요.



접속하면 화면에 단일 폼이 하나 등장하고

콘솔이라는 걸 알리고 싶었는지

좌측에 '>' 이  하나 붙어있습니다.


var foo = document.getElementById("p"); 
        
            function what(){
                var input = document.getElementById("pass").value;
                if( md5(input) == "7b1ece53a46f4a5a2995b9cf901bf457" ){
                   getThat('Y');
                }else{getThat('N')}
            }
            function getThat(strg){
                if(strg == 'Y'){
					// Note: There is no data sent to the key.php file...
					// jquery ajax reference: https://api.jquery.com/jQuery.ajax/
                    $.ajax({
                        type: 'GET',
                        url: '1/key.php',
                        success: function (file_html) {
                            // success
                           foo.innerHTML=(file_html)
                        }
                    });
                }else{
                    foo.innerHTML = "Nope, try again";
                    
                }
            }


곧바로 소스를 확인해 보면

입력한 값을 md5 해싱하고

하드코딩 해둔 값과 비교하여 같으면

jQuery 의 Ajax로 1/key.php에 요청을 보내고 있습니다.


그럼 1/key.php 페이지에 접속해 볼까요?



이게 어떻게 된 일일까요.

분명 메인페이지에서는 비교에 성공하면

위 페이지를 가져오도록 되어 있었는데

막상 접속하니 되돌아가랍니다.



이유는 일반 페이지를 요청했을때와

자바스크립트를 통해 페이지를 요청했을때

차이점이 존재할 수 있기 때문입니다.


자바스크립트에서 서버 내에 있는

타 페이지 데이터를 요청할 때에

XMLHttpRequest 객체를 사용하게 되는데요.


Referer: https://challenges.neverlanctf.com:1120/console.html
X-Request-With: XMLHttpRequest


그 때엔 추가로 추가적으로

Referer와 X-Request-With 헤더가 붙게되니

XMLHttpRequest를 통한 요청과 완벽히

동일하게 만들고 싶다면

참고하시면 되겠습니다.



Comments