web_security/Lord Of SQL

[LOS : Lord Of SQL Injection] 3번 Goblin 문제 풀이

HawordFREAKEK 2022. 6. 4. 13:57

네 안녕하세요. Godhaword 입니다.

바로 문제 보시죠

 

일단 2번 문제에서 문제 풀기 전에 잘 읽으라고는 했는데 저도 잘 안읽는 편이긴 합니다.

 

  $query = "select id from prob_goblin where id='guest' and no={$_GET[no]}";

3번부터 Query 문을 제대로 이해하고 있는지에 대해 물어보는 문제가 나오기 시작합니다.

  1. or은 더하기(+) 이고 and 는 곱하기(*) 로 알아두시면 편합니다.
  2. 참은 1, 거짓은 0으로 생각하시면 편합니다.
  3. 저희가 쿼리를 입력하기 전 부분은 최대한 거짓의 형태로 0을 만들어두면 편합니다.

no에다가 그냥 ' or 1=1#을 입력하면 어떻게 되나 일단 봅시다.

 

' (싱글쿼터) 가 필터링이 되어 No Quotes 라는 창이 뜨는 것을 확인 할 수 있습니다.
그러면 싱글쿼터를 안쓰고 넘어가면 되는데요.
no 부분에 guest의 no 값인 1과 다른 수를 입력해주고 그 뒷부분을 우회해서 적은 admin 값으로 넘겨줍시다.

저는 id를 hex값으로 바꾸어 넘겨주겠습니다.

admin을 hex로 encoding하면 61646d696e라는 값이 나옵니다(다른 CTF에서도 많이 나올 수도 있으니 이 값은 어디다가 저장해두세요)

 

위처럼 날리면 논리 연산에 의하여

id='guest' and no=2 or id=0x61646d696e

앞부분이 같이 사라지고 뒤에 id='admin' 이라는 값만 남게 됩니다.
이 외에도 chr값으로 넘긴다거나 하는 등의 여러가지 방법이 있습니다.

 

  • 이번문제로 알 수 있는 것
    - 문자형의 "admin" 말고도 인코딩하여 다른 꼴로 필터링을 우회할 수 있다.
    - or 과 and 는 생각하기 쉽게 더하기 곱하기로 생각하자
  • Key Point

admin=hex(0x61646d696e)
admin=ascii(97 100 109 105 110)

 

3번부터는 아애 초심자라고 보기보단 어느정도 이해한 초심자라고 보는게 좋을 것 같네요

https://godhaword.tistory.com/472
https://godhaword.tistory.com/473

 

[WebHacking] SQLI(SQL Injection) 필터링 우회 및 기법 총 정리

네 안녕하세요. Godhaword 입니다. 저번에 SQLI 관련 글을 쓰면서 큰 기초 뼈대 위주로 설명을 드렸습니다. https://godhaword.tistory.com/472 [WebHacking] SQLI(SQL Injection) 이란?(New) 네 안녕하세요. Godh..

godhaword.tistory.com

 

[WebHacking] SQLI(SQL Injection) 이란?(New)

네 안녕하세요. Godhaword 입니다. 원래 1주일에 하나 정도 쓸까 생각했는데 XSS 이야기 하면서 SQL Injection 이야기를 너무 비중있게 다뤘더라구요. 예전에 글을 썼던 2019년의 제가 생각하던 웹 해킹(We

godhaword.tistory.com