Wargame/SuNiNaTaS

    SuNiNaTaS 5 (WEB 301pt)

    SuNiNaTaS 5 (WEB 301pt)

    핵심 소스는 아래와 같다. 음.. eval함수로 감싸져있는데 도대체 무슨 소린지 알 수가 없다. 난독화 코드다. 이를 난독화된 코드를 어떻게 해석할 수 있는지가 이 문제의 관건인 것 같다. 코드 마지막엔 Hint도 있는데 이후에 어떻게 활용할 지도 알아봐야 할 것 같다. 아마 저 password 폼에 넣는게 아닐까 싶다. 일단 자바 스크립트 코드 난독화 / 난독화 해석 사이트를 찾았다. -난독화 http://dean.edwards.name/packer/ /packer/ Copyright © 2004-2020 Dean Edwards. All rights reserved. dean.edwards.name -난독화 해석 https://beautifier.io/ Online JavaScript beautifie..

    SuNiNaTaS 4 (WEB 122pt)

    SuNiNaTaS 4 (WEB 122pt)

    &nbsp Point User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Auth key ????? 소스를 보면 별게 없고, 대신 마지막 줄에 힌트가 있다. Make your point to 50 & 'SuNiNaTaS' 'Plus' 버튼을 누르면 Point가 1씩 올라간다. 그리고 그 사이 URL이 변하는 것을 발견했다. http://suninatas.com/challenge/web04/web04.asp에서 http://suninatas.com/challenge/web04/web04_ck.asp로... '_ck'를 .asp 앞에 ..

    SuNiNaTaS  18 (FORENSICS  153pt)

    SuNiNaTaS 18 (FORENSICS 153pt)

    처음에 딱 보고 이 숫자들이 아스키코드고 chr() 변환을 통해 문자열을 얻으면 된다고 생각했다. a=[] a_input=input() a=a_input.split() a=list(map(int,a)) i=0 while(1): b=a[i] print(chr(b), end="") i+=1 if(i==len(a)): break 그래서 위와 같은 코드를 작성하고 돌려봤더니 아래와 같은 문자열이 출력되었다. VG9kYXkgaXMgYSBnb29kIGRheS4gVGhlIEF1dGhLZXkgaXMgVmVyeVZlcnlUb25nVG9uZ0d1cmkh 처음에 딱 보고 음 아닌가 싶었지만 디코딩을 해보기로 했다. base64 디코딩으로 Authkey를 얻었다. Today is a good day. The AuthKey i..

    SuNiNaTaS 3 (WEB 133)

    SuNiNaTaS 3 (WEB 133)

    &nbsp Write articles in Notice Board! 소스도 모두 디자인에 관한 것뿐, 주어진 거라고는 노티스 보드에 글을 쓰라는 문장 뿐이다. 아무리 찾아봐도 없길래 notice board에 글을 써보기로 했다. 하지만 notice board에는 글쓰기 버튼이 없었다. 아래는 free board다. 글 쓰기 버튼도 있다. 간단하게 글을 써봤지만 아무 것도 나오지 않았다. 그러다가 URL을 보게되었다. 위 사진은 FREE BOARD에서 글 쓰기 버튼을 눌렀을 때의 URL이다. 저 free 부분을 notice로 바꿔보면 되지 않을까? 그랬더니 원래 없었던 NOTICE WRITE 창을 찾았다. 이 곳에 글을 써보니 Authkey가 팝업되었다.

    SuNiNaTaS 2 (WEB 110)

    SuNiNaTaS 2 (WEB 110)

    소스 코드를 보면 id와 pw가 다를 때 폼이 전송된다. 그런데 주석 처리된 힌트 부분에는 id와 pw가 같다고 되어있다. id와 pw를 같지만, 다르게 해야 한다는 생각으로 id: admin / pw: 0x61646d696e or char(97, 100, 109, 105, 110) 이렇게 우회를 해봤지만 되지 않아서 프록시 툴을 사용해봤다. 일단 id랑 pw를 같게 하라고 하니 둘 다 admin으로 로그인을 시도할 것이다. id: admin / pw: admin 그리고 소스코드에서 if 절의 조건을 바꿔준다. id == pw -> id != pw 이 상태로 로그인 하면 Authkey가 뜬다! 프록시툴로 if 조건절을 바꾸는 방법 뿐만 아니라 id나 pw를 직접 수정해줄 수도 있고 콘솔 창에서 코드 수정..

    SuNiNaTaS 1 (WEB 100)

    SuNiNaTaS 1 (WEB 100)

    asp 소스 코드가 있다. Reuqeust 객체를 통해 str을 받아오는데 str에 아무 것도 없다면 Then 다음 코드를 실행한다. replace(): a는 aad로, i는 in으로 바꾼다. mid(): 2번째부터 2글자를 떼어오고 4번째부터 6글자를 떼어와 그 둘을 붙여 result를 만든다. 그렇게 만든 result의 값이 admin이면 문제가 풀릴 것 같다. 저 일련의 과정을 거쳐 admin이 될 수 있도록 초기값을 찾으면 된다. 먼저, replace() 함수에는 a를 aad로, i를 in으로 바꾸기에 a와 i는 필수적으로 포함할 것이다. 만약 초기값이 "ai"라면, "ai" - "aadi" - "aadin"의 순서로 replace() 를 거친다. 이후 mid()를 거치면 ad와 in이 합쳐진, ..