Lord of SQL Injection이라는 sql인젝션을 실습해 볼 수 있는 사이트가 있어 실습을 해보았다.
접속을 하니 게임을 시작하는것 처럼 UI가 디자인되어있어 더 흥미 있게 느껴졌다.
간단한 규칙과 "던전 입장" 이라는 단어가 진짜 게임하는 거 같았다.
일단 입장을 누르면 로그인을 해야되는데 간단한 회원가입 후 로그인을 했다.
입장해보니 몬스터 이름으로 된 각각의 스테이지? 들이 있었고 하나하나 풀어가는 것 같다.
오늘 처치할 몬스터는 gremlin이다.
입장해보니 간단한 php문으로 이뤄져 있는 것을 볼 수 있다.
preg_match로 문자를 필터링 하고 있지만 싱글쿼터('), 더블쿼터("), 비교연산자 (or) 등이 필터링되어 있지 않아 ' or 1=1을 대입해보니 문제없이 들어갔다.
이러면 이 몬스터 처치는 거의 끝났다.
pw부분도 id와 같이 or 문을 사용하여 참으로 만들 수 있지만 사람은 귀찮음의 동물이므로 최대한 간단한 방법을 생각해 보자
우리가 c, 파이썬, 자바를 다룰 때도 코드에 주석 처리를 할 때가 있었는데 php문에도 주석이 있다.
아까 넣었던 ' or 1=1 뒤에 #을 넣어보자
므ㅏ...?
#이 입력이 안된다...?
옆에 있는 초코파이 하나 먹다가 %23을 입력해 봤더니
굿 b!
여기서 %23이란 url인코딩으로 #을 % + 16진수로 나타낸 것이다.
url인코딩에 대한 자세한 내용과 다른 문자들의 인코딩을 참조하고 싶으면
www.w3schools.com/tags/ref_urlencode.asp
url 인코딩은 자주 쓰이기 때문에 빈번하게 나오는 문자들은 외워두는 게 편하다.
이로써 gremlin 처치 성공~!
다음 몬스터를 잡으러 가보자~
'Web > Lord of SQL Injection' 카테고리의 다른 글
Lord of SQL Injection 6단계 (darkelf) (0) | 2023.03.09 |
---|---|
Lord of SQL Injection 5단계 (wolfman) (0) | 2023.03.08 |
Lord of SQL Injection 4단계 (orc) (2) | 2023.03.08 |
Lord of SQL Injection 3단계 (goblin) (0) | 2023.03.08 |
Lord of SQL Injection 2단계 (cobolt) (0) | 2023.03.07 |