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
반응형
'Archive > Hacking' 카테고리의 다른 글
Lord of SQL Injection 6단계, darkelf 풀이 (0) | 2019.10.29 |
---|---|
Lord of SQL Injection 5단계, wolfman 풀이 (0) | 2019.10.29 |
Lord of SQL Injection 4단계, orc 풀이 (0) | 2019.10.29 |
Lord of SQL Injection 3단계, goblin 풀이 (0) | 2019.10.27 |
Lord of SQL Injection 2단계, cobolt 풀이 (0) | 2019.10.27 |