Information Security/General Technique

Webhacking.kr 22번 - Blind Sql Injection

hackcatml 2020. 2. 13. 01:46
반응형

uuid에 참쿼리(admin' and 1=1#)를 넣었을때의 반응

 

uuid에 거짓쿼리(admin' and 1=2#)를 넣었을때의 반응

 

참, 거짓쿼리일때의 응답값이 다르므로 blind sql injection이 가능

친절하게 id, pw컬럼이 있다는 것을 알려줬고, 로그인 id는 admin이므로 pw컬럼의 데이터만 추출해내면 됨

 

우선 pw컬럼 데이터의 길이를 알아내는 공격 코드는 다음과 같음

uuid=admin'%20and%20length(pw)=1

 

BurpSuite의 Intruder에서 Position 세팅

 

페이로드 세팅. 넉넉하게 1~100으로 설정

 

Start attack. 설정한 Position의 값이 1~100까지 변하면서 공격을 수행함.

응답값의 길이차이를 확인한 결과 pw컬럼의 데이터의 길이는 32자인것을 확인

 

이제 pw컬럼의 데이터를 추출하는 공격 코드는 다음과 같음

uuid=admin'%20and%20ascii(substring(pw,1,1))=1%23

 

BurpSuite의 Intruder에서 Position 및 Attack type세팅.

Position이 두개이므로 Attack Type은 동시 공격을 위한 Cluster Bomb으로 세팅(Cluster Bomb기능은 버프 프로버전에서만 지원됩니다. 버프 프로는 어렵지 않게 찾을 수 있지만, 정품 사용을 권장합니다)

 

페이로드 세팅.

1번째 페이로드는 데이터의 길이가 32자이므로 1~32까지 1씩 증가.

 

2번째 페이로드는 ascii문자에 대응하는 33~123까지 1씩 증가(http://www.asciitable.com/)

 

Start attack.

 

결과값을 엑셀에 ctrl + c, v

10진수를 대응하는 ascii문자로 바꿔주는 vba코드는 다음과 같음

Sub test()
    lastrow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
    Set myrange = Range("c2:c" & CStr(lastrow))
    
    For Each my_range In myrange
        my_range.Offset(0, 1).Value = Chr(my_range)
    Next
End Sub

 

해석 결과 패스워드는 md5해쉬되어 있는 6c9ca386a903921d7fa230ffa0ffc153 임을 확인

 

md5 decrypt사이트(https://www.md5online.org/md5-decrypt.html)에 질의하면 해결

반응형