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진수로 줘야한다!
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 |