吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17183|回复: 60
收起左侧

[Python 原创] 【原创】一分钟实现蓝墨云秒杀所有资源

  [复制链接]
laoxiaodiao 发表于 2019-7-10 20:41
本帖最后由 laoxiaodiao 于 2019-7-11 09:21 编辑

      我们大学英语老师上一年蓝墨云来上英语课,来签签到啥的,签到啥的还可以,我们这种好学生是不会旷课的{:1_918:}  ,但是他一学期就让我们看几百个沙雕视频,还记积分,谁积分高期末成绩高,我的妈呀,这可愁死小宝宝了,在网上搜蓝墨云破解版,下载下来屁用没有,然后在52上搜搜有没有大神已经破解,虽然没有,但是发现了这个帖子,但那个时候还没有学JavaScript,只学了C,但大家都知道C写这些东西很麻烦,而且我C也达不到那个水平,所以我只能乖乖的去刷了几百个视频:'(weeqw  (流下了没有技术的泪水),我可是很记仇的,刚学了Python一个星期,打算拿蓝墨云来开刀,废话不多说。
     首先之前那个帖子用的是burpsuite来抓包,我这里用的谷歌自带的工具,我重新抓了试试,发给服务器的数据真的没有加密。我试了好久,发现在每次看完视频之后都会给服务器发送一个数据包,数据内容如下 看完视频之后都会给服务器发送一个数据包.png
服务器返回的数据为
返回的数据.png
咦,想一想,那么我不看视频,在登陆之后就直接给服务器发这个数据包,那不就完事了?哈哈哈,说干就干,我试着改了一下资源id(res-id),重新发送出去,卧槽,还真的给老子返回了success,我们来一起分析这个数据,他要发送classid,res-id(翻译过来就是资源id嘛),watchto(翻译过来就是要看到),duration(翻译过来就是进度条嘛),
current_watch_to:(当前看到哪了),再捋一捋,如果要获得classID,那么我们肯定哟要先登录啊,要获得resid,那么我们也得要提前提取出来资源id嘛,
那么我们的破解思路就很清晰啦,
(1)登陆,获取课程id
(2)进入相应课程的资源列表,提取资源id
(3)发送数据包
第一步:登陆
没有验证码,卧槽,太溜了,如果有验证码还得要破验证码,这个搞的太不安全了。

登录界面.png
输入账号密码点击登录,抓包

其返回的数据如下


登录数据包.png

实现登陆代码如下:
import requests
import re
def login():
    url1="https://www.mosoteach.cn/web/index.php?c=passport&m=account_login"#登陆的链接
    head1={#这个是数据头
        "Host":"www.mosoteach.cn",
        "Content-Length":"60",
        "Connection": "keep-alive",
        "Accept": "application/json, text/javascript, */*; q=0.01",
        "Origin": "https://www.mosoteach.cn",
        "X-Requested-With": "XMLHttpRequest",
        "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",
        "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",
        "Referer": "https://www.mosoteach.cn/web/index.php?c=passport",
        "Accept-Encoding": "gzip, deflate",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
}
    username=input("请输入账号:")
    password=input("请输入密码:")
    body="account_name={0}&user_pwd={1}&remember_me=N".format(username,password)#数据包
    result1=requests.post(url1,headers=head1,data=body)#发送请求,并将结果赋给result1
    cookie=result1.headers["Set-Cookie"]#提取cookie,在下一次发送请求的时候带上这个cookie,服务器才会认识你
#除了上面这个,还要提取aliyungf_tc,teachweb,SERVERID,不要问我为什么提取,他返回给你的数据肯定是有用的,提取保存就行,提取用到了正则表达式
    print("获取如下参数")
    aliyungf_tc=re.findall(r"aliyungf_tc=(.*?);",cookie)
    aliyungf_tc=aliyungf_tc[0]
    print("aliyungf_tc=%s"%aliyungf_tc)
    teachweb=re.findall(r"teachweb=(.*?);",cookie)
    teachweb=teachweb[0]
    print("teachweb=%s"%teachweb)
    Ser=re.findall(r"SERVERID=(.*?);",cookie)
    Ser=Ser[0]
    print("serverid=%s"%Ser)
接下来获取课程id,并且选择你要刷的课
你在登陆之后会进入下面这个界面
课程id.png
右边就是课程id了实现代码如下

url2="https://www.mosoteach.cn/web/index.php?c=clazzcourse&m=index"
    head2={
        "Connection": "keep-alive",
        "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
        "Origin": "https://www.mosoteach.cn",
        "X-Requested-With": "XMLHttpRequest",
        "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",
        "Referer": "https://www.mosoteach.cn/web/index.php?c=passport",
        "Accept-Encoding": "gzip, deflate",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
        "Cookie": "aliyungf_tc={};teachweb={};SERVERID={}".format(aliyungf_tc,teachweb,Ser)
        }
    result2=requests.post(url=url2,headers=head2)
    classid=re.findall("data-id=\"(.*)\"",result2.text)
    print("成功获取科目ID:%s"%classid)
    classid=input("请输入你要刷的科目ID:")
第二步:获取资源id

点击相应的课程(发送数据包),获取资源id(在服务器返回的数据中提取id)
资源id.png
实现代码如下


head3={
        "Connection": "keep-alive",
        "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
        "Origin": "https://www.mosoteach.cn",
        "X-Requested-With": "XMLHttpRequest",
        "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",
        "Accept-Encoding": "gzip, deflate",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
        "Cookie":"aliyungf_tc={0};teachweb={1};SERVERID={2}".format(aliyungf_tc,teachweb,Ser),
        "Refere": "https://www.mosoteach.cn/web/index.php?c=interaction&m=index&clazz_course_id={}".format(classid)
            }

    url3="https://www.mosoteach.cn/web/index.php?c=res&m=index&clazz_course_id={}".format(classid.replace("'",""))
    result3=requests.get(url3,headers=head3)
    viedoid=re.findall("data-value=\"(.*)\"",result3.text)#这是用正则表达式提取资源id
第三步:发送已经看完的消息


url4="https://www.mosoteach.cn/web/index.php?c=res&m=save_watch_to"
    i =list( range(1,len(viedoid),1))
    #print(i)
    for k in i:
        if len(viedoid[k])==len(viedoid[1]):#检测所提取的视频id长度是不是等于第一个视频的id长度,因为在提取的过程中后面有几个不是视频id,得把它去掉
            head4={
                "Connection": "close",
                "Content-Length":"141",
                "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",
                "Referer":"https://www.mosoteach.cn/web/index.php?c=res&m=index&clazz_course_id={}".format(classid),
                "Accept":"application/json, text/javascript, */*; q=0.01",
                "Origin": "https://www.mosoteach.cn",
                "X-Requested-With": "XMLHttpRequest",
                "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",
                "Accept-Encoding": "gzip, deflate",
                "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
                "Cookie":"aliyungf_tc={0};teachweb={1};SERVERID={2}".format(aliyungf_tc,teachweb,Ser)
                }
            data4="clazz_course_id={}&res_id={}&watch_to=1200&duration=1200¤t_watch_to=0".format(classid,viedoid[k])#这里的watch_to和duration要设置的大一些,如果设置小了,有些视频长度大于这个数值,你就会看不完
            result4=requests.post(url4,headers=head4,data=data4).json()
            print("视频%s的结果为:%s"%(viedoid[k],result4))
        else:
            pass
login()

至此大功告成,接下来给大家看看效果
soogif1.gif
我想着先将这个告知蓝墨云的人员的,但一直找不到联系方式,我在那个帖子回复说我用Python搞出来了,有人想让我分享,但那个时候正在考试,没有大把时间来写帖子,我发出来仅供大家学习,不要用于非法用途,我可不负责任哈,在这段时间我也会联系蓝墨云那边,看看让他们修复。我靠,写了一下午,都没吃晚饭,我先吃东西去了,之后再发exe文件
登录返回的包.png

免费评分

参与人数 12吾爱币 +16 热心值 +10 收起 理由
fz71497412 + 1 已经无法使用了 登陆自动退出
IMRE + 1 + 1 用心讨论,共获提升!
2111 + 1 + 1 谢谢@Thanks!
为海尔而战 + 1 + 1 我很赞同!
小小/ng + 2 + 1 我很赞同!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
matinlee + 1 + 1 我很赞同!
策士 + 1 + 1 虽不是最后,但是最好的学习时光,别荒废了
tuziang + 1 + 1 我很赞同!
FleTime + 1 你的英语老师正在赶来的路上。。
ARondMan + 1 热心回复!
_小白 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| laoxiaodiao 发表于 2019-7-11 00:34
baozitou6 发表于 2019-7-11 00:27
学习资料方便透露下不。想学习下

就在图书馆看了一本关于Python比较基础的书,我也是边翻书边敲的代码,现在在啃疯狂Python讲义,这个论坛里有电子版。但我把书买了,感觉还不错
 楼主| laoxiaodiao 发表于 2019-7-10 23:42
choo1i3 发表于 2019-7-10 21:29
学一个星期就这么厉害???无敌了楼主,流下了羡慕的泪水

哈哈,学C之后再学Python会觉得不用考虑很多东西,你也可以的,我们一起加油,我也不是计算机专业,编程是我的爱好
安兆童 发表于 2019-7-10 20:56
_小白 发表于 2019-7-10 20:58
哇,学一个星期这么厉害啦,写的很不错
huluwa123 发表于 2019-7-10 20:58
热乎呢   围观
一笑懸命桑 发表于 2019-7-10 21:04
可以,学习学习了!!
蔚蓝色 发表于 2019-7-10 21:17
学一个星期就这么厉害了,厉害厉害
choo1i3 发表于 2019-7-10 21:29
学一个星期就这么厉害???无敌了楼主,流下了羡慕的泪水
xiaoyun12138 发表于 2019-7-10 21:31
6666666666
某天大魔王 发表于 2019-7-10 21:52
这么厉害的。。。。厉害了
不忘记你的眼睛 发表于 2019-7-10 21:58
无敌了,留下了没有技术的泪水
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-28 20:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表