본문 바로가기
Web/Lord of SQL Injection

Lord of SQL Injection 1단계 (gremlin)

by jh117jh 2023. 3. 7.
728x90

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

 

HTML URL Encoding Reference

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com:443

url 인코딩은 자주 쓰이기 때문에 빈번하게 나오는 문자들은 외워두는 게 편하다.

 

 

이로써 gremlin 처치 성공~!

 

다음 몬스터를 잡으러 가보자~

 

728x90