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 |