分享湖南软大自动健康打卡思路

个人觉得存在的难题

1.首先首页的登录接口,他的密码加密使用的不是简单的MD5加密

正常123456由MD5加密后应该是e10adc3949ba59abbe56e057f20f883e,我们进行对比后,发现还是有相同的点,但又不完全相同,我们应该想到,他应该是在MD5加密的基础上做了点手脚。

2.在打卡页面提交相关信息时,会携带一个token进行提交,当token不一致时就提交不上。

分享湖南软大自动健康打卡思路_第1张图片

 

解决方案

1.解决登录密码的加密问题

我们不难发现他这个加密方式是由前端使用js进行加密的,因为他在传参数的时候就是加密后的密码,这时候我们就可以查看网页的源代码去找加密的js文件,看看他到底是怎么加密的。

首先我们找到他的密码输入框,看到他把密码框设置了一个id名为pd_mm

分享湖南软大自动健康打卡思路_第2张图片

我们在往下翻可以看到他引入了好几个js文件,经过一个一个排查,最终把加密的方法锁定在画红框这个js文件中,我们点进去查看。

分享湖南软大自动健康打卡思路_第3张图片

点进去搜索我们在密码输入框中找到的密码id,发现了他的加密方法就在里面,由于网页查看排版不便于观察,我们可以右键另存为该js文件,用HBuilderX进行代码排版操作这样就便于我们观察。

分享湖南软大自动健康打卡思路_第4张图片

 分享湖南软大自动健康打卡思路_第5张图片

排版后的js文件,我们就把这个密码加密的方法锁定在getPW()上,简单看一下,使用的是JQuery库中的md5加密方法后又使用条件判断语句对原MD5进行截串操作,最终把这个密码返回。

 分享湖南软大自动健康打卡思路_第6张图片

 其实这个密码加密方法很简单,我们也可以自己复现一下这个密码加密方法,跟他自己加密后提交的密码是一模一样的,第一个难题我们就成功解决了。

分享湖南软大自动健康打卡思路_第7张图片

 2.解决打开页面会携带token进行提交打卡

我们还是一样的思路,在打卡页面右键查看源代码进行分析,不难看出他是用了input标签中的hidden属性对该input输入框进行了隐藏,所以我们在页面中是看不到这个输入框的,每刷新一次他的value值都是不一样的,经过我的层层排查并未发现是前端js文件中的某个方法为他随机赋值产生的,那就不太好办了,他肯定是由后端传进过来的,具体实现方法我们不得而知,但是这里可以提供一个不太好的思路,就是每次通过提交打卡的接口前,先访问一次这个提交页面,把这个token值通过截字符串的方式截取出来从而传给打卡接口就可以实现!

分享湖南软大自动健康打卡思路_第8张图片

总结

1.本健康打卡系统安全防护措施还是不太够的,他在前端对密码进行加密,我个人认为是极其不安全的,很容易让别人发现你的加密方法是什么,从而爆破你的密码。

2.以上就是我提供的思路,如有更好的方法可以发布在评论区进行讨论。

3.最后,本文章收藏过10出一期用Java代码的方式去实现自动打卡的全过程!

你可能感兴趣的:(前端)