본문 바로가기
Web Hacking/LOS (sql injection)

Lord of SQL Injection 1단계, gremlin 풀이

by 코뮤(commu) 2019. 10. 27.
728x90
반응형

 

 

 

 

 

요즘 하루 한 개씩 풀고 있는 sql injection 문제다.

기초도 쌓이고 아직까지 그렇게 높지는 않아서 재밌게 풀고 있다.

 

 

 

사진 속 gremlin을 클릭하면, 잡다한 코드가 나온다. 분석해보자.

 

 

 

 

 

 

 

 

 

난 복잡한 코드를 보면 뇌가 정지되는 병이 있어서 한 3분간 주춤했다.

그런데 따지고 보면 그다지 어렵지는 않은 코드다.

중요한 코드들만 뽑아서 문제를 해결해 보자!

 

 

 

 

 

  • preg_match 함수는 정규표현식 함수이다. 쉽게 말해 저 정규식에 포함되는 문자가 들어가면 exit된다는 뜻이다.
  • $_GET[ ]은 우리가 url창을 통해 직접 입력이 가능하다. 즉, 임의로 변경할 수 있는 값이다.
  • mysql에서는 한 줄 주석을 #으로 주로 처리하는데, --로도 가능하다는 사실을 최근에 알았다.
    --로 할 시 이후 공백이 반드시 들어가야 한다.
  • 뒷부분이 주석처리가 되다 보니 where 구문은 id=' or 1=1이라는 아주 default 한 구문으로 이루어지는데,
    이 1=1 구문 때문에 항상 참 값을 갖게 되어 해당 테이블에 있는 모든 id값이 출력된다.

 

 

 

 

 

 

 


 

 

 

 

정답은 더보기 클릭!

 

 

더보기

 

 

 

 

 

 

' or 1=1 구문을 이용해 항상 참이 되어 모든 값을 가져온다는 가장 기본적인 sql 인젝션이다.

만약 query문이 잘 이해가 가지 않는다면 데이터베이스 공부를 더 하도록 하자!

728x90
반응형