인프런 커뮤니티 질문&답변
순차적 레코드 출력 문제 질문 있습니다.
작성
·
182
1
안녕하세요.
올해 4월 모의해킹쪽으로 취업하게 됬습니다.
웹 모의해킹쪽은 크리핵티브님의 강의가 매우 매우 매우 도움이 많이 되었습니다. 정말 감사하게 생각하고있습니다.
요번 프로젝트 중에 한가지 막히는 곳이 있었는데
DB2 데이터베이스를 사용하는 웹에서 블라인드 SQL 취약점이 발견되어 데이터 추출을 위해 파이썬으로 코드를 작성하여 데이터 추출 중이었는데 (협의가됨)
ORDER BY ASC / DESC (정렬을 이용) , FETCH FIRST 1 ROWS ONLY(한개씩) 를 통해서 추출중이었습니다.
DB, 테이블, 컬럼 추출에는 문제가 없었습니다.
하지만 데이터값 추출 시 첫번째 컬럼 데이터 뽑고 ,두번째 컬럼 데이터 뽑는식으로 진행하는데
첫 번째 컬럼의 첫 번째 데이터와 두번째 컬럼의 첫번째 데이터의 정렬이 맞지 않더라구요 (첫번째 컬럼기준으로 정렬이된 데이터와 ,두 번째 컬럼 기준으로 정렬을 한 데이터가 정렬이 맞지않음)
이런경우는 어떻게 해결할수있을까요 .. 정렬을 이용해서 컬럼과 테이블 추출 외 데이터값 추출같은경우에 목록화를 할때 정렬이 맞게 할수있는 방법이있을까요..
아 그리고 블라인드 SQL 인젝션 방법으로 한글데이터를 추출할수있는 방법이 있을까도 좀 궁금하네요..
감사합니다.
답변 1
0
안녕하세요.
도움이 되셨다니 정말 다행입니다.ㅎㅎ
정렬을 이용해서 순차적 레코드 출력을 할 경우의 문제점이, 첫 번째 컬럼의 데이터와 두 번째 컬럼의 데이터가 동일한 레코드가 아닌 부분이죠. 때문에 저는 첫 번째 컬럼 , 두 번째 컬럼 등... 여러 컬럼들을 한번에 합쳐서 출력을 해버립니다. 이를 테면 column1||'##'||column2 ... 이런 형태로 출력합니다. '##'은 컬럼을 구분하기 위한 문자구요. 이렇게 하면 해결이 되실겁니다.
한글에 대한 부분은 유니코드와 2byte 이 정도의 힌트로도 충분히 추론이 가능하실겁니다.ㅎㅎ
연구를 한번해보세요 ㅎ
감사합니다. 그리고 강의를 다 수강하시면 꼭 수강평 부탁드립니다.^^





