Operand should contains 1 column(s) 에러는 Error Based Sql Injection을 진행하는 과정에서 발생하는데 주로 where절에서 서브쿼리를 사용했을 때 발생한다. 에러를 해석해보자면 1 = (select 1, 2 from dual) 라는 구문이 있을 때 왼쪽에서는 1개의 column인데 오른쪽은 2개의 column이 서브쿼리의 결과로 나온다. 이 때 왼쪽의 컬럼의 갯수가 1개라는 부분이 에러에 드러나는 것이다. " 야 ! 나 왼쪽에 컬럼 1개여야 비교가능해 !! " 라는 뜻이다. 조금 더 생각해보면 row(1, 1) = (select 1, 2, 3 from dual) 의 경우 왼쪽의 컬럼의 수가 2개기 떄문에 Operand should contains 2 colu..
자주는 아니지만 가끔 인젝션 포인트가 order by절인 경우가 있다. 이런식으로 asc, desc 만 정해주는 인젝션포인트가 될 수도 있고, 아니면 정렬 기준까지 정해주는 인젝션 포인트 일수도 있다. 위 예시는 해당 포인트에 mysql_real_escape_string 함수가 적용되어 기본적으로 이스케이프 필터링이 적용되어 있는 상황이다. 이 때, 정렬 했을 때 동일한 데이터가 있다면 우리가 원하는 동작을 할 수 있다. reg_date로 정렬을 하는데 reg_date가 똑같은 데이터가 있으면 다음 정렬기준을 적용한다. 반드시!!!! 똑같은 데이터가 있어야한다!!! 우리는 바로 이 다음 정렬기준을 활용하여 원하는 쿼리문을 실행할 것이다. 일반적인 select문을 실행해 결과를 보는 형태는 안되고, 이런 ..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.