前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分析最近的一个网课答案查询2.0

分析最近的一个网课答案查询2.0

作者头像
SingYi
发布2022-07-14 16:21:32
4650
发布2022-07-14 16:21:32
举报
文章被收录于专栏:Lan小站Lan小站

这是一次没啥技术含量的分析,只为水一篇博文嘿嘿,这个接口也是这个作者免费开放的。在此感谢作者

最近看到一些网站都有这个网课答案查询软件

image.png
image.png
image.png
image.png

于是想着,这么简单的软件,应该不会很复杂吧,然后下载之后进行了抓包(谁让咱不会逆向涅)

打开工具:Wireshark(还真是个强大的软件呢),随便查询一下,然后慢慢找吧

image.png
image.png

似乎就是这个了

image.png
image.png

把这个值,转码看下吧

image.png
image.png

好吧这个是返回值了,应该没错了,然后是这个请求url,继续拿去转码一下

image.png
image.png

三个值:title,secret,token

image.png
image.png

然后既然是get请求,直接放到浏览器看下,老铁没毛病。

image.png
image.png

然后就是分析三个值了,第一个title就是关键词了,第二个secret暂时不知道,第三个token估计是秘钥吧

然后打开那个网站看一下

image.png
image.png

好吧三个值是什么意思知道了,secret加密文件加密的,token是作者授权的,所以token应该不变就这一个就行了。

既然是加密文件,那要么是在本地文件,亦或者还有接口,然后继续翻抓包软件吧。这次把目标锁定在http协议上。所以加一个过滤器

image.png
image.png

嗯,又看到一个

image.png
image.png

继续转码看看

image.png
image.png

t=后面跟的是之前搜的东西,放到浏览器打开看下

image.png
image.png

这串值似乎就是之前的加密文件加密后的东西

/topic/getSubject?title=lanol&secret=8942b58ebfe8e11133e7127e47256fe1&token=C00B0C13B9814BEA5360766F4445D623

然后看下这个页面源代码吧。

image.png
image.png

引用了一个JS,然后就是加密。然后思路:把这个JS文件保存,用python调用。

代码语言:javascript
复制
import execjs

with open('jm.js', 'r') as f:
    js = f.read()
question = 'lanol'
jiami = execjs.compile(js).call('get_tk', f'{question}')
print(jiami)
image.png
image.png

然后ok,生成的secret一模一样

然后就可以查题了

image.png
image.png

完美

然后我又翻了一下抓包记录

image.png
image.png

打开到浏览器看了下

image.png
image.png

感谢这个软件的作者了

最后python代码:

代码语言:javascript
复制
import execjs
import requests


def answer(question, jiami):
    url = f'https://www.150s.cn/topic/getSubject?title={question}&secret={jiami}&token=C00B0C13B9814BEA5360766F4445D623'
    html = requests.get(url).json()
    return html


print("欢迎使用Lan网课查题助手")
print("www.lanol.cn")
with open('jm.js', 'r') as f:
    js = f.read()
while True:
    question = input("请输入题干(六个字以上):")
    jiami = execjs.compile(js).call('get_tk', f'{question}')
    result = answer(question, jiami)
    qu = result['title']
    an = result['answer']
    print(f'题目:{qu}
答案:{an}')

js文件:

jm.js密码:www.lanol.cn|大小:212KB

已经过安全软件检测无毒,请您放心下载。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档