webhacking.kr - old 49

2024. 3. 29. 13:17·Wargame/Webhacking.kr

 

 

문제화면이다.

 

소스코드를 확인해 보자.

 

 

 

 

 

 

 

 

 

 

 

 

 

중요한 부분을 따로 봐보자.

 

 

 

 

<?php
  if($_GET['lv']){
    $db = dbconnect();
    if(preg_match("/select|or|and|\(|\)|limit|,|\/|order|cash| |\t|\'|\"/i",$_GET['lv'])) exit("no hack");

 

 

$GET에서 'lv' 값을 확인한다.

 

preg_match 함수로 필터링을 한다.

해당 필터링은

 

select, or, and, limt, order에 대한 SQL 구문 필터링

슬래시 , 공백, 싱글, 더블쿼터, tab 

 

이 막혀있다.

 

 

  $result = mysqli_fetch_array(mysqli_query($db,"select id from chall49 where lv={$_GET['lv']}"));
    echo $result[0] ;
    if($result[0]=="admin") solve(49);
  }

 

 

GET 요청을 통해 lv 받을 값을 할당하여 chall49 테이블에 있는  id 열을 확인한다.

 

 

그럼 필터링을 우회해서 id 가 admin을 불러와야 한다.

코드를 통해서 id라는 이름의 열이 있다는 것을 확인했다.

 

 

 

 

 

 

 

 

 

 

 

 

근데 lv 값이 이미 부여된 lv=1, lv=2, lv=3, lv=4 들은 넘기고

 

 

 

 

 

 

 

 

아무 값이 뜨지 않는 lv=5를 위주로 해보자.

 

일단은 필터링에 'admin'에 싱글쿼터를 사용할 수 없으니 저번문제에서 풀었을 때 사용했었던 16진수로 admin이라는 문자열을 치환하도록 하자.

 

or, and 가 막혔긴 했지만 "||,&&" 특수기호 논리연산자로 바꿔 쓰면 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고로 lv=1,2,3,4에서는 and 연산자인 '&' 를 쓰면 문제가 해결된다.

'Wargame > Webhacking.kr' 카테고리의 다른 글

webhacking.kr - old 46  (1) 2024.03.29
webhacking.kr - old 34  (1) 2024.03.29
webhacking.kr - old 61  (1) 2024.03.28
webhacking.kr - old 47  (0) 2024.03.28
webhacking.kr - old 36  (0) 2024.03.28
'Wargame/Webhacking.kr' 카테고리의 다른 글
  • webhacking.kr - old 46
  • webhacking.kr - old 34
  • webhacking.kr - old 61
  • webhacking.kr - old 47
G_OM
G_OM
최대한 설명 열심히 하려고 합니다. 궁금한 거 있으면 언제든지 물어보셔도 좋습니다.
  • G_OM
    끄적끄적
    G_OM
  • 전체
    오늘
    어제
    • 분류 전체보기 (139)
      • 모의해킹 (8)
      • Wargame (69)
        • Linux_bandit (33)
        • Webhacking.kr (36)
      • DreamHack (52)
        • WEB (14)
        • Reverising (9)
        • System (0)
        • CTF (22)
      • Android_security (5)
      • 정보보안기사 (2)
      • IT? (3)
  • 블로그 메뉴

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

  • 공지사항

    • DreamHack 에 대한 문제들...
  • 인기 글

  • 태그

    리눅스
    워게임
    webhacking.kr
    sql injection
    Linux
    drozer
    insecurebankv2
    정보보안기사
    lfi
    url encode
    php wrapper
    리눅스 워게임
    bandit20
    bandit17
    overthewire
    Cookie
    안드로이드
    bandit30
    Android
    webhacking
    난독화
    wargame
    Dreamhack
    cookies
    php
    bandit18
    bandit
    CTF
    Linux wargame
    union
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
G_OM
webhacking.kr - old 49
상단으로

티스토리툴바