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

caputdraconis

페이지 맨 위로 올라가기

caputdraconis

네트워크 관점에서의 클라우드 컴퓨팅을 공부하는 중입니다 :)

[LOS / LORD OF SQL INJECTION] gremlin

  • 2020.08.16 06:28
  • Security/WebHacking
글 작성자: caputdraconis
반응형

los.rubiya.kr/gate.php

 

https://los.rubiya.kr/gate.php

 

los.rubiya.kr

 

LOS의 goblin 문제를 풀어보았다. 

<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); 
  if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); 
  $query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id']) echo "<h2>Hello {$result[id]}</h2>"; 
  if($result['id'] == 'admin') solve("goblin");
  highlight_file(__FILE__); 
?>

저번 단계와 차이점은 ' | " | ` 을 필터링 한다. admin 과 같은 문자열을 전달하는 것을 필터링하는 것으로 보인다. 

미리 작성되어 있는 쿼리문을 살펴보면, id는 guest로 정해져있다. 하지만 우리는 id 값이 admin이여야 문제를 풀 수 있다. 그렇기에 이 id='guest' 부분을 무력화시켜야 한다. 뒤 no에 틀린 값을 줌으로써 id='guest' 부분을 무력화시킬 수 있다. 일단 no에 1을 넣어보자.

정상적으로 Hello guest가 뜨는 것으로 보아 guest라는 id에 맞는 no 값은 1인거 같다. 그럼 다른 값을 줘보자!

 

 

이로써 guest라는 id의 no값은 1인 것을 알 수 있다.

그럼 앞에서 말했던 것처럼 일부러 틀린 no 값을 주고 뒤에 or id='admin'을 붙여주면 앞의 식이 무효화되고 뒤의 id='admin'이 본 식이 되면서 쿼리문은 select id from prob_goblin where id='admin'이 될것이다.

 

이대로 가보쟈!

작은 따옴표로 인해 No Quotes ~_~가 출력된다. 흠 그럼 admin을 hex코드로 변환해서 넣어보자 확!

https://www.online-toolz.com/langs/ko/tool-ko-text-hex-convertor.html

 

16 진수 변환기 텍스트 - 온라인 도구

In mathematics and computer science, hexadecimal (also base 16, or hex) is a positional numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0–9 to represent values zero to nine, and A, B, C, D, E, F (or a

www.online-toolz.com

admin은 헥스코드로 61646d696e이고 이를 주소에 넣을때는 이것이 헥스코드임을 알려주는 0x를 앞에 붙여서 넣어주자. 즉

?no=9191 or id=0x61646d696e가 될 것이다. 도젼

률류~

반응형

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [root-me.org - Web-Client] Javascript - Authentication

    [root-me.org - Web-Client] Javascript - Authentication

    2020.09.14
  • [Webhacking.kr] Challenge old-33

    [Webhacking.kr] Challenge old-33

    2020.08.16
  • [Webhacking.kr] Challenge old-11

    [Webhacking.kr] Challenge old-11

    2020.08.15
  • [Webhacking.kr] Challenge old-10

    [Webhacking.kr] Challenge old-10

    2020.08.14
다른 글 더 둘러보기

정보

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

caputdraconis

  • caputdraconis의 첫 페이지로 이동

검색

메뉴

    카테고리

    • 분류 전체보기 (168)
      • Cloud (3)
      • Computer Network (12)
      • Database (2)
      • Terraform (2)
      • 🥚고리즘 (13)
      • 겅부겅부🙃 (10)
        • Naver CS50 코칭스터디 (2)
        • Machine Learning (1)
        • Computing System (6)
      • 언어&프레임워크 (20)
        • Python (4)
        • Django (10)
        • Node JS (1)
        • C++ (2)
        • Java (1)
        • Flutter (2)
      • Security (76)
        • WebHacking Study (11)
        • 지옥방 스터디 (22)
        • 여름방학 스터디 (2)
        • PWN Study (6)
        • SUA Reversing Study (3)
        • PWN (3)
        • WebHacking (20)
        • Reversing (4)
      • 알고 있으면 도움되지 않을까,,? (23)
      • 일상다반사 (1)
      • 근황 정리 (1)
      • 42 Seoul (1)
        • Setting (1)

    최근 글

    인기 글

    댓글

    공지사항

    아카이브

    태그

    • 파이썬기초
    • 드림핵
    • 리스트함수
    • old-16
    • 웹해킹.kr
    • Python
    • 파이썬함수
    • 파이썬

    나의 외부 링크

    • Github
    • solved.ac
    • caputdraconis@kakao.com

    정보

    caputdraconis의 caputdraconis

    caputdraconis

    caputdraconis

    블로그 구독하기

    • 구독하기
    • RSS 피드

    방문자

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

    티스토리

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

    티스토리툴바