728x90

 

문제를 들어가면 또 이렇게 아이디와 비밀번호를 입력할수있는 창만 주어져있다. 일단 들어와보니 저렇게 뭔가를 쳐놨다. 글자수보니 비밀번호도 guest로 했을 것 같다. 일단 Login을 눌려보자.

 

 

들어가보니 admin으로 로그인하면 풀리는 문제라고 친절하게 써줬다.

 

 

그리고 이 문제를 들어가기전에 힌트를 보면 저렇게 padding oracle 취약점을 아냐고 물어보고있다. 내가 앞에 문제들을 건너뛰고 이 문제를 푸는 이유기도 한 padding oracle 취약점은 이 블로그의 관련글에 설명해두었다.

 

 

일단 쿠키값을 보면 L0g1n이라는 이름으로 되어있고 값이 나와있다.

 

 

쿠키값이 무슨 역할을 하는지 알아보기 위해서 아무값이나 넣고 새로고침하니 iv가 유효하지 않다고 뜬다. 일단 그러면 guest를 암호화하려면 패딩은 무조건 했을것이다. 그리고 iv를 유추해야될것이다. 이래서 padding oracle attack을 쓰라고 한것같다. 저것들을 이용해서 코드를 짜보자. 일단 iv를 유추하고 그다음 xor연산을 이용하여 키를 만들면 될것이다.

 

 

10분정도 지나니 키가 나왔다. 아직 안익숙해서 그런지 굉장히 어려운 문제였다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'wargame > wargame.kr' 카테고리의 다른 글

[wargame.kr] 13번 tmitter 풀이!!!  (0) 2017.12.27
[wargame.kr] 12번 type confusion 풀이!!!  (0) 2017.12.27
[wargame.kr] 11번 strcmp 풀이!!!  (0) 2017.12.27
728x90

 

이 문제에 대한 힌트이다. 32글자까지만 들어갈수있다. 이걸 이용해서 풀수있을것 같다.

 

이번 문제는 첫화면을 조금 신경써서 만든것 같다. 일단 admin이라는 id가 필요하다고 했으니 만들러 가보자. Sign Up을 클릭해보자.

 

 

와 이것도 예쁘게 꾸며놨다. 일단 소스를 보자.

 

 

소스를 보면 id와 pw에 길이제한이 걸려있다. 길이제한을 대충 늘린다음에 admin을 치고 띄워쓰기로 33번째에 a를 쳐서 admin으로 가입하는게 가장 좋을것같다. 그렇게 해주고 Sign in을 눌려보자.

 

 

왼쪽 상단에 이렇게 ID와 PW를 입력할수있는 창이 생겼다. 아까 가입한걸로 로그인 해보자.

 

 

이렇게 flag가 떴다. 이번것은 trim함수에 관한 취약점인것 같다.

 

 

 

728x90

 

문제에 들어가보면 또 이렇게 되어있다. 항상 하던것처럼 view-source를 눌려서 소스를 보자.

 

 

소스를 보면 POST방식으로 json변수에 값을 넣어서 전달하고 그 값의 key가 생성된 key와 같으면 flag를 내놓는다. 그러면 일단 json={"key":true}를 보내보자. 아마 이러면 php의 특성상 풀릴것이다.

 

 

 

이렇게 버프슈트를 이용해서 값을 보내주었다.

 

 

그러자 이렇게 flag값이 나왔다. 이 문제도 그냥 php의 취약점을 물어보는 문제 같았다.

 

 

 

 

'wargame > wargame.kr' 카테고리의 다른 글

[wargame.kr] 13번 tmitter 풀이!!!  (0) 2017.12.27
[wargame.kr] 11번 strcmp 풀이!!!  (0) 2017.12.27
[wargame.kr] 9번 md5 password 풀이!!!  (0) 2017.11.04
728x90

 

처음 시작하면 저렇게 화면이 뜬다. view-source를 눌려서 소스를 보자.

 

 

소스를 보면 단순하게 POST로 값을 전달한것을 password와 비교해서 같으면 flag를 보여준다. strcmp로 비교를 하는데 이때 strcmp의 취약점을 이용하면 된다. strcmp는 입력인자로 배열을 받으면 0이나 NULL을 반환한다. 딱맞춰서 ==으로 비교를 해주고있다. 그러면 한번 배열로 넣어보자.

 

 

 

이렇게 배열로 바꾸어놓고 아무값이나 입력을 해보자.

 

 

역시 flag가 나왔다. 이 문제는 strcmp의 기본적인 취약점을 물어보는 문제였다. 저렇게 취약점이 안나오게 ===을 이용하는 습관을 들여야겠다.

 

 

 

 

728x90

 

들어가면 저렇게 되어있다. get source를 눌려서 소스를 보자.

 

 

md5를 쓸때 두번째 인자에 true를 넣어주었다. 그렇게되면 길이가 16인 바이너리형식으로 리턴을 하게된다. 이때 sql injection을 쓸수 있다. $pw에 md5로 hash했을때 쿼리문이 나오는값을 넣어주면 풀릴것같다. 129581926211651571912466741651878684928를 넣어보자.

 

 

pw가 나온다. 이것도 소스를 해석하면 풀리는 문제였다.

 

 

 

 

728x90

 

문제를 들어가면 이렇게 되어있다. 일단 view-source를 눌려서 소스를 보자.

 

 

소스를 보면 v1은 알파벳으로만 구성되어야 되고 v2는 숫자로만 구성되어야 된다. 그리고 v1과 v2를 md5로 hash한것이 같아야한다. 그러나 v1과 v2의 md5로 암호화한 값을 완전히 같게해주는 것은 무리가있다. 그래서 php magic hash취약점을 써야된다. 문자열이 아닌 0e로 시작되는 값을 float값으로 인식하여서 0=0으로 비교해주게 하면 된다. 구글링해보자.

 

 

이렇게 넣어주면 두개다 0e로 시작하게된다. chk를 눌려보자.

 

 

flag값이 나왔다.  소스코드만 잘 해석하면 되는 문제 같다.

 

 

 

 

 

 

 

 

 

 

 

728x90

 

 

문제를 들어가면 이렇게 게임이 나온다. 일단 게임을 한번 해보자.

 

 

31337점을 얻어야되는것 같다. 피들러로 들어가서 바꿔보자.

 

 

이렇게 점수를 31337로 바꿔주고 Run to Completion을 눌려주자.

 

 

그러면 이렇게 키값이 나온다. 그냥 간단한 문제였다.

 

 

 

 

 

 

728x90

 

문제를 들어가면 이런 화면이 나온다. 일단 소스를 보자.

 

 

admin으로 들어가면 접근을 거부한다. 그러면 /를 넣어서 오류페이지로 접근해보자.

 

 

 

/db/wkrm_admin.db로 들어가보면 될것같다. 그러면 db를 다운받을수있다. 오류페이지에서 db가 sqlite3라는 것을 알아냈다. sqlite db browser로 열어보자.

 

 

이렇게 안풀어도 internet explorer로 보면 바로 보인다.

 

 

어쨌든 저 값을 다시 url에 넣어보자.

 

 

flag가 나온다. 그냥 기본적인 문제였다.

728x90

 

들어가면 이렇게 나와있다. 일단 저기 밑에 소스코드를 다운받은후에 .ws를 구글링했다. 그러자 바로 화이트스페이스라는 것으로 코딩되어있다는 것을 알게되었다. 다시 구글링으로 해석기를 찾았다. http://ws2js.luilak.net/interpreter.html 이곳에서 저것을 돌려보았다.

 

 

그러자 키가 바로 나왔다. 그냥 이건 구글링 실력을 보는 문제 같았다.

728x90

 

들어가면 그냥 일반적인 로그인폼이 보인다. 친절하게 소스를 보라고 링크까지 걸어줬다. 한번 보자.

 

 

이부분을 보면 id가 guest일때랑 blueh4g일때 필터링을 한다. 그런데 필터링은 php에서 하는데 php는 대소문자를 구분한다. 그러나 로그인이 맞는지 확인하는 것은 mysql이므로 그냥 대문자로 바꾸어서 입력하면 풀릴것같다.

 

 

역시 풀렸다. 이문제는 그냥 php와 mysql의 차이점을 알고있는지 묻는 간단한 문제였다.

'wargame > wargame.kr' 카테고리의 다른 글

[wargame.kr] 5번 WTF_CODE 풀이!!!  (0) 2017.10.31
[wargame.kr] 3번 flee button 풀이!!!  (0) 2017.10.31
[wargame.kr] 2번 QR CODE PUZZLE 풀이!!!  (0) 2017.10.30

+ Recent posts