一、首先我们打开Fiddler抓包工具然后按照正常流程进行下单
在结帐之前我们进行抓包
可以看到在吊起支付的时候他们会将订单的一些信息传递给第三方的支付网站,这部分内容我们是修改不了的,因为它们这边有一个sign进行验签。查看一些支付的平台发现他们的sign生成是由所有的参数进行a-z的排序然后加上商户的密钥进行md5。现在我们拿到的信息是 金额、商品名称、通知地址、订单号、商户pid、返回地址、sign(MD5值)、加签方式。我们现在就差一个密钥,这个密钥一般情况下我们是拿不到的。在四月多的时候我注册过一次他们使用的平台,发现他们生成的密钥只有8位。即便是只有8位数那么也需要62的8次方也就是**218340105584896 才能猜出来**既然知道了参数信息-密钥的长度-md5值,那么md5的生成就是(参数+密钥)的MD5,通过穷举密钥,然后拿着生成的md5和最终的md5作比较。**如果相同的话做一下测试,可以正常使用就是正确的密钥,不正确的话就是md5出现了碰撞的情况。 代码的实现很简单可以自己拿着其他语言试一下,所有的参数a-z拍寻,除去加密方式和验签值。参数后面加上key key可以生成随机字符,最好去支付平台注册一下看看密钥是多长。然后确定随机字符的长度。
这只是一个靶站,密钥是爆破出来的,不信的可以自己看源码
|