[LOS] 3. goblin
Web/Web Hacking (Wargame)

[LOS] 3. goblin

728x90

source code

  • 이번에는 필터링되는 문자들이 추가되었다 ⇒ 따옴표들을 사용할 수 없다!
    • _ . \
    • ' " `
  • 이번에는 화면에 출력되는 쿼리문 중 id 값은 항상 guest로 고정되어 있다.
  • id는 입력받지 않고, "no" 변수만을 GET 방식으로 입력받는다. 
    id 변수에 직접 입력받지 않고 no 를 통해 'id' 값을 admin으로 수정해야한다.
  • id 의 값이 True일 때 Hello __ 문이 출력된다.
  • id의 값이 admin일 때 goblin 해결이다.

try

우선 어떻게 해결해야할 지 감이 오지 않아 no 변수에 0부터 값을 넣어봤다.

0을 넣을 때는 출력되는 쿼리창의 no 값이 0으로만 바뀐다.

1을 넣었을 때 Hello guest 가 출력된다.

즉, id=1 & no=1 일 때 True가 되는 것이다. (guest)

하지만 현재 우리의 목표는 true로 만드는 것이 아니라 id를 "admin"으로 만드는 것이기 때문에 no=1 인 조건은 피해야한다!

solution

고려해야할 사항
1. $result['id'] != True
2. 따옴표(', ") 필터링 우회

1번 조건은 no에 1이 아닌 값을 줌으로써 쉽게 해결할 수 있다.

2번 조건의 경우 char() 함수를 사용해 문자열에 대한 따옴표 필터링을 우회할 수 있다!

char( ) 함수는 내부에 인자로 주어지는 아스키 코드 값을 문자로 변환해주는 역할을 한다.
따라서, admin에 해당하는 아스키코드 값을 찾아 char 함수 안에 넣어주면 'admin'을 주는 것과 같아진다!
※ 10진수로 줘야한다!

ASCII 변환 표

admin ⇒ 97, 100, 109, 105, 110

 

더보기

no=2 or id=char(97, 100, 109, 105, 110)

성공~

 

SMALL

'Web > Web Hacking (Wargame)' 카테고리의 다른 글

[Dreamhack] Carve Party  (0) 2022.04.24
[HackCTF] hidden  (0) 2021.08.13
[HackCTF/Web] 1번. /  (0) 2021.08.09
[LOS] 2. cobolt  (0) 2021.08.07
LOS Gremlin  (0) 2021.08.07