精准猎取科技资讯,天堂视频在线观看,高效阅读科技新闻_黄色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/



隨意打賞

百度統計
提交建議
微信掃一掃,分享給好友吧。
主站蜘蛛池模板: 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 手机游戏_热门软件app下载_好玩的安卓游戏下载基地-吾爱下载站 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 我车网|我关心的汽车资讯_汽车图片_汽车生活! | 安徽成考网-安徽成人高考网| 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 硅胶制品-硅橡胶制品-东莞硅胶制品厂家-广东帝博科技有限公司 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 预制直埋蒸汽保温管-直埋管道-聚氨酯发泡保温管厂家 - 唐山市吉祥保温工贸有限公司 | 广州市哲铭油墨涂料有限公司,水性漆生产研发基地 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | loft装修,上海嘉定酒店式公寓装修公司—曼城装饰 | 纯水设备_苏州皙全超纯水设备水处理设备生产厂家 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 新车测评网_网罗汽车评测资讯_汽车评测门户报道 | 旋振筛|圆形摇摆筛|直线振动筛|滚筒筛|压榨机|河南天众机械设备有限公司 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 电力测功机,电涡流测功机,磁粉制动器,南通远辰曳引机测试台 | 贝朗斯动力商城(BRCPOWER.COM) - 买叉车蓄电池上贝朗斯商城,价格更超值,品质有保障! | 选宝石船-陆地水上开采「精选」色选机械设备-青州冠诚重工机械有限公司 | 机械立体车库租赁_立体停车设备出租_智能停车场厂家_春华起重 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 分子蒸馏设备(短程分子蒸馏装置)_上海达丰仪器 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 广州办公室设计,办公室装修,写字楼设计,办公室装修公司_德科 | 合肥抖音SEO网站优化-网站建设-网络推广营销公司-百度爱采购-安徽企匠科技 | 加热制冷恒温循环器-加热制冷循环油浴-杭州庚雨仪器有限公司 | 全自动包装机_灌装机生产厂家-迈驰包装设备有限公司 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 浙江栓钉_焊钉_剪力钉厂家批发_杭州八建五金制造有限公司 | loft装修,上海嘉定酒店式公寓装修公司—曼城装饰 | 金联宇电缆总代理-金联宇集团-广东金联宇电缆实业有限公司 | 成都热收缩包装机_袖口式膜包机_高速塑封机价格_全自动封切机器_大型套膜机厂家 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 一体式钢筋扫描仪-楼板测厚仪-裂缝检测仪-泰仕特(北京) | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 |