쿠키가 주입되는 상황을 연구해 봅시다! ASP를 공부해 본 사람이라면
Request.QueryString(GET)
또는
Request.Form (POST)
아, 그렇습니다. user to WEB server 값! 가끔 코드를 단순화하기 위해
ID =Request("ID")
이렇게 작성하는 방법은 간단하지만 문제가 발생합니다~~~ 먼저 어떻게 작성하는지 살펴보겠습니다. WEB 서비스는 먼저 GET에서 데이터를 가져옵니다. POST에서 데이터를 가져오는 대신 쿠키에서도 데이터를 가져옵니다. (하하, 책에서는 그런 말을 하지 않습니다. Xiao Gao와 통신한 후에야 알게 되었습니다. ~~ 책이 불완전한 것 같습니다~~)
다시 주입 방지 시스템을 살펴보겠습니다. GET 및 POST에서 특수 문자(물론 여기서는 주입 문자)가 있는 경우 데이터를 감지합니다. )! 데이터 제출을 금지합니다. 하지만 쿠키 데이터는 감지하지 못합니다! 문제가 발생합니다~~쿠키 삽입 문제가 있는지 테스트하는 방법~아래 링크를 먼저 살펴보시기 바랍니다(예제로 사용되었기 때문에 링크는 실제가 아닙니다)
http://www.xxx. com/1.asp ?id=123
http://www.xxx.com/1.asp만 입력하면 매개변수가 없어 정상적인 데이터를 볼 수 없는지 알고 싶습니다! 쿠키에 문제가 있나요(요청("XXX") 형식 문제도 있나요?) 먼저 IE를 사용하여 http://www.xxx.com/1.asp
를 입력하여 웹페이지를 로드하세요. 그리고 표시가 비정상적입니다(매개변수를 입력하지 않은 이유). IE 입력 상자에
javascript:alert(document.cookie="id=" escape("123"));를 입력하고
Enter를 누릅니다. 다음 내용이 포함된 대화 상자가 나타납니다. id=123 이후 웹 페이지를 새로 고침하면 정상적으로 표시되면
Request("ID") ~~. 이 형식에서는 쿠키를 삽입하여 입력 상자에 입력할 수 있습니다.
javascript:alert(document.cookie="id=" escape("123 and 3=3") );
페이지를 새로 고침하세요. 표시가 정상이면 다음 단계를 시도해 보세요. (정상이 아니면 필터링도 가능합니다.)
javascript:alert(document.cookie="id= " escape("123 and 3=4"));
페이지를 새로고침하세요. 정상적으로 표시되지 않으면 인젝션이 있는 것입니다~ ~~프로그래머가
Request.QueryString
또는
Request.Form
을 사용하여 데이터를 수집하는 경우 서비스 프로그램이 GET 또는 POST에서 직접 데이터를 읽기 때문에 쿠키 삽입에는 문제가 없습니다. 예, 웹 서버는 쿠키에 데이터가 포함되어 있는지 여부를 무시하므로 쿠키를 삽입할 수 없습니다. 쿠키! ~