안녕하세요
베비온입니다.
이번엔 게시판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 |