P_Squirrel
Squirrel Hack
P_Squirrel
전체 방문자
오늘
어제
  • 분류 전체보기 (428)
    • Wargame(Web) (173)
      • Webhacking.kr Writeup (58)
      • DreamHack Writeup (64)
      • Lord of SQLInjection (40)
      • Websec.fr (2)
      • Webgoat (1)
      • G04T war (7)
    • Wargame(Pwnable) (94)
      • DreamHack Writeup (68)
      • pwnable.xyz Writeup (20)
      • G04T war (6)
    • Wargame(Reversing) (26)
      • DreamHack Writeup (26)
    • Wargame(crypto) (6)
      • DreamHack Writeup (6)
    • Wargame(DigitalForensic) (41)
      • CTF-D Writeup (28)
      • DreamHack Writeup (6)
      • Suninatas Writeup (7)
    • Wargame(misc) (4)
      • DreamHack Writeup (4)
    • DreamHack CTF (21)
    • ångstrom CTF (6)
    • AmateursCTF (2)
    • BDSec CTF (5)
    • Hspace war (1)
    • Reference (42)
      • Language_Study (10)
      • Pwnable_Study (24)
      • Web Hacking_Study (3)
      • Linux (2)
      • Windows Kernel (1)
    • 자격증 공부 (2)
      • 정보처리기사 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 문

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
P_Squirrel

Squirrel Hack

Wargame(Web)/Lord of SQLInjection

(Lord of SQLInjection) dragon 문제

2022. 9. 25. 14:49

(Lord of SQLInjection) dragon 문제입니다.

id 부분에 guest가 입력되어있고 # (주석처리) 가 되어있는 상태입니다.

주석처리를 우회하고 pw부분을 공격하여 id=='admin'에 로그인을 성공하면 된다고 합니다.

 

먼저 항상 써오던 주석처리 #은 정확히 어디까지 주석처리를 해주는가 검색을 해보니

https://ar9ang3.tistory.com/7

 

웹해킹 SQLI 우회기법 정리 - Webhacking SQL Injection Bypass Honey Tips

지금까지 웹해킹 워게임을 풀면서 깨달은(?) 우회기법을 정리하려 합니다. 모두 수기로 기억나는대로 작성하다보니 빠진 부분도 있을 것 같습니다. 기억나는대로 추가해서 수정하겠습니다.  - o

ar9ang3.tistory.com

1라인을 주석처리 해주는데 %0a를 기준으로 나뉘어 진다고 합니다.

마침 문제사이트와 비슷한 코드도 나와있어 이를 참고해 인젝션할 코드를 작성해 삽입해보면

select id from prob_dragon where id='guest'# and pw=%0a||id='admin'#

select id from prob_dragon where id='guest' or id='admin'#

주석처리가 되어 두번째 코드와 같다고 볼 수 있습니다.

 

여기서 계속 guest가 떠서 한참을 삽질하면서 고민했습니다만

코드를 정리해서 잘 살펴보다가 실수 했다는 걸 찾았습니다.

 

참고자료로 사용한 위의 SQL인젝션 우회정리 사이트는 id='abc'로 없는 값을 예로 들었기에 가능한 코드였고

우리가 보는 워게임 사이트에는 id='geust' 라는 값이 존재하기에 or 구문으로 사용시

뒤에 작성한 id='admin'이 앞의 guest로 True가 되어 실행되지 않습니다.

 

해서 id='guest' 값을 False로 만들어주는 구문이 필요하고 and를 이용했습니다

id='guest' and 1=0 or id='admin'# 이 된다면 guest는 and 1=0으로 False가 출력되고

뒤의 id='admin'만 True가 되면서 가능해 집니다.

 

위의 내용을 토대로 인젝션할 code를 작성해보면 아래와 같이 작성할 수 있고 URL에 전달해보면

select id from prob_dragon where id='guest'# and pw=%0a and 1=0 ||id='admin'#

id=='admin'에 성공하면서 문제를 해결하였습니다.

'Wargame(Web) > Lord of SQLInjection' 카테고리의 다른 글

(Lord of SQLInjection) dark_eyes 문제  (0) 2022.10.09
(Lord of SQLInjection) iron_golem 문제  (2) 2022.09.27
(Lord of SQLInjection) xavis 문제  (0) 2022.09.21
(Lord of SQLInjection) nightmare 문제  (0) 2022.09.19
(Lord of SQLInjection) zombie_assassin 문제  (0) 2022.08.31
    'Wargame(Web)/Lord of SQLInjection' 카테고리의 다른 글
    • (Lord of SQLInjection) dark_eyes 문제
    • (Lord of SQLInjection) iron_golem 문제
    • (Lord of SQLInjection) xavis 문제
    • (Lord of SQLInjection) nightmare 문제
    P_Squirrel
    P_Squirrel

    티스토리툴바