PKU Helper 招新面试三

T2
请通过 HTTP 抓包、Chrome 调试模式、查阅 HTML 源码或其他任何合理方式(甚至是搜索前人的博客或反编译 PKU Helper 应用等),分析北大门户(portal.pku.edu.cn)、网关(its.pku.edu.cn)、选课网(elective.pku.edu.cn)或教务网(dean.pku.edu.cn)其中任何一个或多个的登录行为。并根据你的分析结果,通过合适的顺序调用校方接口(IAAA、portal 等),实现一个输入学号、密码,并返回对应的姓名的功能。
如果你有 Android、iOS 或 Web 开发能力的话,建议实现为 GUI 形式,包含简单的两栏输入和登录按钮,并在登录成功后显示姓名即可。
如果你无法实现为 GUI 形式,则实现为命令行输入用户名、密码,命令行输出姓名的形式即可。或者任何你认为的可以方便展示的形式。
命令行形式可能形如:
1700012345 THIS_IS_A_PASSWORD
张三
GUI 形式的 UI 样式可以参考 PKU Helper 或校方网站的形式。

没有开发经历QAQ速成一波Web开发感觉有点悬就没有尝试。之前有参加过Rails on Girls的公益活动学习,在教练的帮助下用Ruby&Rails做了一个小网页,后来好久没用就真的忘了好可惜…

关于Password的问题,进的组倒是在做这方面的东西,不过有的是口令破解有的是口令策略加密算法之类的东西,和这个项目的关系不大。

我直接去查了PKU Helper在Github上面的源码,好吧我坦诚之前没有学过Java。于是用学校的渣渣网下载了Android Studio,下了源码包。然后找到里面IAAA然而看不懂,这就很刺激了。凭着我写C++的直觉和根据变量名注释乱猜一通的本事, finishIAAA()这个函数是完成IAAA之后用的,里面出现了

.setMessage("来自" + Constants.major + "的" + Constants.name + "你好,欢迎使用PKU Helper!")

所以我猜测Constants是一个用户的对象,Constants.name就是T2里面需要的返回名字的功能。

parameters = WebConnection.connect("https://iaaa.pku.edu.cn/iaaa/oauthlogin.do",arrayList);

这一句应该是和访问iaaa有关的。起码说明这段代码看起来是能够实现T2的功能的,还实现了游客登陆/管理员登陆/判断登陆账号密码是否错误等等许多的功能。

new LoginTask(username, password).execute();

这一句判断登陆,LoginTask好像是个类,在后面出现了,核心是判断登陆成功失败&判断网好不好。

顺便

else if ("12345678".equals(username) && "admin".equals(password))

这一句是一个后门一般的东西么感觉好神奇突然有了新惊喜,好想玩一玩啊23333。于是真的试了一遍Name=12345678,PW=admin,于是出现了欢迎管理员的界面好开心啊~刚为了分析特地又装了一遍PKU Helper,感觉贡献了下载量的自己真是棒棒哒~

由于ddl将近所以我并没有给出我的实现,有的只是PKU Helper的一段我相信能够实现这个功能的源码&基于源码的我的一通碎碎念。而且由于我从未见过java所以基本是猜的,有些描述可能直接用的是C里面的称呼也非常抱歉了。最重要的,含泪求过初试啊啊啊!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值