web技術(shù)講解(web安全入門03)

一、Web 工作機(jī)制

為什么學(xué)習(xí)這節(jié)課 我們學(xué)習(xí)滲透測試這門課程习劫,主要針對的 Web 應(yīng)用猴仑,所以對 Web 架構(gòu)需要一定的了解

1.1 網(wǎng)頁、網(wǎng)站

我么可通過瀏覽器上網(wǎng)看到精美的頁面损敷,一般都是經(jīng)過瀏覽器渲染的.html 頁面,其中包含 css 等前端技術(shù)深啤。多個(gè)網(wǎng)頁的集合就是網(wǎng)站拗馒。


1.2Web 容器

Web 容器,也叫 Web 服務(wù)器溯街,主要提供 Web 服務(wù)诱桂,也就是常說的 HTTP 服務(wù)。 常見的 Web 容器有:Apache/IIS/Nginx 等苫幢。?

1.3 靜態(tài)頁面

靜態(tài)頁面访诱,都是些.html 文件,是純文本文件韩肝。這些文件中包含 html 代碼触菜。 HTML(HyperText Markup Language,超文本標(biāo)記語言),在瀏覽器中解釋運(yùn)行哀峻。

1.4 中間件服務(wù)器

以上這種涡相,只能單向給用戶戰(zhàn)術(shù)信息。隨著 Web 的發(fā)展剩蟀,信息要雙向流動(dòng)催蝗,產(chǎn)生了交互的 需求,也就是動(dòng)態(tài)網(wǎng)頁的概念育特;所謂動(dòng)態(tài)就是利用 flash丙号、Php先朦、asp、Java 等技術(shù)在網(wǎng)頁中 嵌入一些可以運(yùn)行的腳本犬缨,用戶瀏覽器在解釋頁面時(shí)喳魏,遇到腳本就啟動(dòng)運(yùn)行它。 腳本的使用讓 Web 服務(wù)模式有了雙向交流的能力怀薛,Web 服務(wù)器模式也可以像傳統(tǒng)的軟件 一樣進(jìn)行各種事務(wù)的處理刺彩,如編輯文件、利息計(jì)算枝恋、提交表單等创倔,Web 架構(gòu)的適用面大大 擴(kuò)展。 這些腳本可以嵌入到頁面中焚碌,如 JS 等畦攘。也可以以文件的形式單獨(dú)存放在 Web 服務(wù)器的目 錄里,如.asp呐能、.php念搬、jsp 文件等。這樣功能性的腳本越來越多摆出,形成常用的工具包,單獨(dú)管 理首妖,Web 業(yè)務(wù)開發(fā)時(shí)偎漫,直接使用就可以了,這就是中間件服務(wù)器有缆,它實(shí)際上時(shí) Web 服務(wù)器 處理能力的擴(kuò)展象踊。 weblogic、jboss

1.5 數(shù)據(jù)庫的出現(xiàn)

靜態(tài)網(wǎng)頁與腳本都是事先設(shè)計(jì)好的棚壁,一般不經(jīng)常改動(dòng)杯矩,但網(wǎng)站上的很多內(nèi)容需要經(jīng)常更新, 將這些變動(dòng)的數(shù)據(jù)放在靜態(tài)網(wǎng)頁的程序中顯然不合適袖外,傳統(tǒng)的辦法是數(shù)據(jù)與程序分離史隆,采用 的專業(yè)的數(shù)據(jù)庫。

Web 開發(fā)者在 Web 服務(wù)器后邊增加了一個(gè)數(shù)據(jù)庫服務(wù)器曼验,這些經(jīng)常變動(dòng)的數(shù)據(jù)被存進(jìn)數(shù) 據(jù)庫泌射,可以隨時(shí)更新。當(dāng)用戶請求頁面時(shí)鬓照,腳本根據(jù)用戶請求的頁面熔酷,涉及到動(dòng)態(tài)數(shù)據(jù)的地 方,利用 SQL 數(shù)據(jù)庫語言豺裆,從數(shù)據(jù)中讀取最新的數(shù)據(jù)拒秘,生產(chǎn)“完整”頁面,最后送給用戶。?

二躺酒、HTTP 協(xié)議概述

HTTP(HyperText Transfer Protocol),超文本傳輸協(xié)議咙轩,是傳遞消息的規(guī)范和要求。

2.1 概述

1990 年提出的阴颖,當(dāng)前版本 1.1活喊。

HTTP 是用來將 html 文檔從 Web 服務(wù)器傳輸?shù)?Web 瀏覽器。

是一個(gè)請求和響應(yīng)的協(xié)議量愧〖鼐眨客戶端發(fā)出請求,服務(wù)器端對請求給出回應(yīng)偎肃。 HTTP 使用可靠的 TCP 連接煞烫,默認(rèn)端口 80?

2.2 特點(diǎn)

支持瀏覽器/服務(wù)器模式

簡單快速:瀏覽器向服務(wù)器提出請求時(shí),只需要傳送請求方法和請求路徑

靈活:HTTP 運(yùn)行傳輸任意類型的數(shù)據(jù)對象

.html 純文本

.jpg 圖片

.mp3 音頻

HTTP 協(xié)議是無狀態(tài)的協(xié)議

2.3URL

統(tǒng)一資源定位符(網(wǎng)址)累颂,用來告訴 Web 容器滞详,瀏覽器所請求的資源(文件)的路徑。

例如:http://localhost/test/requests.php?id=32 Schema://login:password@adress:port/path/to/resource/?query_string#fragment

Port 80

Login 用戶名

Password 密碼 匿名訪問時(shí)紊馏,默認(rèn)沒有用戶名和密碼

Fragment 錨點(diǎn) 實(shí)現(xiàn)頁面內(nèi)定位

url 編碼 URL 只允許出現(xiàn)的字符是有限制的料饥,URL 中 path 開始允許直接出現(xiàn)[A-Z][a-z][0-9],半角

減號(-)朱监、下劃線句點(diǎn)(.)岸啡、波浪號(~)。

其他字符均會被百分號編碼(包括空格)

例如:

# %23

空格 %20

原理:%+ASCII 碼十六進(jìn)制形式

在進(jìn)行編程的時(shí)候赫编,會[+] 代替空格巡蘸。

注意:不要對中文進(jìn)行 url 編碼

報(bào)文分析工具

1、F12

2擂送、wireshark

3悦荒、fiddler

4、Burp suite

三嘹吨、HTTP 報(bào)文分析

Web 應(yīng)用的所有通信的消息都要遵守 HTTP 協(xié)議的規(guī)范和要求搬味。

3.1REQUEST

請求報(bào)文,如下

GET /php/test/get.php HTTP/1.1

Host: 192.168.1.136

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:75.0) Gecko/20100101

Firefox/75.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate

Referer: http://192.168.1.136/php/test/

Connection: close

Upgrade-Insecure-Requests: 1

Cache-Control: max-age=0

HTTP 請求由請求行躺苦、請求頭身腻、請求正文三部分組成

1、請求行:方法匹厘,資源路徑嘀趟,協(xié)議/版本

方法:GET

資源路徑:/php/test/get.php

協(xié)議/版本:HTTP/1.1

2、請求頭

從請求報(bào)文第二行開始到第一個(gè)空行為止的內(nèi)容愈诚。其中包含很多字段

3她按、請求正文

以上方法沒有請求正文牛隅,后面會看到

3.2 請求方法

GET

最常用的方法,通常用戶請求服務(wù)器發(fā)送的某個(gè)資源酌泰。

POST

可以向服務(wù)器提交參數(shù)以及表單媒佣,包括文件流等

HEAD

與 GET 方法類似,但在服務(wù)器響應(yīng)中只返回首部

PUT

與 GET 從服務(wù)器讀取文檔相反陵刹,PUT 方法會向服務(wù)器寫入文檔

TRACE

回顯瀏覽器的請求

OPTIONS

請求 Web 服務(wù)器告知其支持的各種功能

DELETE

請求服務(wù)器刪除請求 URL 所指定的資源

3.3 實(shí)驗(yàn)

1默伍、使用 telnet 模式瀏覽器發(fā)送 HTTP 請求

Telnet 192.168.1.136 80

GET /php/test/get.php HTTP/1.1

Host: 192.168.1.136


注意:進(jìn)入 telnet 后,按 ctrl+]鍵衰琐,開啟 telnet 的回顯也糊,然后按回車鍵

Telnet www.baidu.com 80

GET / HTTP/1.1

Host: www.baidu.com


2、利用 telnet 傳送 GET 參數(shù)

GET /php/test/get.php?name=AJEST&pwd=123456 HTTP/1.1

Host:192.168.1.136



3羡宙、利用 telnet 模擬 POST,請求傳遞參數(shù)

POST /php/test/post.php?http://192.168.1.136/php/test/post.php HTTP/1.1

Host: 192.168.1.136

Content-Type: application/x-www-form-urlencoded

Content-Length: 19

name=GGG&pwd=123456


4狸剃、利用 OPTIONS 方法測試 Web 服務(wù)器允許的 HTTP 請求

OPTIONS / HTTP/1.1

Host: 192.168.1.136

get.php


<?php

str=$_GET;

var_dump($str);

$

?>


post.php

<?php

str=$_POST;

var_dump($str);

?>

3.4 主要字段

Host

主要用于指定被請求資源的 Internet 主機(jī)和端口號

User-Agent

瀏覽器指紋

Referer

包含一個(gè) URL,代表當(dāng)前的 URL 的上一個(gè) URL

Cookie

記錄請求者的身份認(rèn)證信息

Accept-Charset

用戶指定客戶端接受的字符集

Content-Type

用于向接收方指示實(shí)體的介質(zhì)類型(數(shù)據(jù)類型)

Content-Length

用于指明實(shí)體正文的長度狗热,以字節(jié)的方式存儲的十進(jìn)制數(shù)字來表示

Last-Modified

用于指示資源的最后修改時(shí)間和日期

3.5RESPONSE

響應(yīng)報(bào)文如下:

HTTP/1.1 200 OK

Date: Sat, 25 Apr 2020 09:50:59 GMT

Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45

X-Powered-By: PHP/5.4.45

Content-Length: 13

Connection: close

Content-Type: text/html

array(0) {

}


響應(yīng)報(bào)文由狀態(tài)行(響應(yīng)行)钞馁、響應(yīng)頭、響應(yīng)正文三部分組成匿刮。

1僧凰、狀態(tài)行:協(xié)議/版本,狀態(tài)代碼僻焚,描述短語

協(xié)議/版本:HTTP/1.1

狀態(tài)代碼:200

描述短語:OK

2允悦、響應(yīng)報(bào)頭

第二行開始到第一個(gè)空行為止的所有內(nèi)容,其中包含了關(guān)于 HTTP 響應(yīng)的重要字段虑啤。

3、響應(yīng)正文

服務(wù)器返回資源的內(nèi)容架馋,即瀏覽器接收到的 HTML 代碼狞山。

狀態(tài)碼

100~199

信息性狀態(tài)碼

200~299

成功狀態(tài)碼

300~399

重定向狀態(tài)碼

400~499

客戶端錯(cuò)誤狀態(tài)碼

500~599

服務(wù)器錯(cuò)誤狀態(tài)碼

主要字段

Server

服務(wù)器指紋

Set-Cookie

向?yàn)g覽器端設(shè)置 Cookie

Last-Modified

服務(wù)器通過這個(gè)頭信息告訴瀏覽器叉寂,資源的最后修改時(shí)間

Content-Length

請求正文長度

Location

重定向目標(biāo)頁面

Refresh

服務(wù)器通過 Refresh 頭告訴瀏覽器定時(shí)刷新瀏覽器

四、同源策略

同源策略是禁止 javascript 進(jìn)行跨域訪問的安全策略勘纯。它也是瀏覽器沙盒環(huán)境所提供的一項(xiàng)

制約。瀏覽器可以同時(shí)處理多個(gè)網(wǎng)站的內(nèi)容钓瞭,其典型方法為使用標(biāo)簽或 iframe 等驳遵。

4.1 同源策略的條件

URL 的主機(jī)(FQDN:Fully Qualified Domain Name 全程域名)一致

Schema 一致

端口號一致




同源策略的保護(hù)對象不僅僅時(shí) iframe 內(nèi)文檔山涡。比如實(shí)現(xiàn) Ajax 時(shí)所使用的 XMLHttpRequest

對象能夠訪問的 URL 也受到了同源策略的限制唆迁。

4.2 同源策略探究

準(zhǔn)備兩個(gè)頁面

index.html


<html>

<head>

<title> 跨 frame 的讀取實(shí)驗(yàn)</title>

<meta charset="utf-8">

</head>

<body>

iframe name="iframe1" width="300"

height="80"src=http://192.168.1.136/sop/iframe.html>

</iframe>

<input type="button" οnclick="go()" value=" 密碼: ">

<script>

function go(){

try {

var x = iframe1.document.form1.passwd.value;

document.getElementById('out').innerHTML = x;

}

catch (e){

alert(e.message);

}

}

</script>

<span id="out"></span>

</body>

</html>


iframe.html

<html>

<head>

<meta charset="utf-8">

</head>

<body>

<form name="form1"> iframe 的內(nèi)層

密碼 <input type="text" name="passwd" value="password1">

</form>

</body>

</html>

這里我們使用我們服務(wù)器的瀏覽器測試這個(gè)實(shí)驗(yàn)(因?yàn)槲覀円褂貌煌膬蓚€(gè) URL 來訪問

我們的網(wǎng)頁)

我們用指定的 IP 訪問,可以正常讀取




但是當(dāng)我們使用我們本機(jī)的回環(huán)地址去訪問時(shí)竞穷,打開頁面唐责,無法讀锐(這就是由同源策略限

制,無法訪問內(nèi)層 iframe)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末朴恳,一起剝皮案震驚了整個(gè)濱河市帽衙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厉萝,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件章母,死亡現(xiàn)場離奇詭異翩剪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蚪缀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門恕出,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人金蜀,你說我怎么就攤上這事的畴。” “怎么了护桦?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵渣慕,是天一觀的道長抱慌。 經(jīng)常有香客問我眨猎,道長,這世上最難降的妖魔是什么睡陪? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮兰迫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘涡拘。我一直安慰自己据德,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布橱野。 她就那樣靜靜地躺著善玫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜗元。 梳的紋絲不亂的頭發(fā)上系冗,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼距芬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛舀武,可吹牛的內(nèi)容都是我干的离斩。 我是一名探鬼主播瘪匿,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼寻馏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了顽染?” 一聲冷哼從身側(cè)響起轰绵,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤左腔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后液样,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡双炕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年妇斤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丹拯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡死相,死狀恐怖咬像,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情县昂,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布审洞,位于F島的核電站待讳,受9級特大地震影響仰剿,放射性物質(zhì)發(fā)生泄漏痴晦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一旨袒、第九天 我趴在偏房一處隱蔽的房頂上張望术辐。 院中可真熱鬧,春花似錦必孤、人聲如沸瑞躺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至闸与,卻和暖如春岸售,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凸丸。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工屎慢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腻惠。 一個(gè)月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓妖枚,卻偏偏與公主長得像苍在,于是被迫代替她去往敵國和親荠商。 傳聞我的和親對象是個(gè)殘疾皇子续誉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345