js滚动条下拉一定值_JS逆向 | *APD模拟登录(AES)

点击上方“逆向新手”,选择“关注公众号”

跟我一起学Python爬虫逆向!

88da5529d30c4b4ff8c3e826c4c57c91.png

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!

目标网站:

aHR0cHM6Ly93d3cudGFwZC5jbi9jbG91ZF9sb2dpbnMvbG9naW4=

    抓包,输入错误账号密码,可以看到其中的encrypt_key、encrypt_iv、password、dsc_token共4个参数均被加密

63b6259dc2184a289d7af28c3b64ed65.png

图1

    一个一个来,先全局搜索encrypt_key,点开第一个js文件,继续搜索encrypt_key,发现只有一处,同时可以明显看到是通过AES加密,我们先打上断点分析下加密逻辑

928148e3a550d5a1c7c0bbd44176945c.png

图2

   可以看到这里的 t 即为我们输入的密码, o 是一个随机数经过MD5所得,下面的for循环又构造了一个对象t,传入了密码和o,还有AES加密的模式mode和填充padding,最后再将加密后的password_encode传入到id为password_input的Element对象的值中。同理的还有encrypt_iv和encrypt_key

cf56be964cdbd013c5e27b1cb4fe87e2.png

图3

   我们在Elements选项卡中搜索下password_input,可以看到它的name属性即为post传参的一个参数。至此,已经找到3个加密处

a9a6b1fdd4963e13cd4574e907970a03.png

图4    回到Sources选项卡,通过将鼠标悬停于CryptoJS.AES.encrypt这个函数上,点击上面的函数,即可跳转到函数定义处,为一个aes开头的js文件。这里我们不需要分析它具体是怎么操作的,通过快速查看这个文件的顶部与底部,并搜索该文件中是否包含window、navigator等浏览器环境,发现该文件可以直接全部复制拿来使用。同时将图3的逻辑经过一定改写,运行代码如下:

3a2f3c9830ead5f63c23ee4784f95d1e.png

图5   前面709行全部为aes开头的js文件复制的。这里出现报错,看报错跟pad填充有关,同时经测试,发现问题出在CryptoJS.pad.ZeroPadding这,通过全局搜索CryptoJS.pad.ZeroPadding,发现原来该对象通过另一个js文件定义的,直接全部复制下来,再次运行,加密成功:

76aaca33486fa85d372d86e6bad88781.png

图6  继续全局搜索最后一个参数dsc_token,可以看到第一个红框,其实在设置一个cookie键为dsc-token的值e,而e是经过第二个红框的函数生成。

32c21789bdad9fe5cecb6753ba1685d6.png

图7    通过对比发现,cookie为dsc-token的值与post参数dsc_token的值相等,因此这里的e值即为dsc_token,故重新构造函数如下,成功获取4个加密参数,至此全部分析解密完毕。

9cb8d8e8ecb4d6e76b9ae2337b47d1ee.png

图8              该网站详细代码,已上传本人GitHub,可点击左下角“ 各位加油d55f572c0efe962ee8ccf629724d7490.pngd55f572c0efe962ee8ccf629724d7490.png     

—  END —

点击这里给我写留言📝

后台点击“加入群聊”一起交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值