這是作者的系列網(wǎng)絡(luò)安全自學(xué)教程,主要是關(guān)于網(wǎng)安工具和實(shí)踐操作的在線筆記,特分享出來(lái)與博友共勉,希望您們喜歡,一起進(jìn)步。上一篇文章分享了OllyDbg動(dòng)態(tài)分析工具的基礎(chǔ)用法,并簡(jiǎn)單講解兩個(gè)Crakeme逆向工程破解實(shí)戰(zhàn)方法;本篇文章將介紹Chrome瀏覽器的Network功能,并解析下載快手視頻,同時(shí)分享了一個(gè)Python解析Network鏈接的難題。希望對(duì)初學(xué)者有幫助,大神請(qǐng)飄過(guò),謝謝各位看官!
下載地址:https://github.com/eastmountyxz/NetworkSecuritySelf-study
PS:作為初學(xué)者,深知網(wǎng)絡(luò)安全這塊要學(xué)習(xí)的知識(shí)太多,希望自己能始終保持滿腔熱情,科研結(jié)合實(shí)踐慢慢前行。
文章目錄
- 一.快手視頻網(wǎng)站解析
- 二.Chrome瀏覽器Network分析
- 三.Python下載視頻
- 四.Python自動(dòng)化抓取視頻討論
- 五.總結(jié)
前文學(xué)習(xí):
[網(wǎng)絡(luò)安全自學(xué)篇] 一.入門(mén)筆記之看雪Web安全學(xué)習(xí)及異或解密示例
[網(wǎng)絡(luò)安全自學(xué)篇] 二.Chrome瀏覽器保留密碼功能滲透解析及登錄加密入門(mén)筆記
[網(wǎng)絡(luò)安全自學(xué)篇] 三.Burp Suite工具安裝配置、Proxy基礎(chǔ)用法及暴庫(kù)示例
[網(wǎng)絡(luò)安全自學(xué)篇] 四.實(shí)驗(yàn)吧CTF實(shí)戰(zhàn)之WEB滲透和隱寫(xiě)術(shù)解密
[網(wǎng)絡(luò)安全自學(xué)篇] 五.IDA Pro反匯編工具初識(shí)及逆向工程解密實(shí)戰(zhàn)
[網(wǎng)絡(luò)安全自學(xué)篇] 六.OllyDbg動(dòng)態(tài)分析工具基礎(chǔ)用法及Crakeme逆向破解
前文欣賞:
[滲透&攻防] 一.從數(shù)據(jù)庫(kù)原理學(xué)習(xí)網(wǎng)絡(luò)攻防及防止SQL注入
[滲透&攻防] 二.SQL MAP工具從零解讀數(shù)據(jù)庫(kù)及基礎(chǔ)用法
[滲透&攻防] 三.數(shù)據(jù)庫(kù)之差異備份及Caidao利器
[滲透&攻防] 四.詳解MySQL數(shù)據(jù)庫(kù)攻防及Fiddler神器分析數(shù)據(jù)包
一.快手視頻網(wǎng)站解析
雖然作者不玩快手和抖音,但作為網(wǎng)安方向的新人,總想把這些視頻下載到本地。本篇文章主要利用Chrome瀏覽器和Python簡(jiǎn)單分析快手視頻如何下載到本地。
第一步:
將需要下載的視頻分享到QQ,將得到如下鏈接,通過(guò)瀏覽器打開(kāi)如下圖所示。
首頁(yè)推薦的某主播視頻:http://zhaotong.m.chenzhongtech.com/s/yQ0cCf77
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第1張圖片](https://img.it610.com/image/info8/109d9c539ab940038376c7a36e9741d5.jpg)
第二步: 它會(huì)重定向跳轉(zhuǎn)到一個(gè)新的網(wǎng)址,該網(wǎng)址才是我們需要分析的目標(biāo)頁(yè)面,比如下面的三個(gè)視頻鏈接。
我們可以猜測(cè)出網(wǎng)址基本的構(gòu)成為:
https://live.kuaishou.com/u + 用戶ID + 視頻ID + ?did= + 一串密鑰
https://live.kuaishou.com/u/3xhese5im6yksx6/3xa7v5aze84kirg?did=web_3e7228e2fb25419eae1bc7a0eb29bbde
https://live.kuaishou.com/u/3xhese5im6yksx6/3xg6v9usfdnkuf9?did=web_3e7228e2fb25419eae1bc7a0eb29bbde
https://live.kuaishou.com/u/3xhese5im6yksx6/3xvgazhxasseuye?did=web_3e7228e2fb25419eae1bc7a0eb29bbde
注意,如果我們省略后面的did值,它會(huì)自動(dòng)補(bǔ)充該值并正確訪問(wèn)的,如:
https://live.kuaishou.com/u/3xhese5im6yksx6/3xa7v5aze84kirg
第三步: 下面是視頻hot頁(yè)面,通過(guò)Chrome瀏覽器打開(kāi),并按下F12(或右鍵“檢查”)可以查看源代碼。在Network頁(yè)面下,點(diǎn)擊XHR,再刷新一次頁(yè)面,點(diǎn)擊“graphql”可以看到Json數(shù)據(jù),這次終于確定我們之前的猜想,鏈接有“主播ID”(id)和“視頻ID”(photoId)組成。
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第2張圖片](https://img.it610.com/image/info8/e6e19791da1440698e2e2f2b6c185416.jpg)
其中某個(gè)視頻信息如下:
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第3張圖片](https://img.it610.com/image/info8/24aebac918224e97a6906c03945b3409.jpg)
第四步:
我們嘗試拼接下鏈接,確實(shí)能夠正確訪問(wèn),如下圖所示。接著我們將簡(jiǎn)單分析如何下載視頻至本地。
id: 3xwuykzsrqyynv6
photoId: 3x69gvye5gjh7se
https://live.kuaishou.com/u/3xwuykzsrqyynv6/3x69gvye5gjh7se
二.Chrome瀏覽器Network分析
第一步: 還是以這個(gè)視頻為例,我們按下F12鍵(或右鍵“檢查”),刷新頁(yè)面,點(diǎn)擊Network。
首頁(yè)推薦的某主播視頻:https://live.kuaishou.com/u/3xhese5im6yksx6/3xa7v5aze84kirg
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第4張圖片](https://img.it610.com/image/info8/761fef6d61df48dab9169825cc117546.jpg)
第二步: 在“ALL”中找到有一個(gè)“mp4”結(jié)尾的文件,即為要下載的視頻文件,點(diǎn)擊“Headers”查看對(duì)應(yīng)視頻地址。注意,視頻執(zhí)行過(guò)程中,盡量點(diǎn)擊下暫停,否則會(huì)跳轉(zhuǎn)到下一個(gè)視頻。
Request URL: https://jsmov2.a.yximgs.com/bs2/newWatermark/NjUzODIwODM5OA_zh_4.mp4
Request Method: GET
Status Code: 206 Partial Content
Remote Address: 61.240.28.1:443
Referrer Policy: unsafe-url
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第5張圖片](https://img.it610.com/image/info8/a06d40e9ba2146a1bda063d21d4a04d8.jpg)
第三步: 打開(kāi)迅雷,將復(fù)制的視頻網(wǎng)址添加到“新建下載任務(wù)”中,下載該視頻。
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第6張圖片](https://img.it610.com/image/info8/8a089f73b0a14abea778bdd6585a67ae.jpg)
第四步: 視頻成功下載至本地,打開(kāi)即可。
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第7張圖片](https://img.it610.com/image/info8/7d0294415177457cada3dbb9f7248301.jpg)
你可能會(huì)想:
能不能直接分析HTML源代碼,從中定位視頻的鏈接。不行了,視頻是動(dòng)態(tài)加載的,我能想到的方法是通過(guò)Python獲取Network中的所有資源,再定位“mp4”對(duì)應(yīng)的超鏈接,但最終還是沒(méi)解決,后續(xù)部分將詳細(xì)探討。
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第8張圖片](https://img.it610.com/image/info8/77ec8599d0db4437845285834032a5b5.jpg)
三.Python下載視頻
Tqdm是Python進(jìn)度條庫(kù),可以在Python長(zhǎng)循環(huán)中添加一個(gè)進(jìn)度提示信息用法:tqdm(iterator)。
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第9張圖片](https://img.it610.com/image/info8/e886eb431a124063baf64ab101c73233.jpg)
示例代碼:
# -*- coding: utf-8 -*-
import
time
from
tqdm
import
tqdm
for
i
in
tqdm
(
range
(
100
)
)
:
time
.
sleep
(
0.01
)
#設(shè)置描述
pbar
=
tqdm
(
[
"a"
,
"b"
,
"c"
,
"d"
]
)
for
char
in
pbar
:
# 設(shè)置描述
pbar
.
set_description
(
"Processing %s"
%
char
)
time
.
sleep
(
1
)
輸出結(jié)果如下圖所示:
0
%
|
|
0
/
4
[
00
:
00
<
?
,
?it
/
s
]
Processing a
:
25
%
|
██▌
|
1
/
4
[
00
:
01
<
00
:
03
,
1.
00it
/
s
]
Processing b
:
50
%
|
█████
|
2
/
4
[
00
:
02
<
00
:
02
,
1.
00it
/
s
]
Processing c
:
75
%
|
███████▌
|
3
/
4
[
00
:
03
<
00
:
01
,
1.
00it
/
s
]
Processing d
:
100
%
|
██████████
|
4
/
4
[
00
:
04
<
00
:
00
,
1.
00it
/
s
]
下面講述一段代碼,將視頻下載至本地。
# coding=utf-8
import
json
import
requests
import
tqdm
#定義函數(shù)下載視頻
def
saveMp4
(
url
,
filename
)
:
res
=
requests
.
get
(
url
,
stream
=
True
)
file_size
=
int
(
res
.
headers
[
'Content-Length'
]
)
num
=
1
num_size
=
1024
num_bars
=
int
(
file_size
/
num_size
)
with
open
(
filename
,
'wb'
)
as
fp
:
for
num
in
tqdm
.
tqdm
(
res
.
iter_content
(
chunk_size
=
num_size
)
,
total
=
num_bars
,
unit
=
'KB'
,
desc
=
filename
,
leave
=
True
)
:
fp
.
write
(
num
)
#調(diào)用函數(shù)
url
=
"https://jsmov2.a.yximgs.com/bs2/newWatermark/MTQ5Mzk2MzMwMDg_zh_4.mp4"
filename
=
"test.mp4"
saveMp4
(
url
,
filename
)
如下圖所示:
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第10張圖片](https://img.it610.com/image/info8/bbeab1b9c17b452090b52203dc4a0de9.jpg)
如果讀者想下載快手某位主播的所有視頻,則可以點(diǎn)擊它的個(gè)人主頁(yè),如下圖所示。
主播的主頁(yè):https://live.kuaishou.com/profile/Flulu727
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第11張圖片](https://img.it610.com/image/info8/ebcaf7c975ad46d890701b2cfc1c7508.jpg)
寫(xiě)到這里,你可能會(huì)想能不能寫(xiě)個(gè)爬蟲(chóng)將所有網(wǎng)頁(yè)鏈接中“mp4”對(duì)應(yīng)的地址抓取下來(lái),再進(jìn)行統(tǒng)一爬取。下面我們來(lái)簡(jiǎn)單進(jìn)行分析,但最終結(jié)果失敗了!
四.Python自動(dòng)化抓取視頻討論
網(wǎng)絡(luò)查找很多獲取Network中所有網(wǎng)絡(luò)請(qǐng)求URL、獲取XHR的response結(jié)果,均沒(méi)有一個(gè)有效的答案,包括github的代碼。比如:
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第12張圖片](https://img.it610.com/image/info8/35239310998d451dbc078766806190d1.jpg)
下面進(jìn)行一些探討,我首先想到的方法包括兩個(gè)基本操作,即:
1.設(shè)置消息頭headers和請(qǐng)求的參數(shù)data,調(diào)用requests()函數(shù)請(qǐng)求連接,注意該視頻是GET方法。
Request URL: https://txmov2.a.yximgs.com/bs2/newWatermark/NjUzODIwODM5OA_zh_4.mp4
Request Method: GET
Status Code: 206 Partial Content
Remote Address: 116.207.112.100:443
Referrer Policy: unsafe-url
2.返回的數(shù)據(jù)調(diào)用json.load()函數(shù)進(jìn)行解析,并且獲取指定的字段。
# -*- coding: utf-8 -*-
import
json
data
=
{
'id'
:
1
,
'name'
:
'test1'
,
'age'
:
'1'
}
data2
=
[
{
'id'
:
1
,
'name'
:
'test1'
,
'age'
:
'1'
}
,
{
'id'
:
2
,
'name'
:
'test2'
,
'age'
:
'2'
}
]
#python字典類型轉(zhuǎn)換為json對(duì)象
json_str
=
json
.
dumps
(
data
)
print
(
u
"python原始數(shù)據(jù):"
)
print
(
repr
(
data
)
)
print
(
u
"json對(duì)象:"
)
print
(
json_str
)
print
(
""
)
json_str2
=
json
.
dumps
(
data2
)
print
(
u
"python原始數(shù)據(jù):"
)
print
(
repr
(
data2
)
)
print
(
u
"json對(duì)象:"
)
print
(
json_str2
)
print
(
""
)
# 將json對(duì)象轉(zhuǎn)換為python字典
data3
=
json
.
loads
(
json_str
)
print
(
data3
)
print
(
"data3['name']: "
,
data3
[
'name'
]
)
print
(
"data3['age']: "
,
data3
[
'age'
]
)
輸出結(jié)果如下圖所示:
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第13張圖片](https://img.it610.com/image/info8/75f7ae088f4d4beb8734d03a02f089d4.jpg)
下面開(kāi)始簡(jiǎn)單的嘗試:
第一步:調(diào)用requests獲取數(shù)據(jù)
# coding=utf-8
import
json
import
requests
from
pyquery
import
PyQuery
as
pq
#設(shè)置請(qǐng)求
ID
=
"3xrptqgjk98rism"
photoID
=
"3xw28sc864d8p2e"
URL
=
'https://live.kuaishou.com/u/'
+
ID
+
'/'
+
photoID
print
URL
headers
=
{
'user-agent'
:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
}
#獲取某個(gè)ID用戶的作品photoID
res
=
requests
.
get
(
URL
,
headers
=
headers
)
print
len
(
res
.
text
)
#PyQuery解析
html
=
pq
(
res
.
text
)
print
html
輸出結(jié)果中最重要的是最后一個(gè)script代碼。
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第14張圖片](https://img.it610.com/image/info8/e4cf73ccd6894f458fd8e80c5ea1e369.jpg)
這里包含了視頻URL代碼。
![[網(wǎng)絡(luò)安全自學(xué)篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲(chóng)探討_第15張圖片](https://img.it610.com/image/info8/495146994aa94173812315213d7d35e8.jpg)

第二步:嘗試用下面的代碼解析Json數(shù)據(jù)并定位鏈接。
key
=
'$ROOT_QUERY.publicFeeds({"count":24,"pcursor":"","principalId":"%s"})'
%
ID
print
key
data
=
json
.
loads
(
html
)
print
data
#獲取連接及命名
play
=
data
[
'data'
]
[
key
]
url
=
play
[
'playUrl'
]
vedio
=
play
[
'caption'
]
+
'.mp4'
但最重要的一步是如何定位Json位置并解析。
五.總結(jié)
推薦讀者閱讀大神的文章,后續(xù)將學(xué)習(xí)Fiddler進(jìn)行手機(jī)抓包以及代理設(shè)置。
(強(qiáng)推)用Python寫(xiě)了個(gè)下載快手視頻的小腳本 - DIY
(強(qiáng)推)python爬蟲(chóng)從入門(mén)到放棄(九)之 實(shí)例爬取上海高級(jí)人民法院網(wǎng)開(kāi)庭公告數(shù)據(jù) -zhaof - 動(dòng)態(tài)爬蟲(chóng)
python爬取快手視頻–json數(shù)據(jù)分析 - Dream____Fly
python爬取快手視頻 多線程下載 - foddler配置
Python 下載網(wǎng)絡(luò)mp4視頻資源 - dcb3688 - PyQuery獲取Json參數(shù)
Python爬蟲(chóng)技巧-西瓜視頻MP4地址獲取 - 我愛(ài)學(xué)python - base64decode解密
[python] Python2.7爬蟲(chóng)+Fiddler 爬取快手APP的短視頻 - 哈士奇的布偶 - APP代理
Chrome + Python 抓取動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容 - 吹劍錄
淺談如何使用python抓取網(wǎng)頁(yè)中的動(dòng)態(tài)數(shù)據(jù) - saintlabs
Github:
https://github.com/binglansky/spider/blob/master/kuaishou.py
https://github.com/muyangren907/Kwai_download_script
https://github.com/d1y/lovepack/blob/master/kuaishou.py
珞珞如石,溫而若珈;瀟灑坦蕩,一生澄澈。新學(xué)期,新生活,新里程。
一個(gè)多月的閉關(guān),深深體會(huì)到數(shù)學(xué)和英語(yǔ)的重要性,短板抓緊補(bǔ)起來(lái),長(zhǎng)板卻沒(méi)有。開(kāi)學(xué)八門(mén)課,《信息論》《現(xiàn)代密碼學(xué)》《網(wǎng)絡(luò)安全協(xié)議》《信息安全前沿》《信息安全與可信計(jì)算》《自然語(yǔ)言處理》等,就NLP熟悉點(diǎn),得加油了,更要靜下心來(lái)去“做”、“學(xué)”、“問(wèn)”。Stay hungry,Stay foolish~希望與您一起進(jìn)步
(By:Eastmount 2019-09-05 下午1點(diǎn) http://blog.csdn.net/eastmount/ )
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
