精准猎取科技资讯,天堂视频在线观看,高效阅读科技新闻_黄色av网站在线免费观看_科技猎

pylogin系列之搞定百度統計

我是創始人李巖:很抱歉!給自己產品做個廣告,點擊進來看看。  

概述

這次分析的百度統計登錄接口,算是這幾個中最簡單的了。

但是學到了一個新東西,叫做js模板,搞web的同學應該知道,我這種web半吊子第一次見,非常有意思。

工具:

1. chrome/firefox2. f12,network3. python:requests、re

登錄接口

打開百度統計首頁 https://tongji.baidu.com/web/welcome/login ,點開登錄框,f12。嘗試輸入之后,查看發送的數據。

Request URL:https://cas.baidu.com/?action=loginRequest Method:POSTStatus Code:200 OKappscope[]:6appscope[]:7appscope[]:12appid:12entered_login:anhkgg //名字entered_password:1111111111111111 //密碼entered_imagecode:9mxm //驗證碼charset:utf-8fromu:https://tongji.baidu.com/web/welcome/loginbackselfu:https://tongji.baidu.com/web/welcome/loginsenderr:1

除了上面注釋的需要輸入的三個字段,其他字段意義都不明確,偷點懶,多次嘗試后發現其他字段不會變化,那么就用固定值了。

點擊驗證碼,看到網絡,拿到獲取驗證碼的請求,key使用10位時間戳。

GET https://cas.baidu.com/?action=image&key=1503151305

所以登錄接口就出來了, vcode 需要人工輸入。

url = 'https://cas.baidu.com/?action=image&key='   time_stamp(10)r = self.s.get(url)payload = {'appscope[]':6,'appscope[]':7,'appscope[]':12,'appid':12,'entered_login':name,'entered_password':pwd,'entered_imagecode':vcode,'charset':'utf-8','fromu':'https://tongji.baidu.com/web/welcome/loginback','selfu':'https://tongji.baidu.com/web/welcome/login','senderr':1,}url = 'https://cas.baidu.com/?action=login'r = self.s.post(url, data = payload)

接著看看登錄返回狀態,如果失敗了,返回數據中包含如下數據:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="ReFresh" content="0; url=https://tongji.baidu.com/web/welcome/login?fromu=https://tongji.baidu.com/web/welcome/loginback&e=用戶名密碼錯誤&un=anhkgg&aid=12&errno=132" /><title>正在處理...</title></head><body><script>var url="https://tongji.baidu.com/web/welcome/login?fromu=https://tongji.baidu.com/web/welcome/loginback&e=用戶名密碼錯誤&un=anhkgg&aid=12&errno=132";location.href=url;</script></body></html>

然后瀏覽器加載該url,顯示錯誤提示信息

Request URL:https://tongji.baidu.com/web/welcome/login?fromu=https://tongji.baidu.com/web/welcome/loginback&e=用戶名密碼錯誤&un=anhkgg&aid=12&errno=132Request Method:GETfromu:https://tongji.baidu.com/web/welcome/loginbacke:用戶名密碼錯誤un:anhkggaid:12errno:132

其中 e 是錯誤提示信息,errno是錯誤號。

登錄成功返回數據如下,沒有 e 錯誤信息。

<script>var url="http://cas.baidu.com/?action=check&appid=12&u=https://tongji.baidu.com/web/welcome/loginback?castk=c4086gh7e82166251d451&fromLogin=1";location.href=url;</script>

那么就可以先通過正則拿到url,通過搜索url是否有 e 判斷是否登錄成功,并且拿到提示信息。成功則繼續訪問該url跳轉到成功頁面,獲取其他需要的信息。

pattern = re.compile(r'var url="(.*?)";')cont = re.search(pattern, r.content)url = cont.group(1)pattern = re.compile(r'e=(.*?)&un=')cont = re.search(pattern, url)if cont != None:r = urllib.unquote(cont.group(1)) #失敗return utf2gbk(r)r = self.s.get(url) # 成功

js模板

這里比較意思的是使用的js模板來生成登錄表單。

具體js模板使用看 這里 。

<script id="LoginTemplate" type="text/template"><div id="LoginContainer" class="login-dialog"><div id="TopTmp">?</div>if (this.isIco == 1) {<div id="LoginMain" class="ico-login clearfix"><div class="visitor-login-tab" id="LoginTab">請輸入查看密碼</div><div id="LoginInput" class="login-input">if (this.errMsg) {<div id="ErrorTip" class="error">#{this.errMsg}</div>}...</div></div>}else {<div id="LoginMain" class="login-main"><form method="post" action="#{this.loginAction}"><input type="hidden" value="12" id="Appid" name="appid">...<input type="hidden" value="#{this.selfUrl}" name="selfu" /><input type="hidden" value="1" name="senderr" /></form></div></div>}</div><div class="dialog-bottom-bg"></div></script>

從上面代碼中可以看到,某些標簽的值使用了 #{this.xxx} 這樣的語法,不是直接填入的具體內容,更加靈活,擴展更容易。

然后在點擊登錄按鈕之后,通過函數格式化一個全局定義的變量來生成的登錄表單。具體如下:

//全局數據,用于替換表單中的this.xxx<script type="text/javascript">VAR = {webMasterRegister: "https://tongji.baidu.com/web/register",customRegister: "https://u.baidu.com/ucweb/?module=Reguser&controller=reg&action=index&appid=3",union_forget: "http://union.baidu.com/findPassword!input.action",shifen_forget: "https://aq.baidu.com/new/#/findpwd",uc_forget: "https://aq.baidu.com/new/#/findpwd",waiting_img_src: "/web/img/loadingImage.gif",app_id: "0",errMsg: "",loginUrl: "/web/welcome/login",loginAction: "https://cas.baidu.com/?action=login",userName: "",authCode: "https://cas.baidu.com/?action=image&key=1503151305",registerUrl: "/web/register",fromUrl: "https://tongji.baidu.com/web/welcome/loginback",selfUrl: "https://tongji.baidu.com/web/welcome/login",isIco: "0",webmasterUserNum: "2097176",customerUserNum: "2270927",mtjUserNum: "2262130"};</script>

然后在login.js中,通過下面的函數來初始化表單,并且顯示。

其中 n.format("LoginTemplate", VAR) 用于格式化VAR定義的數據到表單的數據中。

, h = function() {var e = t(".login-trigger").eq(0);e.on("click", function() {s || (s = new i({width: 345,isModal: !0,titleText: "",isSingle: !0,content: n.format("LoginTemplate", VAR) //初始化登錄表單數據}),loginController.init()),s.show()});

而在format具體如何替換的,就隨意實現了,這里就不在具體分析,有興趣跟著分析的同學可以去看看common.js中的代碼。

總結

百度統計接口非常簡單,密碼未做變換,使用https。

登錄之后具體做什么也不在分析。

預告下次做百度主站的登錄分析,簡單看了下,非常…復雜!

另外安利一下微信公眾號:漢客兒,和專欄同步更新。

另外預告后面會做Rootkit系列文章,敬請關注!

轉載請注明出處,博客原文: https://anhkgg.github.io/pylogin-baidutongji-login-analyze/



隨意打賞

百度統計
提交建議
微信掃一掃,分享給好友吧。
主站蜘蛛池模板: 导电银胶_LED封装导电银胶_半导体封装导电胶厂家-上海腾烁 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 净化板-洁净板-净化板价格-净化板生产厂家-山东鸿星新材料科技股份有限公司 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 珠海网站建设_响应网站建设_珠海建站公司_珠海网站设计与制作_珠海网讯互联 | 罐体电伴热工程-消防管道电伴热带厂家-山东沃安电气 | 贴片电感_贴片功率电感_贴片绕线电感_深圳市百斯特电子有限公司 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 安徽千住锡膏_安徽阿尔法锡膏锡条_安徽唯特偶锡膏_卡夫特胶水-芜湖荣亮电子科技有限公司 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 连续密炼机_双转子连续密炼机_连续式密炼机-南京永睿机械制造有限公司 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 西安中国国际旅行社(西安国旅) | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 硫化罐-电加热蒸汽硫化罐生产厂家-山东鑫泰鑫智能装备有限公司 | 伸缩节_伸缩器_传力接头_伸缩接头_巩义市联通管道厂 | 篮球架_乒乓球台_足球门_校园_竞技体育器材_厂家_价格-沧州浩然体育器材有限公司 | 智慧消防-消防物联网系统云平台| 冷水机-冰水机-冷冻机-冷风机-本森智能装备(深圳)有限公司 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | TPM咨询,精益生产管理,5S,6S现场管理培训_华谋咨询公司 | 合景一建-无尘车间设计施工_食品医药洁净车间工程装修总承包公司 | 钢衬玻璃厂家,钢衬玻璃管道 -山东东兴扬防腐设备有限公司 | 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶 | 示波器高压差分探头-国产电流探头厂家-南京桑润斯电子科技有限公司 | 正压密封性测试仪-静态发色仪-导丝头柔软性测试仪-济南恒品机电技术有限公司 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 悬浮拼装地板_幼儿园_篮球场_悬浮拼接地板-山东悬浮拼装地板厂家 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 气体检测仪-氢气检测仪-可燃气体传感器-恶臭电子鼻-深国安电子 | 橡胶膜片,夹布膜片,橡胶隔膜密封,泵阀设备密封膜片-衡水汉丰橡塑科技公司网站 | 广州番禺搬家公司_天河黄埔搬家公司_企业工厂搬迁_日式搬家_广州搬家公司_厚道搬迁搬家公司 | 壹作文_中小学生优秀满分作文大全 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 |