從入門到入土

Owen |  溟

Lab

Getting data from web?

BeautifulSoup Library

  • Owen | 溟
    寫扣不敢開燈 怕吸引 BUG
  • 臺科資工系大一
  • 臺科資安社 副社長
  • 臺科區塊鏈社 教學長
  • ChainSecurity
    Blockchain R&D
  • 第八屆台灣好厲駭
  • 第一屆 SCAICT 教學組
  • 全國技能競賽
    (商務軟體設計 / 行動應用開發)
  • 2022 AIS3 Junior
  • 2023 AIS3 

台科資安社

台科區塊鏈社

What is Web?

World Wide Web

傳輸網頁的協定

HTTP

伺服器的位址

URL

建構網頁的語言

HTML

網站運作原理

傳輸

運行

傳輸程式&頁面資料

運行程式&請求資料

網站運作原理

傳輸

運行

傳輸程式&頁面資料

運行瀏覽器
對網站伺服器發出請求

網站運作原理

傳輸

運行

傳輸頁面及腳本

運行程式&請求資料

網站運作原理

傳輸

運行

傳輸程式&頁面資料

運行程式請求資料
e.g.影片、相關影片

網站運作原理

傳輸

運行

傳輸程式請求之資料

運行程式&請求資料

網站運作原理

傳輸

運行

傳輸程式&頁面資料

運行瀏覽器
對網站伺服器發出請求

?

http://

ntust.pro

/ctf

?question=1

協議

位址 / ip

路徑

參數

http://

ntust.pro

/ctf

?question=1

協議

位址 / ip

路徑

參數

http://

ntust.pro

/ctf

?question=1

協議

位址 / ip

路徑

參數

GET /ctf?question=1 HTTP/2
Host: ntust.pro
User-Agent: Chrome/116.0.5845.141 Safari/537.36
Accept: text/html
Accept-Language: en-US,en;q=0.9

account=wusandwitch
........
GET /ctf?question=1 HTTP/2
Host: ntust.pro
User-Agent: Chrome/116.0.5845.141 Safari/537.36
Accept: text/html
Accept-Language: en-US,en;q=0.9

account=wusandwitch
........

Method 方法

Credit:
Ed Tsai

GET /ctf?question=1 HTTP/2
Host: ntust.pro
User-Agent: Chrome/116.0.5845.141 Safari/537.36
Accept: text/html
Accept-Language: en-US,en;q=0.9

account=wusandwitch
........

Path / Route 路徑

GET /ctf?question=1 HTTP/2
Host: ntust.pro
User-Agent: Chrome/116.0.5845.141 Safari/537.36
Accept: text/html
Accept-Language: en-US,en;q=0.9

account=wusandwitch
........

Protocol Version 協議版本

Hypter
Text
Transfer
Protocol

超文本傳輸協定

GET /ctf?question=1 HTTP/2
Host: ntust.pro
User-Agent: Chrome/116.0.5845.141 Safari/537.36
Accept: text/html
Accept-Language: en-US,en;q=0.9

account=wusandwitch
........

Host 位址

http://

ntust.pro

/ctf

?question=1

協議

位址 / ip

路徑

參數

伺服器位址

GET /ctf?question=1 HTTP/2
Host: ntust.pro
User-Agent: Chrome/116.0.5845.141 Safari/537.36
Accept: text/html
Accept-Language: en-US,en;q=0.9

account=wusandwitch
........

Header 標頭

請求資訊
(類似Metadata)

GET /ctf?question=1 HTTP/2
Host: ntust.pro
User-Agent: Chrome/116.0.5845.141 Safari/537.36
Accept: text/html
Accept-Language: en-US,en;q=0.9

account=wusandwitch
........

Body 主要資料

夾帶資訊
通常出現在 POST / PATCH / PUT
GET 等 Method 通常不會有

網站運作原理

傳輸

運行

傳輸頁面及腳本

運行程式&請求資料

?

傳輸?

GET /ctf?question=1 HTTP/2 Host: ntust.pro ...

瀏覽器

伺服器

HTTP/2 200 OK
Content-Type: text/html ...

HTTP/2 200 OK
Date: Mon, 25 Sep 2023 09:23:05 GMT
Content-Type: text/html; charset=UTF-8

<html>
<head>...</head>
<body>...</body>
</html>

Status Code 狀態碼

Credit: splitline

HTTP/2 200 OK
Date: Mon, 25 Sep 2023 09:23:05 GMT
Content-Type: text/html; charset=UTF-8

<html>
<head>...</head>
<body>...</body>
</html>

Header 標頭

回應ㄉ附加資訊
(一樣類似 Metadata)

HTTP/2 200 OK
Date: Mon, 25 Sep 2023 09:23:05 GMT
Content-Type: text/html; charset=UTF-8

<html>
<head>...</head>
<body>...</body>
</html>

Body 主要資料

真 回應資料
(頁面、程式、資料)

HTML / Js / 貓咪圖片

What if...?

GET /ctf?question=1 HTTP/2 Host: ntust.pro ...

瀏覽器

伺服器

HTTP/2 200 OK
Content-Type: text/html ...

What if...?

GET /ctf?question=1 HTTP/2 Host: ntust.pro ...

伺服器

HTTP/2 200 OK
Content-Type: text/html ...

What if...?

GET /ctf?question=1 HTTP/2 Host: ntust.pro ...

大蟒蛇

伺服器

HTTP/2 200 OK
Content-Type: text/html ...

What if...?

GET /ctf?question=1 HTTP/2 Host: ntust.pro ...

Burpsuite (?

伺服器

HTTP/2 200 OK
Content-Type: text/html ...

Burp Suite

CTF
Capture The Flag
FLAG{}

Python Requests

What if...?

GET /ctf?question=1 HTTP/2 Host: ntust.pro ...

大蟒蛇

伺服器

HTTP/2 200 OK
Content-Type: text/html ...

What if...?

GET /ctf?question=1 HTTP/2 Host: ntust.pro ...

大蟒蛇

伺服器

HTTP/2 200 OK
Content-Type: text/html ...

What if...?

GET /ctf?question=1 HTTP/2 Host: ntust.pro ...

大蟒蛇

伺服器

HTTP/2 200 OK
Content-Type: text/html ...

What if...?

GET /ctf?question=1 HTTP/2 Host: ntust.pro ...

大蟒蛇

伺服器

HTTP/2 200 OK
Content-Type: text/html ...

What if...?

GET /ctf?question=1 HTTP/2 Host: ntust.pro ...

大蟒蛇

伺服器

HTTP/2 200 OK
Content-Type: text/html ...

API ?

Application

Programming
Interface

應用程式

可編程

接口

Credit: NightFeather

前端

資料庫

後端

瀏覽器

伺服器

伺服器

HTML / CSS / JS

SQL / Mongo / ...

PHP / node.js / ...

看得到

看不到

看不到

前端

資料庫

後端

渲染? 頁面資料?

Credit: splitline

HTML

HTML + CSS

HTML + CSS + JS

F12 Developer Tool

Python BeautifulSoup

<h1>

<p>

<li>

<html> 湯

<ul> 湯

<li> 湯

<li> 湯

<li> 湯

find

find

20240705-BasicScraping

By Owen wu

20240705-BasicScraping

  • 143