XMLHTTP를 사용하여 도둑을 만드는 구체적인 내용은 오래되었습니다. 많은 사람들이 이를 게시하고 논의했지만 ASP 도둑을 만드는 과정에서 많은 사람들은 ASP 도둑이 PHP 도둑만큼 강력하지 않다는 사실을 발견했습니다. 실제로 원래 웹 사이트에 양식 제출이나 쿠키 확인이 있는 경우 SOCKET 기반 구성 요소를 사용하지 않으면 ASP가 이를 완료하기 어려울 수 있습니다. 실제로 XMLHTTP의 다른 두 가지 방법은 무시되었으며 이것이 바로 문제의 핵심.
먼저 이 방법에 대해 이야기해보겠습니다.
1. .보내다()
대중적인 도둑들은 데이터를 전송하기 위해 POST 대신 GET을 사용하기 때문에 많은 사람들이 이 방법을 무시합니다. SEND(컨텐츠)인 데이터를 전송하는 방법도 매우 간단합니다.
양식을 보내는 것은 그렇게 간단하지 않습니다. 보내는 양식이 중국어로 되어 있으면 인코딩 문제가 발생하기 때문입니다.
우선 OPEN 시 반드시 POST를 사용해야 하는데, 즉 .open(POST, 주소, 비동기 여부)이다.
그런 다음 SEND에 양식 내용을 추가합니다. 예를 들어 제출하려는 양식에는 A, B, C라는 세 가지 양식 필드가 있고 해당 값은 각각 1, 2, 3입니다. SEND를 할 때 .send(A=1&B=2&C=3) 이렇게 작성해서 제출하시면 됩니다. 어때요, 아주 간단해요, 예상하지 못하셨나요? 하지만 너무 성급하게 기뻐하지 마세요. 앞서 말씀드린 것처럼 양식의 값이 중국어로 되어 있으면 데이터 전송에 오류가 발생하게 됩니다. 여기서는 escape() 함수를 사용합니다. JAVASCRIPT에 익숙한 친구라면 이 함수의 역할을 알아야 합니다. 이제 VBSCRIPT도 이 함수를 지원합니다. .send(A=escape('value1')&B=escape('value2')&C=escape('value3')) .
2. .setRequestHeader()
위와 같이 귀하의 데이터가 전송되지만 상대방이 이를 수신하지 못하는 이유는 실제로 귀하의 HTTP 헤더에 뭔가가 누락되어 있기 때문인데, 구체적으로는 이 기능을 사용하여 추가할 수 있습니다. setRequestHeader(CONTENT-TYPE,application/x-www-form-urlencoded)는 상대방에게 귀하가 urlencoded 양식을 제출했음을 알립니다.
자, 이제 양식 제출에 대해 이야기했으니 쿠키를 보내는 방법에 대해 이야기해 보겠습니다.
실제로 쿠키를 보내는 것도 매우 간단합니다. 이 기능을 사용하여 HTTP 헤더에 항목을 추가할 수도 있습니다. 예를 들어 현재 뒤에 있는 쿠키는 다음과 같습니다.
cdb_sid=ybBiK0; cdb_cookietime=315360000; cdb_oldtopics=D869008D; cdb_auth=AQYHXVFDGERdsggVQA1VYUgxQDwFVV1dUAlwFAFRXVwU%2FbAIJB1lUCgcdb_fid45=1113370145
이제 이 쿠키를 직접 보내고 싶습니다.setRequestHeader(Cookie,cdb_sid=ybBiK0; cdb_cookietime=315360000; cdb_oldtopics=D869008D; cdb_visitedfid=1D45; cdb_auth=AQYHXVFDGERdsggVQA1VYUgxQDwFVV1dUAlwFAFRXVwU%2FbAIJB1lUCg;cdb_fid45=1113370145)
물론 일부 웹사이트 페이지에는 페이지 판단 기능이 있습니다. 즉, .setRequestHeader(Referer, 소스의 절대 주소)입니다.