webhacking.kr 38번

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

우선 빈칸 상태로 로그인 버튼을 눌러보니 아무일도 일어나지 않았고 123, a등의 무작위 값을 넣어도 똑같이 아무일도 일어나지 않았다.

 

소스를 보니 알 수 있는 사실

1.id라는 이름으로 내가 입력한 값이 post방식으로 전달되고 있다.

2.admin.php로 이동할 수 있는 링크가 주석처리 되어 있다.

 

소스를 수정해서 주석을 없애주고 나타는 admin page를 눌러 이동했다.

그러자 로그 뷰어가 나타났다.

나는 admin으로 로그인해야하며

밑에 a와 123은 내가 방금 로그인을 시도했던 기록같다.

 

로그인 창에 admin을 입력해주자 you are not admin이 뜬다.

log값을 주입하기 위해 우선 입력창을 textarea로 바꿔서 여러줄을 입력할 수 있게 바꿔준다.

 

입력창엔 일단 로그가 입력되기 위해서 아무 글자나 쳐주고

다음줄에 내 아이피값과 admin을 입력해준다.

로그인을 누르고 다시한번 로그 뷰어 페이지에 접근해주면

풀리게 된다.

 

줄바꿈이 꼭 필요했던 문제인데 웹에서 줄바꿈을 하기 위해선 CR과 LF가 필요하다.

CR : Carraige Return (\r)

LF : Line Feed(\n)

os마다 차이가 있는데 윈도우에선 이 것들이 사용된다.

쉽게 이것을 입력하는 방법은 내가 문제를 풀때 사용했던 textarea와 같이 웹 자체에서 줄바꿈을 입력할 수 있게 하는 것이다.

 

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

webhacking.kr 39번  (0) 2021.04.08
webhacking.kr 45번  (0) 2021.04.08
webhacking.kr 7번  (0) 2021.04.08
webhacking.kr 8번  (0) 2021.03.19
webhacking.kr 27번  (0) 2021.03.18
myoskin