使用 curl 复制密码混淆以编程方式登录网站
Replicate password obfuscation to programatically login to a website with curl
我想 submit/simulate 一个带有 curl 的登录网络表单。我正在使用....
curl -X POST https://example.com/login
-H 'Content-Type: application/json'
-d '{"cpuid":"my_login","password":"my_password"}'
表单有效,但我得到的密码不正确。
当我检查实际的 GUI 登录屏幕时,“密码”key/value 在请求中看起来很模糊。
如何复制网页正在做的任何事情?
这是一个例子(我已经改变了值)...
GUI密码提交= "TPqWKSFz^D63R8"
实际提交了什么....
我很感激我可能在这里陷入了死胡同,因为可能有各种各样的选项用于加密传输中的密码。我知道它不是 B64 编码的。也许我可以深入查看页面js,看看那里是否使用了函数?或者它可能是服务器端?
编辑:看起来有一个 sha1 脚本 运行...这是标准的东西吗?
Edit2:作为绕过这个的 hacky 方法,我可以使用实际网站预先对密码进行哈希处理,然后将其从检查器中取出来存储以备使用。
基本上,是的,它最终成为了 SHA1。我从 here 抓取了一个 SHA1 脚本并将其添加到 Google Sheets 脚本以生成哈希。我选择 Sheets 只是因为我已经有了一个与非技术人员共享的文档,该文档使用一些已定义的变量将 curl 查询构建到 运行。
这是相关代码,以防 link 出现故障...
function SHA1(s) {
var hexstr = '';
var digest = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_1, s)
for (i = 0; i < digest.length; i++) {
var val = (digest[i]+256) % 256;
hexstr += ('0'+val.toString(16)).slice(-2);
}
return hexstr
现在我可以使用 curl 中的哈希从 /login 端点检索会话 cookie,并以编程方式查询本地网站以从所需的 HTML 页面抓取信息。
稍微偏离主题,但为此我正在做以下事情...
curl --cookie-jar cookie -X POST http://<LOCAL IP>/login -H 'Content-Type: application/json' -d '{"cpuid":"<CPU ID>","password":"<PASSWORD>"}'
然后...
curl -L http://<LOCAL IP> --cookie cookie | grep <search term>
grep 只是为了过滤掉 HTML 源噪声。
我想 submit/simulate 一个带有 curl 的登录网络表单。我正在使用....
curl -X POST https://example.com/login
-H 'Content-Type: application/json'
-d '{"cpuid":"my_login","password":"my_password"}'
表单有效,但我得到的密码不正确。
当我检查实际的 GUI 登录屏幕时,“密码”key/value 在请求中看起来很模糊。
如何复制网页正在做的任何事情?
这是一个例子(我已经改变了值)...
GUI密码提交= "TPqWKSFz^D63R8"
实际提交了什么....
我很感激我可能在这里陷入了死胡同,因为可能有各种各样的选项用于加密传输中的密码。我知道它不是 B64 编码的。也许我可以深入查看页面js,看看那里是否使用了函数?或者它可能是服务器端?
编辑:看起来有一个 sha1 脚本 运行...这是标准的东西吗?
Edit2:作为绕过这个的 hacky 方法,我可以使用实际网站预先对密码进行哈希处理,然后将其从检查器中取出来存储以备使用。
基本上,是的,它最终成为了 SHA1。我从 here 抓取了一个 SHA1 脚本并将其添加到 Google Sheets 脚本以生成哈希。我选择 Sheets 只是因为我已经有了一个与非技术人员共享的文档,该文档使用一些已定义的变量将 curl 查询构建到 运行。
这是相关代码,以防 link 出现故障...
function SHA1(s) {
var hexstr = '';
var digest = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_1, s)
for (i = 0; i < digest.length; i++) {
var val = (digest[i]+256) % 256;
hexstr += ('0'+val.toString(16)).slice(-2);
}
return hexstr
现在我可以使用 curl 中的哈希从 /login 端点检索会话 cookie,并以编程方式查询本地网站以从所需的 HTML 页面抓取信息。
稍微偏离主题,但为此我正在做以下事情...
curl --cookie-jar cookie -X POST http://<LOCAL IP>/login -H 'Content-Type: application/json' -d '{"cpuid":"<CPU ID>","password":"<PASSWORD>"}'
然后...
curl -L http://<LOCAL IP> --cookie cookie | grep <search term>
grep 只是为了过滤掉 HTML 源噪声。