![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1MJmI%2Fbtq4SbijZBE%2F88H62C22TBxStlnqfmFt91%2Fimg.png)
http://natas11.natas.labs.overthewire.org/ natas11/U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK 로 로그인 쿠키는 XOR 암호화로 보호된다고 나와 있고, 배경색을 지정할 수 있게 되어 있다. #000000을 입력하니 배경이 검정색으로 바뀐다. 소스코드는 아래와 같다. Cookie 값 중 data가 존재하면, 해당 값을 base64로 디코딩하고 xor_encrypt() 함수를 거친 후 json 형태로 디코딩한다. 그리고, $data["showpassword"]가 yes면 패스워드를 보여준다. 따라서 showpassword가 yes가 되도록 Cookie 값을 세팅하면 된다. 우선 Cookie의 data 값을 가져왔다. ClVLIh4ASCsCBE8lAxMa..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9mYPQ%2Fbtq4QRLxaH6%2F2BCd6vpXmQvk2VzNdB6SKK%2Fimg.png)
http://natas10.natas.labs.overthewire.org/ natas10/nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu 로 로그인 test를 입력해보았다. 아래와 같이 'test'가 포함된 단어를 출력한다. 소스코드를 살펴보았다. 전 단계와 마찬가지로 입력이 needle로 저장되고 key와 비교하게 된다. 다만 이번에는 일부 특수문자가 필터링되는 것을 고려해야 한다. 예를 들어, 전 단계처럼 ;ls -al;을 입력하면 이렇게 illegal character를 포함한다는 메시지를 출력한다. 이번에는 test test를 입력했는데, 조금 다른 결과가 나타났다. grep 명령어는 grep [옵션] [검색할 문자열] [검색 대상 파일]의 형태로 사용하게 되는데, 이를 이용해 문제를..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoHykg%2Fbtq4oOXt0P0%2FxVUiWvy4Ntls0LD0ywato0%2Fimg.png)
xss-quiz.int21h.jp/stage008.php?sid=77b631beb02f66fbec4c6e7129579d45b30f5a12 를 입력해보았다. 화면은 위와 같이 변했고, 소스는 아래와 같다. 입력한 값에 링크가 걸려 나온다. 생성되는 링크를 클릭했을 때 팝업이 뜨게 하면 될 것 같다. 이는 간단하게 자바스크립트 스키마를 이용해 해결할 수 있다. 우선 아래처럼 입력해주었다. javascript:alert(document.domain) 그럼 이렇게 url이 생성된다. 이것을 클릭하면 이렇게 팝업이 뜨며 성공한다. Clear! (아래는 다음 단계 링크) 더보기 xss-quiz.int21h.jp/stage_09.php?sid=a7b6b5c626a9661772c41adc04f868c7d876232d
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGygMO%2Fbtq4tAb1c4y%2F904C8qcSLaYskKNKeMlzQ0%2Fimg.png)
xss-quiz.int21h.jp/stage07.php?sid=30136eb992c65d28a93d293ceb232e5342274bda 'test'를 입력해보고 소스를 살펴보니 아래와 같다. value 부분에 입력한 값이 저장된다. "/>