WEB 應用程式技術基礎

2021-02-19 信安之路

每日學習打卡計劃是信安之路知識星球開啟的每天讀書一小時,挑戰打卡一百天的活動,能夠堅持學習打卡 100 天的同學可以獲得信安之路提供的百分成就徽章和證書,學習書籍可以自選,主要目的是養成每日讀書學習的好習慣,並將自己的學習心得分享出來供大家學習,如下是本周打卡榜單:

打卡一:P77-88

這部分內容都是在講 HTTP 協議,學習 web 安全,http 協議的知識必不可少,這部分內容適合根據實際的網站抓包之後對照的學習,光看不太行,這個內容也是成長平臺中的一個任務的要求,書中的內容還是比較全面的。

對於 http 協議,用的最多的關鍵詞是 cookie、x-forword-for、user-agent、GET、POST、Referer、HttpOnly、404、200、500 等。

以前做 web 滲透的時候,有個 cookie 注入,造成漏洞的原因是獲取參數使用 request 的方式,而不是 GET 或者 POST,但是在做安全防禦的時候,只監測 GET、POST 獲取的參數,而對於 COOKIE 中獲取的參數為做處理,所以就造成了 COOKIE 注入,當時是有一種很通用的防禦措施,還挺普遍。

這部分內容適合記憶,最好能夠將本章節的內容都記下來,抓到一個數據包之後能夠知道各個欄位都是什麼意思,比如 user-agent 是用來表示用戶的瀏覽器的,而很多爬蟲會把自己的 user-agent 改為搜尋引擎的,從而騙過反爬蟲的檢測,畢竟很多網站還是希望可以被搜尋引擎收錄,提升知名度。

還有就是 https 的問題,目前網站基本普及 https,很多雲服務商都可以免費申請單域名的證書,幾年前,https 不普及的時候,在內網大家都會用 arp 欺騙來進行內網抓包,有人在使用 http 協議做認證的時候還是可以抓到不少帳號密碼的,現在這種方式就比較難了,在內網儘量不要做這麼大的動作,很容易被發現,而且效果也不一定很好。

http 協議相關的其他內容還要大家親自動手,理解數據包中各個欄位的意思,剩下就看大家的了。

打卡二:P89-102

前面的內容講了 web 應用的核心傳輸協議,協議是用戶與 web 應用的交互通道,而這幾頁的內容主要讓大家知道 web 應用是如何構成的,其中包含哪些組件,應用如何接受用戶的輸入等。

首先 web 應用接受用戶提交參數的方式包括:url 中的參數(GET)、請求主體(POST)、cookie、REST風格(URL 路徑),除了這些,user-agent 作為瀏覽器的標識,可以根據不同的 UA 展示不同風格的頁面。

關於 web 應用的構成,前端的 html+css+JavaScript 技術,如今的 nodejs 框架等;中間件伺服器的 IIS、Apache、Tomcat、nginx 等;後端語言的 PHP、Java、python、go、Asp.net 等;資料庫的 mysql、mssql、oracle、monogo、redis 等;還有其他的一些加速和防禦的組件,比如 CDN、Waf、負載均衡、文件系統、目錄服務(ldap)等;這些都是組成 web 應用的核心組件,也是可能存在安全問題的根源,都是我們要學習和了解的技術點。

這部分內容都 web 應用組成的各個組件做了簡單的介紹,更詳細的內容可以去網站上自行搜索擴展,了解各個組件在整個 web 應用框架中所處的位置,如何識別 web 應用使用哪些技術棧,這樣可以大大提升我們找出安全問題的效率。

打卡三:P103-108

這部分內容主要講了跟 web 應用相關的幾種編碼方式,比如:URL 編碼、Unicode 編碼、HTML 編碼、Base64 編碼、十六進位編碼,對於這類基礎的編碼方式我們都是需要熟悉,能夠識別並且進行自定義編碼,有很多在線平臺可以進行各種編碼,比如站長工具:https://tool.chinaz.com/tools/urlencode.aspx

信安之路 unicode 編碼後:\u4fe1\u5b89\u4e4b\u8def

信安之路 url 編碼後:%e4%bf%a1%e5%ae%89%e4%b9%8b%e8%b7%af

<信安之路> html 編碼後:&lt;信安之路&gt;

信安之路十六進位編碼後:e4bfa1e5ae89e4b98be8b7af

信安之路 base64 編碼後:5L+h5a6J5LmL6Lev

還有很多其他的編碼格式,需要自行擴展,這裡提的幾種編碼方式都是比較容易識別的,各有各的特點。

在滲透測試的過程中會經常使用編碼來繞過安全防禦的策略,因為很多防禦和檢測規則都是基於正則表達式來的,所以繞過正則的檢測也就可以繞過防禦的措施。

相關焦點

  • web多媒體技術在視頻編輯場景的應用
    大家上午好,很高興來到咱們騰訊LIVE開發者大會。
  • Java Web應用程式初級知識
    原作者:Pankaj KumarWeb應用程式是用於創建動態網站。Java提供的Web應用程式通過servlets和JSP的支持。我們可以創建一個靜態HTML頁面的網站,但當我們想要的信息是動態的(和網站有交互),需要的Web應用程式。 本文的目的是提供Web應用程式的不同組件基本資料以及我們如何使用Servlet和JSP來創建我們的Java Web應用。
  • W3C 發布 WebXR 規範草案,用於開發沉浸式 Web 應用程式
    WebXR Device API 旨在為開發者提供用於開發沉浸式應用程式的接口,讓他們可以通過這些接口開發出基於 Web 的、舒適的、有吸引力的沉浸式應用程式。開發者可以通過 WebXR API 來創建 XR 體驗。XR 包括了增強現實(AR)、虛擬實境(VR)和最近出現的沉浸式技術。
  • Flask Web Development —— 基本應用程式結構(上)
    同時你將編寫和運行你的第一個Flask web應用程式。1、初始化在這章,你將學到Flask應用程式的不同部分。同時,你將編寫和運行你的第一個Flask web應用程式。所有的Flask應用程式都必須創建一個 應用程式實例 。使用web伺服器網關接口協議將所有從客戶端接收的請求傳遞給這個對象處理。
  • 我的第一個全棧 Web 應用程式
    ,並通過調用 Ruby on Rails API,手把手教會你如何創建一個完美的全棧 Web 應用程式。實現途徑有兩種:對於複雜的應用程式,第二種方式更常見。畢竟,單頁應用存在的原因就是它能提供更為平滑的用戶體驗,不會被全頁重新加載打斷。從代碼的角度來講,單頁應用意味著整個應用程式中只有一個HTML頁面,通常這個頁面名為index.html。
  • 10大實用web應用界面技術
    Web應用程式的界面設計,其核心就是網頁設計,但它的重點主要是在功能方面。要超越桌面應用程式, Web應用程式必須提供簡單、直觀和即時響應的用戶界面,讓他們的用戶花更少的精力和時間去完成事情。以前,我們並沒有注意到web應用程式這個方式,但是現在是時候仔細看看一些實用的技術和設計解決方案,讓Web應用更友好更漂亮。
  • 確保應用程式和系統安全的9大Web安全工具
    Zed攻擊代理(Zed Attack Proxy,ZAP)是一種開源web應用程式測試工具,最初由開放Web應用程式安全項目(Open Web Application Security Project,OWASP)開發。當涉及到網站的漏洞時,它被用於解決許多不同的問題。
  • 如何手工滲透測試Web應用程式(一):入門
    世界上大多數公司都非常關注對web應用程式的手工測試,而不是運行web應用程式掃描器——因為它會限制你的知識和技能,影響在測試中尋找漏洞的視野。在整個系列文章中,我將使用下面的程序:    NOWASP Mutiliadae    BURP ProxyNOWASP MutiliadaeNOWASP Mutiliadae是一個包含了40多個漏洞的web應用程式。它包括OWASP的top 10漏洞,也有其它組織的列表中的漏洞。
  • Java Web 應用程式解密與逆向工程實踐
    這可了不得了,而且你還不能再訪問生產機上的應用程式原始碼。 你要重新開始寫嗎?然後再考慮這些需求變更?也許可以不用。 這樣的事情真的可以發生,以下是我和團隊最近完成的逆向工程的實例。 面臨的挑戰 我們一直在用Java開發Web應用程式。
  • 計算機畢業設計中編寫一個簡單的web應用程式
    web應用程式是一個可以通過web訪問的應用程式。PS:目前軟體開發領域的三大方向:桌面應用程式(QQ,office)、web應用程式(天貓,京東)、嵌入式應用程式(安卓,iphone)手工編寫一個簡單的web程序:  首先電腦上需要安裝tomcat,網址如下:http://tomcat.apache.org/  選擇適合自己電腦配置的壓縮包或者exe安裝好後在電腦的高級設置中加入環境變量,變量名為
  • Web伺服器、應用程式伺服器、HTTP伺服器區別
    因為Web伺服器主要支持的協議就是HTTP,所以通常情況下HTTP伺服器和WEB伺服器是相等的(有沒有支持除HTTP之外的協議的web伺服器,作者沒有考證過),說的是一回事。   應用程式伺服器(簡稱應用伺服器),我們先看一下微軟對它的定義:"我們把應用程式伺服器定義為「作為伺服器執行共享業務應用程式的底層的系統軟體」。
  • 基礎:C# Web Service簡介及使用
    (4)高度分布式和跨平臺2、SOA:Service Oriented Architecture(面向服務的架構)(1)以服務作為軟體的基本構造塊來「組裝」軟體(2)Web Service是當前最成熟的一種SOA技術。它將網站的功能封裝為可復用的軟體服務,供其他Web應用程式調用。
  • Python+Dash快速web應用開發——基礎概念篇
    ❝本文示例代碼與數據已上傳至我的Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes❞1 簡介這是我的新系列教程「Python+Dash快速web應用開發」的第一期,我們都清楚學習一個新工具需要一定的動力,那麼為什麼我要專門為Dash
  • 什麼是Web應用程式?
    Web應用程式是一種利用網絡瀏覽器和網絡技術在網際網路上執行任務的電腦程式。 總覽數以百萬計的企業將網際網路作為一個具有成本效益的通信渠道。它使他們能夠與目標市場交換信息,並進行快速,安全的交易。 Web應用程式如何工作 Web應用程式通常用瀏覽器支持的語言(例如JavaScript和HTML)編寫,因為這些語言依賴瀏覽器來呈現程序可執行文件。一些應用程式是動態的,需要伺服器端處理。其他應用程式則完全是靜態的,無需在伺服器上進行任何處理。
  • Web 應用程式的架構體系變遷
    伺服器業務層是業務邏輯作為組合和定義良好的API(應用程式編程接口 - 函數調用集合)實現的地方。 像EJB,.NET和Spring等技術用來實現這一層。伺服器持久層負責通過對象關係映射(ORM)工具(如Hibernate,EclipseLink,Spring JDBC模板或其他ORM工具)抽取應用程式與存儲層特定關係資料庫的交互。
  • 11款常見的Web應用程式框架
    提供一系列強大特性幫助你創建各種Web應用。Express不對Node.js已有的特性進行二次抽象,只是在Node.js基礎上擴展了Web應用所需的功能。[django]ubuntu下django 開發 環境配置Django 後臺美化工具django-grappelli安裝及配置推薦下載資源:MeteorMeteor是一種新型JavaScript框架,用於WebApp應用程式開發。
  • 開篇之作:web程序開發簡介
    說到web程序開發,必須先來說說什麼是web應用程式。Web應用程式是網際網路的產物。網絡誕生以前,軟體程序只能部署在單機上。
  • 使用Electron開發Web桌面應用程式
    21CTO社區導讀:Electron是被公認為比PhoneGap等Hybird技術更受歡迎的原生應用包裝器 - 網絡應用程式概念的最佳實現
  • 傳統防火牆與Web應用程式防火牆(WAF)的區別
    由於WEB應用防火牆(WAF)的名字中有「防火牆」三個字,因此很多人都會將它與傳統防火牆混淆。實際上,二者之間的有著很大的差別。
  • 如何在一天內構建和部署機器學習web應用程式 — 榴槤分類
    應用程式不需要太多的代碼行。你可以確保它(假設它會被調用應用程式副本)可以通過在命令行中輸入以下命令在本地運行:將我們的模型部署到Heroku就我個人而言,部署不是我最喜歡的部分,但是,如果web應用程式不在web上,那它還有什麼意義呢?我們開始吧。你可以通過多種方式為web應用程式提供服務,也可以使用許多雲服務提供商來託管它。在這種情況下,我選擇使用Heroku主要是因為我以前沒有嘗試過。什麼是Heroku?