반응형
반응형
반응형

SuNiNaTaS의 10번문제 풀이입니다. 


[BINARY]



파일이 하나 있다.




실행하면 입력을 하나 받는다.





이번에는 .NET을 까야하는데 dotpeek이란 프로그램을 사용했다.





입력값이 2theT@P 과 같아야함을 알 수 있다.




클리어!


반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [MISC 12번] 풀이  (0) 2018.08.01
SuNiNaTaS [BINARY 11번] 풀이  (0) 2018.08.01
SuNiNaTaS [BINARY 9번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 8번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 7번] 풀이  (0) 2018.07.31
반응형

SuNiNaTaS의 9번문제 풀이입니다. 


[BINARY]




파일이 하나 주어진다.




실행을 하면 입력을 하나 받는다




일단 올리디버거로 까보자


문자열들을 확인해 보았다.





정수값하나와 성공메세지 등이 보인다.


이 정수값을 입력해 보자



성공!



...그리고 아무 메세지도 없이 프로그램이 종료되었다.


설마 저 값이 authkey?


그렇다.



반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [BINARY 11번] 풀이  (0) 2018.08.01
SuNiNaTaS [BINARY 10번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 8번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 7번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 6번] 풀이  (0) 2018.07.31
반응형

SuNiNaTaS의 8번문제 풀이입니다. 


[WEB]




로그인 창이 하나 있다.


소스코드에서 건질건 힌트뿐..


<!-- Hint : Login 'admin' Password in 0~9999 -->



이건 brute force하라고 만든 것 같다.

burp suite를 이용해서 시도해 보았다.




반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [BINARY 10번] 풀이  (0) 2018.07.31
SuNiNaTaS [BINARY 9번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 7번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 6번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 5번] 풀이  (0) 2018.07.30
반응형

SuNiNaTaS의 7번문제 풀이입니다. 


[WEB]




스크롤을 내리면 YES버튼이 있다.




눌렀더니 너무 느리다고 나온다.



페이지 소스코드에 있는 힌트

<!-- Hint : Faster and Faster -->


빠르게 버튼을 누르면 되는 것 같다.




콘솔창 띄워놓고 frm.submit()을 쳐둔뒤

f5를 마구 눌러 새로고침을 해 주었다. 몇 번 NO!뜨다가 더이상 뜨지 않고 새로고침이 되었다.


마구 새로고침을 하다가 콘솔창에  대기시켜둔 명령어을 치면 authkey를 얻을 수 있다.



반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [BINARY 9번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 8번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 6번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 5번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 4번] 풀이  (0) 2018.07.30
반응형

SuNiNaTaS의 6번문제 풀이입니다. 


[WEB]



게시판이 하나 있다.




힌트에는 suninatas가 쓴 글을 읽으라고 되어있다.



suninatas의 글을 클릭하면 패스워드를 입력하라고 하는데, 밑에 쿼리문이 보인다.

SQL 인젝션을 해야한다는 의미인 것 같다.



select szPwd from T_Web13 where nIdx = '3' and szPwd = '"&pwd&"'


만약 우리가 패스워드로 123을 입력하면


select szPwd from T_Web13 where nIdx = '3' and szPwd = '123'


이 될 것이다.


그럼 이 구문을 참으로 만들어 주어야 한다.



select szPwd from T_Web13 where nIdx = '3' and szPwd = '1' or 1=1 --'


1' or 1=1 -- 이렇게 하면 참이 되는데... 해킹하지 말라는 문구가 뜬다. 이것저것 해보니 =을 필터링 하고 있었다.


그래서 1=1 대신 2>1로 바꿔서 입력해주어야 한다.


1' or 2>1 --





auth_key를 얻었고 이 글을 읽을 수 있다고 한다.





..? 접근권한이 없다고 한다. 게다가 authkey 인증도 틀렸다고 나온다.



뭔가 더 해야하는 것 같다.




이것 저것 뒤져보던 중에... auth%5key라는 쿠키값을 하나 찾았다.

이 쿠키값으로 suninatastopofworld!를 입력하고 다시 시도해보았으나 실패...



2번째 게시글에 있는 링크를 통해 위 값을 md5로 인코딩하고 이 해쉬값을 다시 쿠키에 넣어서 시도해 보았다.



성공...그러나 key를 찾으라고 한다...


소스...소스를 보자



키 힌트가 있다.






클리어


반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [WEB 8번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 7번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 5번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 4번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 3번] 풀이  (0) 2018.07.30
반응형

SuNiNaTaS의 5번문제 풀이입니다. 


[WEB]




key 값을 확인한다


페이지 소스를 봅시다.


난독화된 JS코드

eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('g l=m o(\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\',\'a\',\'b\',\'c\',\'d\',\'e\',\'f\');p q(n){g h=\'\';g j=r;s(g i=t;i>0;){i-=4;g k=(n>>i)&u;v(!j||k!=0){j=w;h+=l[k]}}x(h==\'\'?\'0\':h)}',34,34,'||||||||||||||||var|result||start|digit|digitArray|new||Array|function|PASS|true|for|32|0xf|if|false|return'.split('|'),0,{}))


힌트

<!--Hint : 12342046413275659 -->

<!-- M@de by 2theT0P -->



난독화된 코드를 언패킹해봐야 알 수 있을 것 같네요.


위에 처럼 패킹된 코드는 콘솔창에서 console.log로 언패킹할 수 있다.




언패킹한 코드를 정렬

var digitArray=new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');

function PASS(n)

{

var result='';

var start=true;

for(var i=32;

i>0;

)

{

i-=4;

var digit=(n>>i)&0xf;

if(!start||digit!=0)

{

start=false;

result+=digitArray[digit]

}

}

return(result==''?'0':result)

}




근데... 소스코드를 뒤져봐도 PASS()함수를 사용하는 코드가 없다......


직접 사용해야하나..?


PASS()함수의 인자로 힌트에 나온 정수를 넣어보았다.




9c43c20c 라는 값이 나왔다. 이 값을 폼에 넣었더니 key가 나왔다.


반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [WEB 7번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 6번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 4번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 3번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 2번] 풀이  (0) 2018.07.30
반응형

SuNiNaTaS의 4번문제 풀이입니다. 


[WEB]




소스 하단에 힌트가 있다.


<!-- Hint : Make your point to 50 & 'SuNiNaTaS' -->

<!-- M@de by 2theT0P -->


일단 포인트를 50 만들어 보자



포인트를 올리는 중간에 이런 알림창이 표시되었다.


I like the SuNiNaTaS browser!



포인트는 25에서 멈추고 더 올릴려고 하면 같은 알림이 뜬다..


써니나타스 브라우저를 좋아한다고 하니... User-Agent 의 값을 SuNiNaTaS으로 바꿔주자.



brup suite를 사용했다.




포인트가 50이 되면 key를 얻을 수 있는데, 50을 넘어가버리면 key가 뜨지 않는다..

이럴 경우 쿠키값 지워주고 재로그인해서 다시 시도해야한다..


50이 되면 key가 뜸과 동시에 포인트가 초기화된다.





반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [WEB 6번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 5번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 3번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 2번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 1번] 풀이  (0) 2018.07.30
반응형

SuNiNaTaS의 3번문제 풀이입니다. 


[WEB]



공지 게시판에 글을 써라...


당연히 공지 게시판에는 글쓰기 버튼이 없다. 다른 게시판에서 찾아야 할 거 같은데...



글을 올릴 수 있는 게시판이 하나 있다. 바로 Q&A FREE BOARD


오른쪽 하단에 글쓰기 버튼이 있다.


이 버튼의 코드다 :


<input type="button" class="btnWrite gray" value="WRITE" onclick="location.href='../board/write.asp?page=1&amp;divi=Free'">



../board/write.asp?page=1&amp;divi=Free 으로 이동한다.



그런데, 공지게시판으로 이동하는 코드를 보면


<a href="../board/list.asp?divi=notice" class="button blue1 medium">NOTICE</a>



divi가 다르다. divi를 notice로 바꿔주어서 공지글쓰기 페이지로 이동해서 글을 게시하면 된다.





반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [WEB 6번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 5번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 4번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 2번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 1번] 풀이  (0) 2018.07.30
반응형

SuNiNaTaS의 2번문제 풀이입니다. 


[WEB]




그냥 로그인창이 하나 떠있습니다...


일단 페이지 소스를 확인해 봅시다....앗 프레임 소스 보기를 해야 맞는 코드가 뜹니다.



개발자도구 F12로 보는건 너무 뭐가 많아서

페이지 우클릭후 프레임 소스보기를 하셔야 편합니다.



소스 하단을 보시면, 자바스크립트 코드와 함께 힌트가 있습니다.


<script>

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();

}

}

</script>

<!-- Hint : Join / id = pw -->

<!-- M@de by 2theT0P -->



JS코드에서는 id와 pw가 같으면 안된다고 하고 있고, 힌트에서는 id와 pw가 같아야 한다고 하고 있습니다.


이는 자바스크립트 코드를 우회해 주면 되는데, 여러가지 방법이 있겠지만.. 저는 크롬 개발자 도구중 콘솔기능을 이용하겠습니다.


위 chk_form()함수를 아래와같이 재정의 했습니다.



function chk_form(){

var id = document.web02.id.value ;

var pw = document.web02.pw.value ;

        document.web02.submit();

}



이 코드를 콘솔에 입력해주었습니다.



그 다음 id와 pw에 같은 값을 넣어주면 authkey를 얻을 수 있습니다.

반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [WEB 6번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 5번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 4번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 3번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 1번] 풀이  (0) 2018.07.30
반응형

SuNiNaTaS의 1번문제 풀이입니다. 


[WEB]




문자열을 입력받는 폼이 있고, 아래에 코드가 있습니다.


코드를 보면, 입력받은 문자열을 처리하는 코드인 것 같습니다.


마지막에 결과가 admin이 되어야 authkey를 얻을 수 있나 봅니다.




        result = Replace(str,"a","aad")
        result = Replace(result,"i","in")
        result1 = Mid(result,2,2)
        result2 = Mid(result,4,6)
        result = result1 & result2


이것이 이제 핵심적인 코드라고 할 수 있는데요.


사용된 함수는 Replace()와 Mid() 두개 뿐입니다.


Replace(str, "a", "b")함수는 str의 "a"를 "b"로 치환해 주며, Mid(str, 1, 2)함수는 str의 1번째부터 2개의 문자를 가져옵니다.


.

.

.

그럼 이제 직접 풀어보세요!

.

.

.


.

.

.




위에서부터 하나씩 보면, a를 aad로 바꾸고, i를 in으로 바꾼 문자열에서

2번째부터 2개를 result1에, 4번째부터 6개를 result2에 저장하고

result1+result2가 admin이 되면 됩니다.


그럼 result1이 ad 가 되고 result2가 min이 되어야 하네요.


a가 aad가 되고 거기서 두번째부터 두개를 가져오면 ad가 됩니다.



result2를 생각해보면, 4번째부터 6개를 가져온게 min이 되어야 하고

in은 i가 바뀐 것이니


답은 ami 이네요.




이 문제는 직접 생각하면서 푸는게 이해가 제일 빠를 것 같습니다.



반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [WEB 6번] 풀이  (0) 2018.07.31
SuNiNaTaS [WEB 5번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 4번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 3번] 풀이  (0) 2018.07.30
SuNiNaTaS [WEB 2번] 풀이  (0) 2018.07.30

+ Recent posts