全能小太阳 发表于 2022-10-19 10:41

蓝奏云分享文件夹解析-PHP

1.打开某蓝奏云文件夹分享链接,输入密码

通过分析filemoreajax.php可以看出传参
lx=2//未知
fid=2455975 //应该是文件分享ID什么的
uid=569689 //应该是用户ID
pg=1 //这是页码,蓝奏云一页显示50条数据
rep=0 //未知
t=1666146943 //每次访问会更新
k=5e30653d4f54227c4856e473e49c3d5b //每次访问会更新
up=1 //未知
ls=1 //未知
pwd=fp0b //分享密码

其中T 和 K的参数是通过网页获取的
PHP取值
<?php
header('content-type:text/html;charset=utf-8');
include 'config.php';
$pg = $_GET['pg'];
$content=post_api($url);
preg_match("/t':(.*),/U", $content, $qt);
preg_match("/k':(.*),/U", $content, $qk);
preg_match("/$qt = '(.*)\'/U", $content, $t);
preg_match("/$qk = '(.*)\'/U", $content, $k);
preg_match("/fid\':(.*),/U", $content, $fid);
preg_match("/uid':'(.*)\'/U", $content, $uid);
$post_data=array(
        'lx'=>2,
        'fid'=>$fid,
        'uid'=>$uid,
        'pg'=>$pg,
        'rep'=>0,
        't'=>$t,
        'k'=>$k,
        'up'=>1,
        'ls'=>1,
        'pwd'=>$pwd
);

通过获取网页代码获取参数值

获取文件夹列表
$json=post_api('https://www.lanzoui.com/filemoreajax.php',$post_data);
preg_match_all('/\"id\":\"(.*)\"/U', $json, $id);
preg_match_all('/\"name_all\":\"(.*)\"/U', $json, $name);
preg_match_all('/\"size\":\"(.*)\"/U', $json, $size);
preg_match_all('/\"icon\":\"(.*)\"/U', $json, $icon);
preg_match_all('/\"ico\":\"(.*)\"/U', $json, $ico);
$i=0;
foreach($id as $key){
        $result[]=array(
                'id'=>$i,
                'duan'=>$id[$i],
                'name'=>unicodeDecode($name[$i]),
                'size'=>$size[$i],
                'type'=>$icon[$i],
                'ico'=>$ico[$i],
        );
        $i++;
}
echo json_encode($result);
function post_api($url,$data=null){ // 模拟提交数据函数
    $curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36'); // 模拟用户使用的浏览器
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
    $tmpInfo = curl_exec($curl); // 执行操作
    if (curl_errno($curl)) {
      echo 'error';//捕抓异常
    }
    curl_close($curl); // 关闭CURL会话
    return $tmpInfo; // 返回数据,json格式
   
}
function unicodeDecode($unicode_str){
    $json = '{"str":"'.$unicode_str.'"}';
    $arr = json_decode($json,true);
    if(empty($arr)) return '';
    return $arr['str'];
}
?>

然后访问发现获取JOSN成功

但是发现直接传参pg=2不能实现下一页

可能因为t,k是动态的,应该是要和第一页的t,k值相同,这里的话直接访问pg=2,是刷新了t,k的值的,而且没有访问第一页,所以导致获取不到第一页内容,但是具体不知道是怎么实现下一页,欢迎大佬修复下一页指点。

下面送上完整代码:

全能小太阳 发表于 2022-10-19 13:35

Takitooru 发表于 2022-10-19 11:29
这里替楼主补充一点,压缩包里缺少了php文件,估计楼主忘了打包,需要手动把帖子文中的代码复制,然后新建 ...

可能是压缩没选中

djk8 发表于 2022-10-19 10:55

不错,辛苦了……

xm65R 发表于 2022-10-19 11:02

辛苦了虽然我看不懂

Takitooru 发表于 2022-10-19 11:29

这里替楼主补充一点,压缩包里缺少了php文件,估计楼主忘了打包,需要手动把帖子文中的代码复制,然后新建一个list.php把上面的代码丢进去

661lly 发表于 2022-10-19 11:37

感谢分享

mirabellemartin 发表于 2022-10-19 11:40

这个太实用了

WanShao 发表于 2022-10-19 13:21

有点看不懂

sqhymxjx 发表于 2022-10-19 13:25

这个是用来破蜜的吗,不懂,请大师指教

iawyxkdn8 发表于 2022-10-19 13:42

你收拾下东西,明天到奏兰报到,开发总监的位置给你了!
页: [1] 2 3 4 5 6
查看完整版本: 蓝奏云分享文件夹解析-PHP