본문 바로가기
Hacking/SQL Injection

4. 게시판의 컬럼 갯수 알아내기

by 혁이 2017. 4. 27.
반응형


안녕하세요


베비온입니다.


이번엔 게시판list.php에서 사용되는 DB의 컬럼 갯수를 세보도록 하겠습니다.


이 방법은 다른 query에서도 유효합니다. 로그인페이지에서도 사용가능합니다.




해당 페이지에서 사용되는 컬럼의 갯수를 세기 위해 order by 라는 옵션을 사용합니다.


ORDER BY [Column] [ASC|DESC]

지정한 column을 기준으로 오름(ASC)|내림차순(DESC)을 합니다.

column명으로 지정해도되고 column의 번호를 써도 됩니다. 순서는 앞에서부터 차례로 1,2,3 ... 이됩니다.

column만 지정하고 오름(내림)차순을 생략할 경우 default값인 오름차순을 합니다.


list.php의 검색에 order by를 해서 오류를 검색해 냅니다.


' order by 1 -- 


sql은 어떻게 들어가있을까요??


select id,thread,depth,name,email,title,comment,wdate,see,cmt_cnt,filename from listt where title like '%' order by 1 -- %' order by thread desc limit 0,10


입니다.


sql을 보시면 ~~~~한 것들을 listt테이블에서 검색한다. order by 1이니까 첫번째 필드인 id를 기준으로 오름차순 정렬하여 검색을 합니다.


이제 차례로 order by 2, order by 3, order by 4 로 계속 숫자 올라가면서 입력해 줍니다.



이런 식으로요


올라가다 보면 결과가 아예 안뜨는 창이뜹니다.


여기서 우리는 이 게시판에서 사용하는 컬럼의 갯수가 11개인 것을 알 수 있습니다.


이유는


~~한 사항들을 검색하고 ㅇㅇ번째 필드를 기준으로 정렬한다.


인데 그 ㅇㅇ번째 필드가 없으니 정렬을 할 수가 없어서 에러를 발생시킵니다.


이렇게 11개의 갯수를 알아내었고 다음엔 이것을 이용하여 sql injection을 해보겠습니다.



반응형

'Hacking > SQL Injection' 카테고리의 다른 글

5.SQL Injection를 위한 UNION  (0) 2017.04.27
3.SQL Injection - 로그인 우회하기  (0) 2017.04.24
2.SQL Injection의 종류  (0) 2017.04.24