Hacking/Web.

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