본문 바로가기
정보보안/Web Hacking

[SQL Injection] - SQL injection attack, querying the database type and version on Oracle ( OracleDB 버전 조회하기)// PortSwigger 예제

by 우동이 2020. 8. 11.
300x250

 

 

문제 5


sql injection 문제 5번이다 

이번 문제는 OracleDB의 Version과 타입을 조회하라는 문제인듯 한데

동일하게 union을 사용해야한다

노트를 살펴보면 DUAL 이라는 기본 테이블이 존재하는데

DUAL 테이블의 쿼리를 조회해야 한다는 힌트인거같아



DB버전을 알려주는 메시지가 같이 있는듯 한데

흠 사실 그렇게 의미가 없는 메시지인것같아 

좀더 아는게 많다면 저기서도 뭔가 정보가 나올수도 있겠지만 ..

아무튼 동일하게 카테고리 항목으로 들어와서 쿼리 삽입을 진행하겠다



'union select null,null from DUAL--

DUAL 테이블에 NUll 쿼리를 조회 했다 

결국 컬럼 개수를 알기위해 삽입한 코드인데

컬럼의 개수는 두개가 확실한 상황으로 판명났다


 


'union select 'ASD','asdfasdf' from Dual--

쿼리 개수가 판정났으니 값을 삽입해서 쿼리를 정확히 판별한다

둘다 문자열이고 게시글에 드러났는데

아마 Version 정보는 게시글 제목이 아닌 게시글 내용 -> 'asdfasdf'부분에 출력될것이다 그러면 

버전 정보를 조회하는 코드를 게시글 내용에 삽입한다

DB별 버전정보 조회 코드는 아래에 정리되어 있다

https://hobbylists.tistory.com/entry/%EC%9B%B9-%ED%95%B4%ED%82%B9-Sql-Injection-%EB%B2%84%EC%A0%84%ED%99%95%EC%9D%B8-%EB%AA%85%EB%A0%B9%EC%96%B410v?category=917709

 


Oracle DB 버전정보 조회는 두 코드로 가능한데

첫번쨰 코드를 사용해서 조회해보도록 하겠다

그리고 쿼리가 두개 있으므로 

null 하나가 추가되어야 하니

'union select null,banner from v$version--

이렇게 작성하면 된다 그럼 그대로 삽입해보겠다


 


코드를 실행하니 문제가 해결되었다는 메시지와 함께

버전정보가 전부 출력되었다

아까 초반에 나와있던 버전 정보들이 그대로 출력된걸보니

이 정보들 자체가 들어있다는걸 알려주는 메시지였나보다

 

300x250

댓글