参数 codestring
codestringjxG9506c1811b44e2fd0220153643013f7e6b1898075a047bbd
套路我相信很多人已经节制了,先在Charles中搜索值

参数值都看到了,token、tt、dv、callback这些变革的参数我们都知道了吧,其他的参数固定,别问我为什么。这个logincheck把稳到了吗?是不是有人能想起前面的?不能放在字典里赋空值,要直接写在url后面,好了轻松搞定codestring。
参数 verifycode
verifycode又把
验证码就不用全量搜索了,图片嘛,浏览一下图片要求就知道了
参数是codestring不用我提醒了吧,要求一下手动输入哦,有的人问为什么不搞自动识别的,实在没有必要,现在打码平台很便宜,而且大部分验证码都可以搞定,如果自己去搞得话,太费韶光识别率还低,以是我这里就不说验证码这个了,如果有韶光往后单独写一篇吧。
参数 traceid
traceidEA43E001
老套路先搜索值,没搜到!
!
!
,换name试试
搜了很多创造都是这个createTraceID函数创建的
都找到了,自己翻译一下吧
参数 ppui_logintime
ppui_logintime19863
又是个韶光,直接搜name吧
只搜到这一个,然后搜一下timespan
当前韶光减去一个初始韶光,这是一个韶光段,该当是从某次要求开始到某次要求结束,对付这种我们捏造一个吧,没必要那么精确,看一下大概的韶光,取15000~30000吧
参数 rsakey
rsakey3kUWNJ6tggVCigi7EoQZcsuKpBcDKPKj
搜一下值
须要的参数不说了哦,这回看看返回值,pubkey、key,这个key的值便是我们的rsakey,pubkey我们后面会用到,先记下
fp_info&fp_uid
fp_uid19ec2fa82bec175d9628b81d9683e9d2fp_info0245fc9782abae99a665854526e19a19002~~nIpK32ZQH2fI2i_lnn9ypKA34B...
这两个参数放在一起说,把稳fp_uid和fp_info前面的是一样的,从002~~开始不一样了
先搜了fp_uid,创造是获取cookie的,又没有搜到set cookie的地方,那么有可能是通过本地天生的,对付本地天生的,实在最大略便是固定值,我也是利用固定值试了试,没有问题,当然是调试了一番往后才这么做的,由于调试太麻烦了。再搜一下fp_info看看吧
这个就可能性比较大了,开始调试了,打开chrome->隐身模式->清理缓存->打开百度首页->点击一下登录按钮,找到刚才的js文件,搜~~~
然后再清理缓存,重新刷新百度首页,点击登录按钮
打印一下n和t的值
开始调试,进入到这个函数往后,我们看到这里有几个函数d.genGUID,打印一下看看
是不是有点fp_uid的样子了,那就它了,这是哪个函数呢,很大略,打印一下
翻译成python或者用python实行js脚本的办法都行,fp_uid干掉了吧,fp_info后半部分太麻烦了,有谁搞定了麻烦见告我一声。我这里就用固定值了。
参数password
passwordai2s9z7UUf9XFguwg6EUslu607/CNrit0B3c4mGF/VzEIjc+SkFM7kuSRx2LWkTAk0lecetCIQcpZ9xKtXdKy3NG7aJfkFbWxMFqCNtM3birZbkgQw6l7UKGYpeuIDAn0ae/52nU4HkcSmPAL8iGV7hQP9CxoWYpL59r8Vq8dug=
搜一下password=
断点打好了就开始调试吧,完犊子了本日去世活调试不到断点处了,实在这个比较明显的,当然如果你对rsa加密不理解或者理解的不多那就不随意马虎了,首先想想我们前面获取的pubkey的值,-----BEGIN PUBLIC KEY-----......-----END PUBLIC KEY-----\n,我先贴一下代码吧
def encript_password(self, password, pubkey): pub = rsa.PublicKey.load_pkcs1_openssl_pem(pubkey.encode('utf-8')) encript_passwd = rsa.encrypt(password.encode('utf-8'), pub) return base64.b64encode(encript_passwd).decode('utf-8')
看一下这个load_pkcs1_openssl_pem函数
def load_pkcs1_openssl_pem(cls, keyfile):\"大众\"大众\"大众Loads a PKCS#1.5 PEM-encoded public key file from OpenSSL. These files can be recognised in that they start with BEGIN PUBLIC KEY rather than BEGIN RSA PUBLIC KEY. The contents of the file before the \"大众-----BEGIN PUBLIC KEY-----\"大众 and after the \"大众-----END PUBLIC KEY-----\公众 lines is ignored. :param keyfile: contents of a PEM-encoded file that contains the public key, from OpenSSL. :return: a PublicKey object \"大众\公众\公众 der = rsa.pem.load_pem(keyfile, 'PUBLIC KEY') return cls.load_pkcs1_openssl_der(der)
如果js可以调试进去_SBCtoDBC,你就会创造它对BEGIN和END的处理,那实际上它便是在做rsa加密,以是说如果你理解rsa的这种加密办法,看到BEGIN PUBLIC KEY和END PUBLIC KEY的时候就立时能猜出来了,以是加密函数已经给你了,pubkey获取了,password你自己知道,那这个也搞定了。
至此,登录参数都搞定了,我们可以向下进行了
要求的url和参数都在登录的返回值里,解析一下https://www.baidu.com/cache/user/html/v3Jump.html?err_no=0&callback=parent.bd__pcbs__psvho&codeString=&userName=wuqing198985&phoneNumber=&mail=&hao123Param=RmxaRU5VTVcxTVNWcDFiMDlEU3psMWFVeGtaa2c0TldOSk0yVk1WVFV0WWxCcmVuUmxWSEl0VWpsaVl6bGhRVUZCUVVGQkpDUUFBQUFBQUFBQUFBRUFBQUNzdWQwS2QzVnhhVzVuTVRrNE9UZzFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFIM2dwMXA5NEtkYVJG&u=https://www.baidu.com/&tpl=mn&secstate=&gotourl=&authtoken=&loginproxy=&resetpwd=&vcodetype=&lstr=<oken=&bckv=1&bcsync=KnqkeCS8J7B9vuKnaRltPTrp9Kl0hPsH6votXG00OmsypOV8lYboSn7pxuyb%2F1l8XUlp9M0v0gIKoL9og3nXmZYFaGCcMO%2Fx4roGpF7SFA0cqXGlnhwGeBmIY5cVxgeM6aJ2RjPXp3fb6q41WjTiipEvOXCvcfuW7XLemxoEv%2F2ribszd6n7ql7aO7l850fOFqzBiZGeBNu3D0OZFnJeSsOHMEquD6Ahw9dbRl9ahaaRSEMDxQtrn36Bj2jayIY88OTyu7CWjtApT2eZ2SfAjBhr3IzHbnbSPhtoL82nsH7WwqHGeqq3uxYDdqH7ZkgjE3JlQV9SDQCPTnfpPxIrYg%3D%3D&bcchecksum=2590966377&code=&bdToken=&realnameswitch=&setpwdswitch=&bctime=1520951421&bdstoken=&authsid=&jumpset=&appealurl=&realnameverifyemail=0&traceid=&realnameauthsid=&accounts=
要求完往后,返回值里没有什么明显的有用值,那我就直接访问了一下首页
我们怎么剖断登录成功呢,一样平常便是获取有用户名的页面,然后获取一下用户名,看是否存在,如果有那么就登录成功了。很幸运访问首页后登录成功了。百度仿照登录到这里就结束了。之前微博仿照登录的时候,访问一个页面,返回值里是下一个页面链接,再访问再返回下一个。我们在处理这种的时候呢,我们要怎么处理呢?
逆向推理:首先找我们须要的目标点,比如一开始我就找登录要求,然后看登录要求里面须要哪些参数,然后再一步步剖析这些参数的来源,实在便是逆向推,其余登录要求完成后,再找一个目标点,便是已登录的页面,如果没有成功,就从登录往下看。基本便是这么一个思路。
末了要再说一下,写这个的目的并不是为了什么项目之类的,便是学习,练习一下,以是大家就不要吹毛求疵了,而且我也不接管吐槽。有见地可以提,反正我也不改^_^