声明:
本文所载内容仅限于学习交流之目的。所有抓包内容、敏感网址及数据接口均已进行脱敏处理,严禁将其用于商业或非法用途。任何因此产生的后果,作者不承担任何责任。若涉及侵权,请及时联系作者以便立即删除。
近期,笔者在学习相关知识的过程中,亦在寻找合适的网站进行实践练习。本文仅为笔者闲暇之余的知识分享,希望能对大家有所启发。
首先,启动我们的抓包工具——在这里,笔者选用的是Fiddler。当然,工具的选择因人而异,大家可以根据自己的喜好和习惯挑选最适合自己的。接下来,我们访问目标网站并进行登录操作,同时对整个过程进行抓包记录。
我们随机写一个密码登录进去,抓包尝试一下。
接下来我们看一下抓包结果
我们可以观察到,密码在传输过程中已被加密处理。显然,前端加密是通过JavaScript实现的。进一步思考,这种加密机制很可能涉及到公钥和私钥的使用。
那我们返回网页f12观察一下找一下我们登录的其他值是怎么来的。
通过观察发现,_eventId、dllt、cllt等都是死的,那我们只需要解决password和execution就可以了。 我们f12打开源代码全局搜索password
我们再接着找,顺藤摸瓜看一下加密代码;发现是aes加密,具体代码如下:
它接收两个参数,一个是加密盐一个是密码,我后面打断点发现加密盐就是图中的:
那么加密方式知道了,加密代码有了就不难了吧,到这里password的基本搞定了。
而execution 通过抓包发现它的值也是网页上的值,一模一样的。 因为笔者不会python所以用Java写的简单获取代码
public static void main(String[] args) {
String url = "替换成要抓包的url";
try {
Document document = Jsoup.connect(url).get();
Element pwdEncryptSaltElement = document.getElementById("pwdEncryptSalt");
Element executionElement = document.getElementById("execution");
if (pwdEncryptSaltElement != null) {
String pwdEncryptSaltValue = pwdEncryptSaltElement.attr("value");
String executionValue = executionElement.attr("value");
System.out.println("pwdEncryptSalt value: " + pwdEncryptSaltValue);
System.out.println("execution value: " + executionValue);
}
}catch (Exception e){
e.printStackTrace();
}
}