SQLi 테이블에 있는 칼럼의 갯수
2016. 11. 27. 21:36
SQL injection
SQL i로 테이블에 있는 칼럼의 갯수를 알아보고 싶다. 물론 수학처럼 같은 문제에 대해서 풀 수 있는 방법이 무한하게 많지만, 여기 내가 알고 있는 모든 방법들을 써보도록 하겠따
Union sql i로 알아오기
union sql injection으로 칼럼 명을 알아오도록 할 때는 쿼리가 조금 길어진다.
select * from tableName
이런 쿼리가 있을 때
select * from tableName union select 1, 2, 3 ...
이런 식으로 union에서 select 하는 갯수를 늘려가면서 칼럼의 수를 찾을 수 있다. 위의 쿼리에서는 오류가 나지 않으면 union에서 select 하는 갯수만큼의 칼럼을 갖고 있다고 볼 수 있다.
order by 사용하기
의외다. order by는 아니지 않는가 생각도 하겠지만, 예상외로 이걸로도 칼럼의 갯수를 갖고 올 수 있다.
select * from table where id ='admin' order by 1 #True
select * from table where id ='admin' order by 5 #False
select * from table where id ='admin' order by 3 #True
select * from table where id ='admin' order by 4 #False
이렇게 칼럼 수를 갖고 올 수 있다. 참고로 위의 쿼리에서는 칼럼의 갯수가 3개이다.
더 있는데 나도 모르겠고, 추후 알아내면 올리도록 해야겠다.
제게 이런 방법들을 알려주신 '박광호'님에게 감사인사 드립니다.
'Hacking > Web.' 카테고리의 다른 글
[SQLi] like 비교에서의 blind injection (0) | 2016.12.17 |
---|---|
[SQL injection] _(언더바) (0) | 2016.12.17 |
[wargame.kr] Simple Board solving... (2) | 2016.11.27 |
[wargame.kr] tmitter solving... 2일차 (3) | 2016.11.24 |
SQL 서브쿼리 (0) | 2016.11.23 |