网站提供的登录表单只包含“用户名”和“密码”。按Enter键或单击“登录”按钮即可登录。
HTML表单(来自页面源代码)如下所示:
<form name="login" action="https://www.mywebsite.com/index.php?main_page=login&action=process" method="post" id="loginForm"><fieldset>
<legend>Please Log In</legend>
<label class="inputLabel" for="email-address">Email Address:</label>
<input type="text" name="email_address" size = "41" maxlength= "96" id="email-address" /><br class="clearBoth" />
<label class="inputLabel" for="login-password">Password:</label>
<input type="password" name="password" size = "41" maxlength = "40" id="login-password" /><br class="clearBoth" />
<input type="hidden" name="securityToken" value="0330682553ea36639f62317144927f3f" /><div class="buttonRow forward"><input type="image" src="includes/templates/lite_grey/buttons/english/login.gif" alt="Sign In" title=" Sign In " /></div>
<div class="buttonRow back important"><a href="https://www.mywebsite.com/index.php?main_page=password_forgotten">Forgot password</a> | <a href="index.php?main_page=activation_email&resend=1">Re-send activation email</a></div>
</fieldset>
</form>
表单包含两个可见字段(email_address和密码)和一个隐藏字段(securityToken)。
当我填写表单并在浏览器中按Enter键时,浏览器会生成一个如下所示的POST请求:
POSTDATA=email_address=my@emailaddress.org&密码= mypass123&安培; securityToken = 0330682553ea36639f62317144927f3f&安培; X = 37安培; Y = 15
(我通过使用Firefox的“Tamper data”插件看到了这个后期数据。还通过wireshark确认)
请注意浏览器发送的字段:email_address,password,securityToken - 以及HTML代码中不存在的其他两个字段:x = 37和y = 15。我对这些价值来自何处感到茫然。
此外,每次登录网站时,这些值x和y都会发生变化。
所有浏览器似乎都能够正常处理此登录表单(不仅仅是Firefox)。 HTML页面似乎没有混淆或任何东西..
这些价值来自哪些想法或我如何找到?
由于
答案 0 :(得分:3)
当您的表单提交为type="image"
时,始终会发送这些值(x和y坐标):
<input type="image" src="includes/templates/lite_grey/buttons/english/login.gif" alt="Sign In" title=" Sign In " />
答案 1 :(得分:1)
编辑:虽然在某些情况下我的回答可能技术上,但cale_b的答案可能性大约为100,000,000倍。谢谢cale_b。
必须有一个javascript框架,用于将onSubmit处理程序附加到表单,并在发送之前注入自己的字段。
在chrome中打开开发者工具,并在源代码中搜索“onSubmit”,“post”等。您可能会找到罪魁祸首。
如果你找不到那种方式,请搜索“.preventDefault()”,但这可能会产生很多东西。