if등의 조건문이 전부 막혔을시 이전 글에서 coalesce라는 이상한 함수를 써서 해결했었는데
페이스북 그룹 생활해킹에서 또다른 해답이 올라왔는데 너무 좋은 방법같아서 포스팅...
Izayoi Sakuya님의 방법인데..
이런식으로도 할수 있다고 함.. 우와 신기... 더 아래 댓글에서 union은 내부적으로 임시 테이블을 만들고
쿼리문의 결과를 테이블화 한 후에 리턴하므로 저런 에러가 발생하는것 같다고 추측하셨음..
어제 적었던
a' or coalesce(substr~ or null, (에러나는서브쿼리)); 나 이 글의
a' or (select 0x~ union select substr~); 를 조합하면 엄청나게 많은 벡터가 생성될듯.
다만 위 구문은 or이 안막혀있어야 하고, 아래구문은 select,union같은 문자열이 막히면
공격벡터 생성이 힘들것같다. 몇개만 더 발견하면 진짜 무한대의 가능성이 엿보일듯
---------------------------------------------------
추가 : 문제 제작자분도 이렇게 푸는게 원래 의도라고 한다.
or (select 32~128 union select ascii(substr(pw,1,1))); 요런식이면 더 가독성이 좋다고 하네요.
'webhacking > sql, sql injection' 카테고리의 다른 글
information_schema (0) | 2014.09.28 |
---|---|
wargame.kr lonely_guys (0) | 2014.09.28 |
rubiya.kr 19번. (0) | 2014.09.10 |
mysql hex()함수에 관해서 (0) | 2014.09.06 |
rubiya.kr 15번. (0) | 2014.09.06 |