White Security
[wargame.kr] dmbs335 문제풀이 본문
wargame.kr 사이트의 24번째 문제입니다.
SQL injection 문제입니다!
링크에 접속하니 게시글 목록을 확인할 수 있었습니다.
검색창의 우측에 존재하는 or, and는
검색 기준을 다수 지정했을 경우에
where subject like '%keyword%' or content like '%keyword%'
와 같이 where 절 내에 삽입되는 용도로 쓰입니다.
소스에서는 상단에 위치한
parse_str($_SERVER['QUERY_STRING']) 이라는 부분이
눈에 띕니다.
이는 GET또는 POST로 전달되는 인자들을
php 변수로 변환해주는 일을 합니다.
만약 php내에서 사용되는 변수명을 예측할 수 있다면
예기치 못한 동작을 유발시킬 가능성이 있는 취약 코드입니다.
만약 col 에서 정규식 (subject | content | writer) 을 만족시키는 부분이 없다면
query_parts 부분이 정의되지 않아 if문은 통과되는 상황입니다.
하지만 [ parse_str($_SERVER['QUERY_STRING']) ] 코드로 인해
사용자가 php내의 변수를 정의할 수 있기 때문에
이 지점에서 인젝션이 가능합니다.
search_cols에는 정규식을 만족시키지 않는 문자열을 하나 끼워두고
query_parts에 쿼리문을 넣으면 where 절 이후를 임의로 바꾸어 쓸 수 있습니다.
'Wargame Writeups > wargame.kr' 카테고리의 다른 글
[wargame.kr] dun worry about the vase 문제풀이 (0) | 2019.01.25 |
---|---|
[wargame.kr] QnA 문제풀이 (0) | 2019.01.24 |
[wargame.kr] lonely guys 문제풀이 (0) | 2019.01.23 |
[wargame.kr] ip log table 문제풀이 (0) | 2019.01.23 |
[wargame.kr] SimpleBoard 문제풀이 (0) | 2019.01.23 |
Comments