2017/12/30(8)
-
suninatas 3번 문제
3번 링크에 접근하게 되면 NOTICE 게시판에 글을 작성해라고 한다. NOTICE 게시판? 뭘까 하고 소스코드 보기도 하고 이것저것 시도하다가 suninatas 웹페이지에 NOTICE라는 폼이 존재하는 것을 뒤늦게 알게 되었다 ^^ ;; 음 아무리 눈을 씻고 찾아봐도 글쓰는게 없다.? 그런데 어떻게 사람들은 글을 쓸 수 있을까? URL에서 GET방식을 사용한다면, 파라미터가 노출될 것이다라는 생각을 하게 되었다. 역시 피들러를 통해 확인하니 맞았다 ^^ 음 그래도 다시 생각을 해보니, 글쓰기는 보일 수가 없었다. 이미 나는 NOTICE 폼에 들어와있었고, NOTICE폼에 글쓰기가 없었기 때문이다. 하지만, 희망은 있었다. 만약 해당 웹 사이트가 파라미터 변조에 취약하다면 divi값을 다른 글쓰는 공간에..
2017.12.30 -
suninatas 2번 문제 (WEB)
웹을 많이 접해보진 않았지만, 소스코드를 보면 답을 유추하기 쉽다는 판단이 생겨 소스코드부터 살펴보았다. function chk_form(){ var id = document.web02.id.value ; var pw = document.web02.pw.value ; if ( id == pw ) { alert("You can't join! Try again"); document.web02.id.focus(); document.web02.id.value = ""; document.web02.pw.value = ""; } else { document.web02.submit(); } } ID와 PW가 같으면 경고문을 보내고 그렇지 않으면 플래그를 준다. 우회를 하기 위해서는 피들러를 이용하면 된다. 처음에 i..
2017.12.30 -
suninatas 1번 (WEB)
웹 카탈로그가 따로 없어서 리버싱과 동등한 카탈로그에 넣었당 이건 뭐 상관없는거니까 ~ 웹 문제에 도전을 해보았다. 우선 주어진 조건은 다음과 같다, 해당 웹언어는 ASP이다. Replace는 앞의 단어를 뒤의 단어로 교체하는 것이고Mid는 제일 첫 단어를 1 인덱스로 삼고, 주어진 인자 값에 의해 자를 수 있다. 현재 이 문제에서는 a를 aad로 한다고 했으니 내가 만약 a를 입력하면 ----> aad로 치환된다. 내가 만약 a를 입력하면 aad로 치환되면서, 2,2로 Mid 처리하니까 2번째 단어부터 길이를 2만큼 자른다는 뜻이 된다. 그렇다면, 실제적으로 내가 a를 입력하면 ad만 출력되게 되는 것 마찬가지로 i를 입력하면 ---> in이 됨을 알 수 있다. 요구한 사항은 admin이다. 어떻게 해..
2017.12.30 -
suninatas 11번 문제
해당 바이너리는 boland 였고, 레지스터 키 값을 요구하는 문제였다. C0ngratulation! 밑에 jnz로 조건문이 적용되길래 바로 위의 함수에 bp를 걸자 내가 입력한 값 aaaa와 실제 키 값이 레지스터 EAX, EDX에 노출되었다. 암호화가 되어있지 않고 평문 키라 상대적으로 취약한 문제다.
2017.12.30 -
suninatas 9번문제
바이너리를 열어보면 boland 기반으로 컴파일 된 바이너리이다. 키에 암호화도 적용되어 있지않아 아주 쉽게 풀었다. 00450317 |. BA 94034500 mov edx,Project1.00450394 ; ASCII "913465"0045031C |. E8 3F3FFBFF call Project1.0040426000450321 |. 8D55 FC lea edx,[local.1]00450324 |. 8B83 F0020000 mov eax,dword ptr [ebx+0x2F0]0045032A |. E8 95F1FDFF call Project1.0042F4C40045032F |. 8B45 FC mov eax,[local.1]00450332 |. 8B15 2C2C4500 mov edx,dword ptr [..
2017.12.30 -
suninatas 10번 문제
바이너리를 열어보니 C# 이면서, 운이좋게 난독화 프로텍터가 적용되어있지 않다. reflector로 열어보면 이러한 cs 파일을 발견할 수 있다. private void button1_Click(object sender, EventArgs e) { string str = "2theT@P"; string text = "Authkey : Did U use the Peid?"; if (this.textBox1.Text == str) { MessageBox.Show(text, "SuNiNaTaS"); this.textBox1.Text = ""; } else { MessageBox.Show("Try again!", "SuNiNaTaS"); this.textBox1.Text = ""; } } 끝~
2017.12.30