gpt4 book ai didi

javascript - 执行 JS server-site 为 xhr 生成哈希

转载 作者:行者123 更新时间:2023-12-03 07:52:04 26 4
gpt4 key购买 nike

有一个scrapebot-proof form 。登录名和密码输入具有模糊的 name 属性:

<input id="login-username" name="r0pUsRqARu" value=""
type="text" class="form-control" placeholder="Login">

根据这些输入(包括登录名和密码值)和隐藏的字符输入字段,哈希值由 js 功能在客户端生成( md5.js )。

$("#btn-login").click(function(){
var ser = $( "#loginform" ).serialize();
$.post("/post.php",ser+"&hash="+md5(ser),function(){
location.replace("/logged.php");});
});

表单被序列化并作为 POST xhr (ajax) 发送到 post.php 以进行登录(请参阅上面的代码)。

我想编写php脚本通过表单自动登录

在服务器上获取表单、获取名称属性、粘贴登录名/密码值以及使用序列化字符串通过 POST xhr 请求到 /post.php 都没有问题。

cV2sD3JzH2=login&3JX2zJ7QlC=password&char=%C2%AA&hash=...

然而,由于哈希是由js在客户端生成的(由md5.js),我无法通过php在服务器端生成哈希...什么出路是什么?

一些想法:

  1. md5.js转换为服务器端脚本并执行它以产生哈希值。怎么办?
  2. 使用 AngularJS(或服务器上类似的 JS 框架)在服务器上运行 md5.js 来生成哈希。 免责声明:我不熟悉 AngularJS。

更新

抱歉,我推测我可以在服务器端获取混淆的 name 属性值和 char 输入值。然而,正如 RamRaider 提到的,如果没有启用 javascript,它们将被命名为 *email* 和 *password*,并且当 html 中没有隐藏的 char 输入时JavaScript 被禁用。因此,当使用 php cUrl(无 js 服务器端)获取内容时,我有一个干净的表单,没有隐藏的 char 输入和未混淆的名称值,请参阅下面的内容(删除了样式):

<form id="loginform" method="post" action="/post.php">
<input id="login-username" type="text" name="email" value="" >
<input id="login-password" type="password" name="password" >
<a id="btn-login" href="#" class="btn btn-success">Login </a>
</form>

再次强调在服务器端不起作用的 JS 技巧。我该如何修复它?

我正在搜索 JS 在某个地方插入新的属性值,但没有成功。应该是某事。像下面这样:

$('login-form').attr('name', <new value>); 

最佳答案

那里使用的 md5.js 来自何处或文档在哪里并不明显。因此,您有以下选择:

  1. 您可以测试它,看看它是否在一堆不同的输入上生成与 PHP 的 MD5 函数相同的结果。
  2. 您可以尝试找到该 md5.js 的作者并向他们询问。
  3. 您可以将其移植到 PHP(这只是数学),并确保您具有相同的算法。
  4. 您可以研究这两种实现的源代码,看看是否可以断定它们是否实现了完全相同的算法。

我建议您从第一个选项开始,因为这是立即判断它们是否是相同算法的最简单方法。

关于javascript - 执行 JS server-site 为 xhr 生成哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34961422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com