헤더 인젝션 문제이다. 일단 헤더 인젝션이 뭔지 검색해보았다.


헤더인젝션은 공격자가 헤더에 개행문자(%0d%0a)를 삽입하여 그뒤에 헤더를 추가하여 공격하는 수동적인 공격방식이다.


이 공격으로 임의의 HTML을 보여주거나 다른 URL로 리다이텍트시킬수 있고, 쿠키를 임의로 생성할 수 있다.


여기서 원하는 것은 헤더인젝션을 통해 id=sherlock값을 가진 쿠키를 생성하는 것이다.


좋은 예시나 설명이 여기에 있다 (https://www.gracefulsecurity.com/http-header-injection/)


그래서 공격코드는 밑과 같이 작성하면 쿠키가 생성될것 같다.


http://webhacking.kr/challenge/web/web-27/?id=%0d%0aSet-Cookie:%20id=sherlock


%0d%0a를 통해 개행을 하고 Set-Cookie: id=sherlock을 request에 추가해넣는것이다.




그러나 아무일도 일어나지 않았다...


왜 그런가해서 Burp Suit로 분석해보기로 하였다.


먼저 헤더생성을 누르면 id 부분이 request에 추가된다.



get방식으로 id=sherlock이라는 파라미터가 전달된다.



response에서도 헤더에 id: sherlock이 보인다.



이번엔 공격코드를 보냈을 때다




?????


아까는 잘되던 id: ~~ 부분이 날라가버렸다 ;;


아마 필터링을 하던 뭐를 하던해서 없애버리는 것 같다.


그래서 계속 이걸 어떻게하지하고 삽질하다가....;;;


문제가 쿠키생성에서 바뀌었다는것을 알게 되었다 ㅡㅡ;


문제를 다시 읽어보자...




클리어조건이 예전 문제에서는 쿠키생성이였다면... 


지금은 그냥 id: ~~~ 밑에 clear: sherlock 이라고 추가만 하면 클리어하는 것으로 바뀌었다.


그래서 Set-Cookie: sherlock으로 공격하던것을 clear: sherlock으로 바꾸어주기만 하면 된다.






+ Recent posts