[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 523066680 于 2017-5-24 20:45 编辑

POST /legacy/
&data=U2FsdGVkX184KVBoLvcq2B%2FIhRIXbzDEyjOlkQ6Z%2FFk%3D%0A
&has_manual_pass=false
&duration_hours=0
&dont_ask=true
&data_type=T
&notify_email=xxxx@xxx.com
&notify_ref=

dont_ask 就是那个选项了


字符串加密的部分还在探索,我的原文是 abc,在提交的列表中变成:
U2FsdGVkX1%2Fcj0LhMKHyjkidrfBqLybT5BUBPhvLDks%3D%0A
转字符:
U2FsdGVkX1/cj0LhMKHyjkidrfBqLybT5BUBPhvLDks=
base64解码:
Salted__܏BᰡHj/&Ӥ>ˎK

Salted_ 开头好像是 OpenSSL 的风格?
看 js 疑是 AES 加密?

密钥好像是随机生成
common.js:
var common=function()
{
    var auto_pass_length=9;
    var auto_pass_chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
    var encrypt=function(data,password)
    {
        return GibberishAES.enc(data,password)
    }
   
    var decrypt=function(data,password)
    {
        return GibberishAES.dec(data,password)
    }

    var make_password=function()
    {
        var length=auto_pass_length;
        var chars=auto_pass_chars;
        var str="";
        for(var i=0; i<length; i++)
        {
            pos=Math.floor(Math.random()*chars.length);
            str+=chars.charAt(pos);
        }
        return str;
    }

TOP

本帖最后由 523066680 于 2017-5-24 20:46 编辑

啊哈,加密部分用openssl穷举测试,试出来了

如果提交后得到的地址是:
https://privnote.com/jdMjyawp#n03p9QITx
则 n03p9QITx 是解密密钥,加密方式是 aes256。

加密过程是:
原文 -> aes256 + 随机密钥 -> 转 base64 -> 特殊字符转URL编码

随机密钥就在 生成的链接地址的末尾部分(#字符后面)
2

评分人数

TOP

本帖最后由 523066680 于 2017-5-24 21:06 编辑

回复 9# WindCat


    你目标是获取提交后链接内的内容,我前面没看到你的需求是要做post 部分还是 get 部分。
只是凭兴趣在探索密文建立的方式,纯属自娱自乐。
1

评分人数

    • yu2n: 鉆研才能進步~技术 + 1

TOP

本帖最后由 523066680 于 2017-5-25 12:05 编辑

回复 11# yu2n


    网络方面一直是我的短板,这个问题是很好的锻炼机会。

TOP

本帖最后由 523066680 于 2017-5-25 12:01 编辑

Perl 获取保存7天的笔记内容,示例。几个模块交叉使用,感觉有些凌乱~

use MIME::Base64;
use Crypt::CBC;
use LWP::UserAgent;

my $link = "https://privnote.com/tfXKuLB0#OmbQnPRgb";
$link=~/\/(\w+)#(\w+)/;
my ($noteid, $key) = ($1, $2);

my $req = HTTP::Request->new(GET => "https://privnote.com/hidden#$key");
$req->header('Cookie' => "manual_locale=zh_CN;note_id=$noteid");

my $ua = LWP::UserAgent->new();
my $res = $ua->request( $req );

my $content = $res->content();

my $aes = Crypt::CBC->new(
    -key    => $key,
    -cipher => "Crypt::OpenSSL::AES"
);

if ($content =~ /textarea[^>]+>([^<]+)</s)
{
    $cipher = $1;
    $cipher =~s/\r?\n//g;
    print $aes->decrypt( decode_base64( $cipher ) );
}
1

评分人数

TOP

返回列表