2013-04-30 3 views
1

사이트에 로그인하려고하는데 거기에서 사용할 수있는 양식의 메시지를 보내려합니다. 내가 로그인을 입력하고 message send form하지만 그 HTML 코드에 당신이 모든 재 장전 후 변경 숨겨진 임의 해시 값이 있음을 볼 수있는 페이지에 관리 해시 또는 임의의 숨겨진 코드가있는 컬 로그인

<form method="POST" action="pm.php"> 
    To: <input type="text" name="user" /> 
    <input type="hidden" name="pm_tid" value="ef0gjpmgwag5g21agjg" /> 
    <input type="hidden" name="box" value="new" /> 
    Subject: <input type="text" name="subject" /> 
    message: <textarea name="text"></textarea> 
    <input type="submit" value="Send" /> 
</form> 

것 같습니다. 나는 그것을 정확하게 얻고 형태로 게시하고 싶다. 그 때 내 메시지가 전송됩니다. 그것이 불가능하다는 것을 말하지 마십시오. 것이 가능하다. 내 급우 중 하나가 성공했지만 그는 나를 도와주지 않습니다. 도와주세요.

+0

이 I pm.php 포함하는 요청을 [CSRF] (http://en.wikipedia.org/wiki/Cross-site_request_forgery)에 도움이 될 가능성이 가장 높으며 그렇게하는 것처럼 우회하려고 시도하면 안됩니다. – naththedeveloper

+0

양식 (CURL 포함)을 얻고 preg_match_all()을 사용하여 숨겨진 필드를 잡고 이름/값으로 게시물을 채운 다음 양식을 게시하십시오. NB 이것은 자바 스크립트를 우회하여 값을 추가하거나 변경하지 않습니다. – Waygood

+1

@FDL - cURL을 사용하면 CSRF 보호를 우회하지 않습니다. CSRF의 보호는 Mal이 앨리스를 속여 밥에게 요청하여 Mal이 요청을 스스로하는 것을 막지 못하게합니다. – Quentin

답변

2

CSRF 보호와 비슷합니다. 이를위한 일반적인 구현은 토큰을 쿠키 (또는 세션 토큰 쿠키가 사용되는 경우 서버 세션)에 저장 한 다음 양식의 토큰과 비교하는 것입니다.

을 수행해야합니다

  1. 요청 양식 당신이 토큰을 얻을 수
  2. parse the html (그들은 형태와 함께 가정) 동시에 얻을 쿠키를
  3. 저장소를 포함하는 HTML 문서 입력으로부터
  4. 토큰 및 쿠키
+0

전체 코드를 알려주시겠습니까? curl 및 stackoverflow에 완전히 익숙하지 않습니다. –

+0

아니요, 귀하의 신청서를 작성하지 않겠습니다. – Quentin

+0

그렇다면 어떻게 작동하는지 알려주실 수 있습니까? 내 말은, 처음에는 양식에 컬을 사용합니다. 그런 다음'preg_match_all'을 사용하여 해쉬를 ​​얻습니다. 그런 다음 다시 말하며 양식에 말아서 해시 값을 사용합니다. 그러나 해시가 바뀔 수 있었습니까? –