목록Wargame/SuNiNaTaS (7)
Sh4n3e
input box아래에 "select szPwd from T_Web13 where nIdx = '3' and szPwd = '"&pwd&"'"가 존재하는 것을 보면, 이 부분은 SQL Injection으로 풀어야 하는 것을 깨달을 수 있다. 우리가 기본적으로 아는 ‘ or 1 = 1 -- 을 넣었을 때, 다음과 같이 NO! hacking!이라는 Alert창이 뜬다. 이것은 기본적인 SQL injection을 막아놨다라고 봐도 무방하다. SQL injection의 원리는 결국 위의 Query문을 참(True)로 만들어 우회하는 것을 목적으로 한다. 따라서 우리는 다른 방법으로 참을 만들어야 함을 깨닫게 된다. select szPwd from T_Web13 where nIdx = '3' and szPwd =..
우리는 소스에서 이상한 점을 발견해야 한다. 또한 Hint의 숫자를 나중에 Unpacking한 소스에 이용해야 한다. 이 소스는 Packing된 Script언어임을 알아야 한다. http://www.strictly-software.com/unpacker 다음의 사이트를 통해 unpacking을 할 수 있다. 패킹된 결과이다. 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 >> ..
우리는 다음의 힌트와 같이 Point를 50까지 만들어야 한다. 하지만 25를 넘어가면서 다음과 같은 경고창을 띄워주게 된다. 우리는 이것을 우회해야만 한다. 여기서 단순히 Request를 변조하면 좋겠지만 25번의 작업을 거쳐야 하므로, 우리는 Burp Suit를 이용해서, 계속적으로 User-Agent를 SuNiNaTaS로 변조할 것이다.
이번 문제는 Notice Board에 글을 써야 하는 문제이다. 하지만 우리는 Notice Board에 대한 권한이 없다. Notice Board URL : http://suninatas.com/board/list.asp?divi=notice Q&A Board URL : http://suninatas.com/board/list.asp?divi=Free 우리는 Q&A Board의 글쓰기 권한을 통해 변조해서 접근하면 된다. http://suninatas.com/board/write.asp?page=1&divi=Free 이 주소는 Q&A Board의 Write Page이다. 뒷부분의 divi를 notice로 변조해서 접근하면 우리는 게시판에 접근할 수 있다. http://suninatas.com/board/..
스크립트 코드를 분석해보자. id와 pw가 같다면 You can’t join! Try again이라는 경고문이 뜨게 된다. 하지만 이것이 아니라면 submit()함수를 호출하게 된다. 여기서 우리는 Join을 위해서는 id와 pw가 같아야 한다는 힌트를 봐야 한다. Paros를 통해서 Request를 변조해보자. 이렇게 request하면 다음과 같은 결과를 얻어낼 수 있다.
이제부터 시간이 날때마다 SuNiNaTaS의 풀이방법에 대해서 작성해놨던 WriteUp을 가지고 포스팅해보고자 한다... 간단한 소스코드 분석 문제 str = Request(“str”) // 입력 받은 str을 str변수에 저장 If not str = “” Then // 받은 문자열이 공백이 아니라면 if문의 참을 알림 result = Replace(str, “a”, “aad”) // a를 aad로 교체해서 result에 저장 result = Replace(result, “i”, “in”) // i를 in으로 교체해서 result에 저장 result1 = Mid(result,2,2) // result의 문자열을 2번째부터 2개를 result1에 저장함 result2 = Mid(result,4,6) // ..