webhacking.kr 27번

sql 인젝션을 활용한 문제다.

소스를 살펴보면 r의 id가 admin이어야 한다.

또 preg_match함수가 사용되었기에 18번과 굉장히 유사한 방식으로 풀어야함을 알 수 있다.

주석 힌트로 admin의 no는 2임을 알 수 있다.

 

주소로 2%09or%09no=2

를 입력했더니

no hack이 떠버렸다. 

다시 쿼리문을 살펴보니 내가 생각 못한부분 바로 괄호다()

select id from chall27 where id='guest' and no=(이기 때문에

get으로 전달되는 no는

2) or no=2여야 하는것

하지만 여전히 쿼리문안에 괄호 )가 하나 남아버리게 된다.

따라서 )이것을 인식할 수 없도록 주석처리하거나 날려버려야 하는데

널바이트 인젝션이나 주석용 -- 를 넣어주어야한다.

 

널바이트는 ;%00을 붙여주면 되고

주석도 (-- 를 붙여주면 된다.

 

논리 연산자 =도 문제가 되므로 like로 대체한다

'문제풀이 > 보안 writeup' 카테고리의 다른 글

webhacking.kr 7번  (0) 2021.04.08
webhacking.kr 8번  (0) 2021.03.19
webhacking.kr 18번  (0) 2021.03.18
webhacking.kr 35번  (0) 2021.03.18
webhacking.kr 33번  (0) 2021.03.16
myoskin