Wargame/Suninatas
-
<Suninatas> 23번 문제Wargame/Suninatas 2021. 11. 7. 16:02
23번 문제 앞전에 풀었던 Suninatas 22번 문제와 유사하지만, 'admin'과 'substring'이 필터링되는 것을 확인할 수 있다. 페이지 소스 코드를 먼저 살펴보면 아래의 힌트를 찾을 수 있다. 전의 문제와 똑같이 guest의 로그인 정보를 주고 admin의 패스워드를 찾으라 한다. 그리고 'admin' 문자열을 우회하라고 한다. 무심결에 ad'+'min'--으로 로그인해보니 로그인에 성공하였다. 찾아보니 SQL에서 문자열을 '+'로 합칠 수 있는 특성을 이용하여 문자열을 우회할 수 있었다. 또 다른 방법으로 'or id 4 -- 우측 두 개의 문자열에서 조회된 첫 번째 문자를 가져온다. left(right( "12345",3 ),1 ) = 345 -> 3 -- 우측 세 개의 문자열에서 조..
-
<Suninatas> 22번 문제Wargame/Suninatas 2021. 11. 5. 17:17
22번 문제 Blind Sql Injection 문제인 듯하다. Blind Sql Injection은 Sql Injection과 동일하지만, 데이터 베이스에서 데이터를 검색하는 방법만 다르다. 데이터베이스가 웹 페이지에 데이터를 출력하지 않을 때 공격자는 데이터베이스에 일련의 참 또는 거짓 질문을 하여 데이터를 빼내는 기법이다. 한 문자씩 추출해서 DB의 정보를 알아낼 수 있다. 우선, 페이지 소스코드를 먼저 살펴본다.    id pw OK admin Filtering Keywords select / Union / or / white space / by / having from / char / ascii / left / right / delay / 0x .......... 아이디와 ..
-
<Suninatas> 8번 문제Wargame/Suninatas 2021. 11. 1. 15:40
8번 문제 로그인 창이 있고 패스워드가 틀렸다고 한다. 우선, 페이지 소스코드를 먼저 살펴보겠다. 로그인 창을 구성하는 HTML코드가 있다. 따로 특별한 함수가 보이지 않고, 아래에 힌트가 주어져 있다. admin으로 로그인하고 패스워드는 0부터 9999까지라고 한다. 페이지 소스코드에 브루트 포스를 방지하는 구문이 없는걸로 보아 브루트 포스 공격으로 패스워드를 찾아내면 될 것 같다. Burp Suite를 이용해 브루트 포스 공격을 수행해 보겠다. Burp Suite의 Proxy를 이용한다. 먼저 로그인 창에 아이디는 admin 패스워드는 0을 입력한다. Proxy의 HTTP history에서 방금 로그인한 Request를 찾을 수 있다. 이것을 Burp Suite의 Intruder로 보낸다.(마우스 오..
-
<Suninatas> 7번 문제Wargame/Suninatas 2021. 10. 31. 17:23
7번 문제 아이유 사진과 "그녀를 좋아하는가?"라는 질문이 있다. 밑으로 내려보면 "YES"버튼이 있다. "YES" 버튼을 눌려보면 너무 느리다고 한다. 이 페이지에 접근하는 동시에 "YES" 버튼으로 접근을 해야할 것 같다. 우선, 페이지 소스코드를 먼저 살펴보면 noEvent() 함수를 찾을 수 있다. keyCode값이 116이나 9를 누르면 "No!" 알람이 뜨고, false를 반환한다. 또, ctrl키와 keyCode값이 78이나 82를 누르면 false를 반환한다. ※ keyCode 반환값(https://keycode.info/) 그리고 아래 힌트에 "더 빠르게 더 빠르게"라고 힌트가 주어져 있다. 앞서 생각한대로 빠르게 "YES" 버튼으로 접근하면 될 것같다. 소스 코드에서 "YES" 버튼은 ..
-
<Suninatas> 6번 문제Wargame/Suninatas 2021. 10. 31. 16:41
6번 문제 한 게시판이 등장한다. 1번 Hint를 들어가 보면 suninatas의 글을 읽어보라고 한다. 2번 reference! 를 들어가 보면 해시함수 사이트가 나온다. 제목대로 참고하라는 것 같다. 3번 README를 들어가 보면 패스워드를 입력할 수 있는 칸과 SQL문이 나와있다. T_Web13 테이블에서 nldx가 3이고 szPwd 칼럼을 참고해 szPwd를 구하는 쿼리문이다. SQL문이 나와있는 걸로 보아 SQL Injection을 수행해야 하는 것 같다. 4번과 5번은 그냥 적어놓은 것 같다. 3번의 패스워드 입력 폼에 SQL Injection의 기본 구문인 1' or '1'='1'-- 구문을 삽입하니 "NO! hacking!"이라는 알람이 뜬다. 아무래도 필터링되는 문자열이 있는 것 같다...
-
<Suninatas> 5번 문제Wargame/Suninatas 2021. 10. 29. 22:25
5번 문제 어떤 키 값을 넣으면 인증 키 값을 얻을 수 있는 것 같다. 우선, 일반 문자나 특수 문자를 입력해 보았으나, 어떠한 동작도 하지 않았다. 페이지 소스보기를 통해 소스코드를 살펴보겠다. 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\',\..
-
<Suninatas> 4번 문제Wargame/Suninatas 2021. 10. 24. 18:49
4번 문제 Plus버튼을 누르니 Point가 1씩 증가한다. 25까지 증가하고 그 위로는 증가하지 않는다. 페이지 소스보기를 통해 소스코드를 살펴보면, Point를 50으로 만들라는 힌트가 주어져있다. Point 입력 창에 49를 입력하고 Plus를 해도 "I like the SuNiNaTaS browser!" 알림만 뜬다. 또 다른 방법으로 'Burp Suite'를 이용해 Point의 값을 1부터 50까지 증가시켜도 알람만 뜬다. 50점을 만들라는 힌트 옆에 'Suninatas'라는 힌트에 주목한다. 문제 페이지에는 User-Agent와 Auth-key가 주어져 있다. User-Agent는 브라우저와 운영체제에 대한 정보를 웹사이트에 알려주는 용도이다. User-Agent값에 Suninatas를 입력하..
-
<Suninatas> 2번 문제Wargame/Suninatas 2021. 10. 21. 11:46
Suninatas 2번 문제 로그인 창만 띄워져 있다. 크롬의 개발자 도구(F12)를 통해 소스코드를 살펴보자. LEVEL 2   ID PW Authkey : ????? script내용을 살펴보면 ▶id와 pw가 같을 때 "You can't join! Try again"메시지를 띄우고, id 입력 폼에 포커스 되고, id와 pw값이 빈 문자열이 된다. ▶id와 pw가 다를 때 document.web02.submit()을 통해 id와 pw값을 서버에 전달한다. 소스코드 맨 아래에 id와 pw는 같다는 힌트가 있다. id와 pw입력 폼에 같은 값을 주고, console을 이용해 document.web02.submit()를 실행하면 인증 키 값을 얻을 수 있다. 이렇게 크롬의 개발자 도구(F12)의 c..