国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Web安全測試:HTTP請求詳解

這篇具有很好參考價值的文章主要介紹了Web安全測試:HTTP請求詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、前言

結(jié)合內(nèi)部資料,與安全滲透部門同事合力整理的安全測試相關(guān)資料教程,全方位涵蓋電商、支付、金融、網(wǎng)絡(luò)、數(shù)據(jù)庫等領(lǐng)域的安全測試,覆蓋Web、APP、中間件、內(nèi)外網(wǎng)、Linux、Windows多個平臺。學(xué)完后一定能成為安全大佬!
全部文章請訪問專欄:《全棧安全測試教程(0基礎(chǔ))》


通過本章節(jié)的學(xué)習(xí),我們會掌握如下知識,為掌握Web安全測試做基礎(chǔ)準備:

  1. HTTP1.0的請求方法
    了解HTTP1.0三種請求方法,GET, POST 和 HEAD
    掌握GET請求的標準格式
    掌握POST請求提交表單,上傳文件的方法
    了解HEAD請求與GET請求的區(qū)別
  2. HTTP1.1新增的請求方法
    了解HTTP1.1新增的五種請求方法:OPTIONS,PUT,DELETE,TRACE,CONNECT方法的基本概念
    掌握HTTP1.1新增的五種請求的基本方法和產(chǎn)生的請求結(jié)果 。


二、HTTP請求

http請求由三部分組成,分別是:請求行、消息報頭、請求正文。
請求行以一個方法符號開頭,以空格分開,后面跟著請求的URI和協(xié)議的版本,格式如下:

  1. Method Request-URI HTTP-Version (CR)(LF)
  2. 其中 Method表示請求方法(GET,POST,HEAD等)
  3. Request-URI是一個統(tǒng)一資源標識符
  4. HTTP-Version表示請求的HTTP協(xié)議版本
  5. (CR)(LF)表示回車和換行(除了作為結(jié)尾的(CR)(LF)外,不允許出現(xiàn)單獨的(CR)或(LF)字符)。

例:GET /get.php?arg1=value1 HTTP/1.1

HTTP消息請求報頭允許客戶端向服務(wù)器端傳遞請求的附加信息以及客戶端自身的信息。

  1. 常用的報頭:
  2. 常用的請求報頭Accept,Accept-Charset,Accept-Encoding,Accept-Language,Authorization,Host(發(fā)送請求時,該報頭域是必需的),User-Agent
  3. 每個類型請求頭結(jié)束后,會跟上(CR)(LF)
  4. 消息報頭和請求正文會隔一行

1)GET請求

GET請求格式:
<訪問路徑>[?=[&=…]]
例子:http://site1.com/get.php?arg1=value1
Server端可以根據(jù)參數(shù)名獲取值:
PHP例子:

<?php echo $_GET['arg1']; ?>

結(jié)果就是輸出arg1相應(yīng)的值。

GET請求,是可以把數(shù)據(jù)放在URL中來傳遞,也可以不包含任何數(shù)據(jù),HTTP請求只有請求頭,沒有請求數(shù)據(jù)。

請求頭中可以不包含Content-Length,例子:
GET /get.php?arg1=value1 HTTP/1.1
Host: site1.com
Connection: close
User-Agent: Paw/2.2.5 (Macintosh; OS X/10.12.2) GCDHTTPRequest
GET請求可以只有請求的路徑:
http://www.gooann.com
GET請求也可以帶需要傳遞的數(shù)據(jù),在訪問路徑之后帶問號(?)+參數(shù)=值的方式發(fā)送。
http://site1.com/get.php?arg1=value1

2)POST請求

POST請求是包含數(shù)據(jù),請求數(shù)據(jù)的格式,可以在HTTP頭中定義。格式一般會有下面5種:

  1. 表單格式:application/x-www-form-urlencoded
  2. 混合格式:multipart/form-data
  3. JSON格式:application/json
  4. XML格式:text/xml
  5. 文本:text/plain

下面對這幾種格式做一下介紹

2.1 表單格式

與get方式類似,是把所有提交數(shù)據(jù)放在數(shù)據(jù)區(qū)域。
POST方式也可以像GET方式在URL帶參數(shù),但一般不會這么去使用。
表單方式與GET方式類似,只是把數(shù)據(jù)放在頭文件下面的請求正文區(qū)域。請求如下:
POST /post-form.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: 192.168.0.105
Connection: close
User-Agent: Paw/2.2.5 (Macintosh; OS X/10.12.2) GCDHTTPRequest
Content-Length: 11
arg1=value1


2.2 混合格式

有文件上傳時常用的方法??梢越邮芡瑫r提交不同類型的數(shù)據(jù)
表單中,可以把類型更改為file就可以上傳文件

類型后面一般會跟boundary來告知數(shù)據(jù)區(qū)域分隔符
每個數(shù)據(jù)都可以單獨說明數(shù)據(jù)類型

混合模式一般是用來傳輸文件。后面會跟boundary=__xxxx__來進行每個參數(shù)的分割。
POST /upload_file.php HTTP/1.1
Content-Type: multipart/form-data; boundary=------WebKitFormBoundaryRTP6hG23yFYrExfg
Host: 192.168.0.105
Connection: close
User-Agent: Paw/2.2.5 (Macintosh; OS X/10.12.2) GCDHTTPRequest
Content-Length: 101

------WebKitFormBoundaryRTP6hG23yFYrExfg
Content-Disposition: form-data; name=“arg1”

value1
------WebKitFormBoundaryRTP6hG23yFYrExfg
Content-Disposition: form-data; name=“file”; filename=“python.txt”
Content-Type: text/plain

多線程
xxxxx
------WebKitFormBoundaryRTP6hG23yFYrExfg
Content-Disposition: form-data; name=“file2”; filename=“mails.zip”
Content-Type: application/zip

xxxxx
------WebKitFormBoundaryRTP6hG23yFYrExfg–


2.3 文本格式

常見類型為json,xml,plain
這種類型的數(shù)據(jù),需要服務(wù)端代碼自行解析
PHP代碼為例:
file_get_contents(“php://input”); - 可以獲取數(shù)據(jù)區(qū)域文本
要是接受的是json,使用相關(guān)方法(函數(shù))來解析
echo json_decode(file_get_contents(“php://input”),true)[‘a(chǎn)rg1’];
可以根據(jù)type(類型)來解開數(shù)據(jù)。

文本模式,也可以按照文件來接收,
使用file_get_contents(“php://input”); 可以免去讀取文件里的內(nèi)容。
file_get_contents(“php://input”); 模式不能接收multipart/form-data模式。
下面代碼就是PHP寫的,當類型為json時,根據(jù)json解析

<?php if( $_SERVER['CONTENT_TYPE'] == 'application/json') { echo json_decode(file_get_contents("php://input"),true)['arg1']; } ?>

這時請求數(shù)據(jù)是:{“arg1”:“value1”}
返回值是:value1

3)HEAD請求

HEAD請求就是返回只有頭部數(shù)據(jù),數(shù)據(jù)部分不返回內(nèi)容,返回的內(nèi)容基本上與GET,POST的返回頭一致:

Web安全測試:HTTP請求詳解,全棧安全測試(0基礎(chǔ)),web安全,http,安全

4)OPTIONS請求

OPTIONS請求,默認情況下會返回允許的請求類型
http://www.microsoft.com/zh-cn/ 會返回:
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Credentials: true
一般需要跨域的時候需要設(shè)置OPTIONS(跨域后面來講)
使用腳本讓瀏覽器跨域進行請求的時候,會檢測OPTIONS,對方服務(wù)器是否允許跨域。允許的情況下,才會真正去進行相應(yīng)請求
當你用瀏覽器訪問 site1.com, 某些腳本操作會提交到site2.com而且附帶非瀏覽器默認的頭信息,這個時候瀏覽器不會直接發(fā)出POST請求,先發(fā)出OPTIONS請求來判斷是否允許發(fā)送POST。當對方回復(fù)允許了,才能發(fā)送POST請求。

5)PUT DELETE請求

PUT:在特定目錄里上傳指定文件,文件名在url中設(shè)置。
DELETE:刪除特定目錄里的文件,文件名在url中設(shè)置。
在NGINX中,可以添加如下配置來允許PUT,DELETE
location /upload/ {
dav_methods PUT DELETE;
root /usr/share/nginx/html;
}

PUT - 發(fā)送包
PUT /upload/Untitled HTTP/1.1
Content-Type: application/octet-stream
Host: 192.168.1.64
Connection: close
User-Agent: Paw/2.2.5 (Macintosh; OS X/10.12.6) GCDHTTPRequest
Content-Length: 284

PUT – 返回包
HTTP/1.1 201 Created
Server: nginx/1.12.1
Date: Fri, 01 Sep 2017 13:40:03 GMT
Content-Length: 0
Location: http://192.168.1.64/upload/Untitled
Connection: close


DETELE – 發(fā)送包
DELETE /upload/Untitled HTTP/1.1
Host: 192.168.1.64
Connection: close
User-Agent: Paw/2.2.5 (Macintosh; OS X/10.12.6) GCDHTTPRequest

DELETE – 返回包
HTTP/1.1 204 No Content
Server: nginx/1.12.1
Date: Fri, 01 Sep 2017 13:51:07 GMT
Connection: close


6)TRACE、CONNECT請求

HTTP TRACE是讓我們的web服務(wù)器端將客戶端的所有請求信息返回給客戶端的方法,該方法多見于debug的需求。
CONNECT是在特定應(yīng)用走HTTP協(xié)議時會用到:文章來源地址http://www.zghlxwxcb.cn/news/detail-664848.html

  1. proxy可能會用到
  2. 某些使用http協(xié)議,需要長鏈接的程序(SSL就使用connect)

到了這里,關(guān)于Web安全測試:HTTP請求詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Web:前端常用的幾種Http請求GET和POST樣例

    Web:前端常用的幾種Http請求GET和POST樣例

    1、簡述 在Web開發(fā)過程中,少不了發(fā)起Http請求服務(wù)端的接口數(shù)據(jù),在不同的框架中使用了不同的Http請求方式,常用的請求有fetch、 ajax、 axios、XMLHttpRequest、request,以下樣例僅供參考。 2、Fetch Fetch API 是一種 JavaScript API,是一種基于 Promise 的現(xiàn)代API,用于在網(wǎng)絡(luò)中發(fā)送和接收

    2024年02月07日
    瀏覽(15)
  • web基礎(chǔ)與HTTP

    web基礎(chǔ)與HTTP

    (1)網(wǎng)絡(luò)上交互是基于TCP/ip協(xié)議,每個主機都有唯一的位置標識(ip)地址、物理地址為mac地址 (2)為了地址的唯一性,用戶協(xié)議向特地的機構(gòu)申請注冊,分配IP地址網(wǎng)絡(luò)中有兩種: IP地址系統(tǒng)、域名地址系統(tǒng) 因為32位的二進制數(shù)不便于記憶,因此有了域名代替。 DNS解析方

    2024年02月09日
    瀏覽(14)
  • linux高并發(fā)web服務(wù)器開發(fā)(web服務(wù)器)18_函數(shù)解析http請求, 正則表達式,sscanf使用,http中數(shù)據(jù)特殊字符編碼解碼

    linux高并發(fā)web服務(wù)器開發(fā)(web服務(wù)器)18_函數(shù)解析http請求, 正則表達式,sscanf使用,http中數(shù)據(jù)特殊字符編碼解碼

    pdf詳情版 編寫函數(shù)解析http請求 ○ GET /hello.html HTTP/1.1rn ○ 將上述字符串分為三部分解析出來 編寫函數(shù)根據(jù)文件后綴,返回對應(yīng)的文件類型 sscanf - 讀取格式化的字符串中的數(shù)據(jù) ○ 使用正則表達式拆分 ○ [^ ]的用法 通過瀏覽器請求目錄數(shù)據(jù) ○ 讀指定目錄內(nèi)容 ? opendir ?

    2024年02月16日
    瀏覽(27)
  • 【web基礎(chǔ)與HTTP協(xié)議】

    【web基礎(chǔ)與HTTP協(xié)議】

    1.1、域名的概述 1、域名的概念: IP地址不易記憶 2、早期使用Hosts文件解析域名: ·主機名稱重復(fù) ·主機維護困難 3、DNS(Domain Name System 域名系統(tǒng)): ·分布式 ·層次性 1.2、域名空間結(jié)構(gòu) ·根域 ·頂級域 — 組織域 — 國家/地區(qū)域名 ·二級域 ·FQDN=主機名.DNS后綴 DNS 解析過程 客戶端

    2024年02月07日
    瀏覽(20)
  • Web基礎(chǔ)①HTTP協(xié)議

    HTTP協(xié)議采用了請求/響應(yīng)模型。客戶端向服務(wù)器發(fā)送一個請求,請求頭包含請求的方法、URL、協(xié)議版本、以及包含請求修飾符、客戶信息和內(nèi)容的類似于MIME的消息結(jié)構(gòu)。 1.HTTP協(xié)議版本 (1)HTTP/0.9:已過時。只接受 GET 一種請求方法,沒有在通訊中指定版本號,且不支持請求頭

    2024年02月21日
    瀏覽(18)
  • web基礎(chǔ)與HTTP協(xié)議

    web基礎(chǔ)與HTTP協(xié)議

    1.1 DNS作用 正向解析 根據(jù)域名查找對應(yīng)的IP地址; 反向解析 根據(jù)IP地址查找對應(yīng)的域名 1.2 域名空間結(jié)構(gòu) ① 根域 位于域名空間最頂層,一般用一個 “.” 表示 基礎(chǔ)單位,除了根域 其他都只有一個上級域,有0或多個子域,同層域不可重復(fù)的子域或域名 ② 頂級域 一般代表一

    2024年02月06日
    瀏覽(16)
  • .NET Core(C#)使用Titanium.Web.Proxy實現(xiàn)Http(s)代理服務(wù)器監(jiān)控HTTP請求

    關(guān)于Titanium.Web.Proxy詳細信息可以去這里仔細看看,這里只記錄簡單用法 NuGet直接獲取Titanium.Web.Proxy 配置 與其說是配置,不如就說這一部分就是未來你需要使用的部分,想知道具體每個部分是干什么的就去看原文鏈接 全放過來太占地方 最后的 Console.Read(); 是一個等待函數(shù),你

    2024年02月09日
    瀏覽(24)
  • web基礎(chǔ)及http協(xié)議 (一)

    web基礎(chǔ)及http協(xié)議 (一)

    互聯(lián)網(wǎng):是網(wǎng)絡(luò)的網(wǎng)絡(luò),是所有類型網(wǎng)絡(luò)的母集 因特網(wǎng):世界上最大的互聯(lián)網(wǎng)網(wǎng)絡(luò)。即因特網(wǎng)概念從屬于互聯(lián)網(wǎng)概念。習(xí)慣上,大家把連接在因特網(wǎng)上的計算機都成為主機。 萬維網(wǎng):WWW (world wide web)萬維網(wǎng)并非某種特殊的計算機網(wǎng)絡(luò), 是一個大規(guī)模的、聯(lián)機式的信息貯藏

    2024年02月21日
    瀏覽(20)
  • web基礎(chǔ)http與apache

    web基礎(chǔ)http與apache

    ? ?HTTP?是一種用作獲取諸如 HTML 文檔這類資源的協(xié)議。它是 Web 上進行任何數(shù)據(jù)交換的基礎(chǔ),同時,也是一種客戶端—服務(wù)器(client-server)協(xié)議 ? ? ? 為解決\\\"用什么樣的網(wǎng)絡(luò)協(xié)議來實現(xiàn)整個因特網(wǎng)上的萬維網(wǎng)文檔”這一難題,就要使萬維網(wǎng)客戶程序(以瀏覽器為主,但不限

    2024年02月11日
    瀏覽(20)
  • HTTP——七、確保Web安全的HTTPS

    HTTP——七、確保Web安全的HTTPS

    HTTP——一、了解Web及網(wǎng)絡(luò)基礎(chǔ) HTTP——二、簡單的HTTP協(xié)議 HTTP——三、HTTP報文內(nèi)的HTTP信息 HTTP——四、返回結(jié)果的HTTP狀態(tài)碼 HTTP——五、與HTTP協(xié)作的Web服務(wù)器 HTTP——六、HTTP首部 HTTP——七、確保Web安全的HTTPS HTTP——八、確認訪問用戶身份的認證 HTTP——九、基于HTTP的功能

    2024年02月12日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包