1. 程式人生 > >Web安全實踐第實驗

Web安全實踐第實驗

Web安全實踐實驗

一、網站加密過程簡介

CA(Certificate Authority)       加密          網站

步驟:

1.CA給瀏覽器廠商發公鑰

2.阿里把公鑰給CA,CA用自己的私鑰加密阿里的公鑰,返回給阿里

3.使用者用瀏覽器訪問阿里的網站,阿里把用CA的私鑰加密過的自己的公鑰給使用者

4.使用者用瀏覽器中的CA公鑰解密阿里公鑰,正確配對則信任訪問的網站

二、使用openssl生產上面所說的四個公鑰和私鑰

1.給CA生成公鑰和私鑰。建立一個根目錄放置所有檔案,這裡選擇了/home/lichking/ssl。private資料夾用於存放CA的私鑰,certs資料夾用於存放server頒發的證書的副本,index.txt檔案作為證書的資料庫檔案,serial檔案作為頒佈證書的序號,先使用01.

   mkdir ssl

   cd ssl

mkdir privatecerts

chmod 777private

touch index.txt

echo ‘01’>serial

如上圖,然後建立一個CA配置檔案caconfig.conf,內容如下(劃線部分需要修改):

[ ca ]

default_ca = local_ca

[ local_ca ]

dir = /home/lichking/ssl

certificate = $dir/cacert.pem

database = $dir/index.txt

new_certs_dir = $dir/certs

private_key = $dir/private/cakey.pem

serial = $dir/serial

default_crl_days = 365

default_days = 1825

default_md = sha1

policy = local_ca_policy

x509_extensions = local_ca_extensions

copy_extensions = copy

[ local_ca_policy ]

commonName = optional

stateOrProvinceName = optional

countryName = optional

emailAddress = optional

organizationName = optional

organizationalUnitName = optional

[ local_ca_extensions ]

basicConstraints = CA:false

[ req ]

default_bits = 2048

default_keyfile = /home/lichking/ssl/private/cakey.pem

default_md = sha1

prompt = no

distinguished_name = root_ca_distinguished_name

x509_extensions = root_ca_extensions

[ root_ca_distinguished_name ]

commonName = MyOwn Root Certificate Authority

stateOrProvinceName = NC

countryName = US

emailAddress = [email protected]

organizationName = Trade Show Hell

organizationalUnitName = IT Department

[ root_ca_extensions ]

basicConstraints = CA:true

[local_ca]下,dir為之前建立的資料夾的上級目錄,此處為/home/lichking,如圖

[req]下,default_keyfile也需要修改,此處為/home/lichking/private/cakey.pem

生成CA證書:opensslreq –x509 –newkey rsa:2048 –out cacert.pem –outform PEM –days 365 –configcaconfig.conf。

系統會要求輸入CA密碼,這個密碼會長生成伺服器證書時使用。我使用了lichking作為密碼。private下會生成cakey.pem

2.生成網站的公鑰和私鑰

先生成一個配置檔案server.conf

輸入指令gedit server.conf,把下面的內容貼上進去。

[ req ]

prompt = no

distinguished_name= server_distinguished_name

req_extensions =v3_req

[server_distinguished_name ]

commonName =localhost

stateOrProvinceName= NC

countryName = US

emailAddress [email protected]

organizationName= My Organization Name

organizationalUnitName= Subunit of My Large Organization

[ v3_req ]

basicConstraints= CA:FALSE

keyUsage =nonRepudiation, digitalSignature, keyEncipherment

subjectAltName [email protected]_names

[ alt_names ]

DNS.0 =localhost

DNS.1 =localhost

輸入openssl req –newkeyrsa:1024 –keyout serverkey.pem –keyform PEM –out tempreq.pem –outform PEM –configserver.conf

要求輸入密碼,我輸了123。

3.使用CA的私鑰對第二步生成的公鑰進行加密。

openssl ca –intempreq.pem –out server_crt.pem –config caconfig.conf

tempreq.pem就是第二步生成的公鑰,輸出為server_crt.pem,就是要加入到瀏覽器中的公鑰。輸入第一步生成CA時使用的密碼lichking

4.修改/etc/apache2/sites-avaiable中default-ssl檔案的SSLCertificateFile和SSLCertificateKeyFile,前面是用CA私鑰加密過的網站公鑰,後面是網站的私鑰。

SSLCertificateFile        /home/lichking/ssl/server_crt.pem

SSLCertificateKeyFile      /home/lichking/ssl/serverkey.pem

5.執行a2enmod ssl 和a2ensite default-ssl啟動SSL模組,執行service apache2 restart重啟伺服器。要求輸入伺服器私鑰,我輸的是123。

6.在firefox瀏覽器的Edit->Preferences->Advanced->Encryption->ViewCertificates->Authorities中import CA的根證書/home/lichking/ssl/cacert.pem檔案

三、實驗中遇到的問題

這次實驗是web安全實踐的第一個實驗,有的同學才剛開始用Linux,十分不熟悉,所以可能會出很多問題。屬於基本操作的問題我這裡就不寫了,下面寫我遇到的兩個問題。

1.輸入service apache2 restart後,顯示錯誤job forapache2.service failed……輸入systemctl status apache2.service後出現下面畫面。

問題分析:這可能是因為apache2設定引起的,輸入apache2ctl –t 查看出現的問題。

解決方法:如上圖,顯示檔案/etc/ssl/server_crt.pem不存在,可能是之前的第三步出現了問題,重新做一邊第三步。

問題分析:仔細檢視瀏覽器給出的錯誤提示,發現是serial number不對。可能是生成的證書編號重複了。

解決方法:回去改index.txt中的序列號。或者重新生成一遍證書。

附錄:給第一次使用apache2的朋友

安裝apache2:sudoapt-get install apache2

/etc/apache2下是配置檔案

ports.conf是監聽的埠

sites-available是可用的站點

建立一個新網站:

1.      修改apache2下的apache2.conf,全部改成granted

2.      進入sites-available資料夾,開啟000-default.conf,把DocumentRoot改成網站的資料夾

3.      a2ensite 000-default

4.      service apache2 restart

5.      開啟firefox,輸入localhost就可以看到自己的網站了。

四、實驗感想

  說實話這個實驗對於第一次接觸Linux的人來說挺難的,很多命令都沒明白就開始做實驗了。這次實驗開始前要做的工作有安裝一個虛擬機器à安裝ubuntuà安裝openssl和apache2。

之後才是正式的實驗。通過這次實驗可以體會到網站金鑰的生成過程,同時提高對Linux的熟悉程度。我第一次做這個實驗的時候做了兩天吧,前前後後做了5、6次,教同學又做了好幾次。web安全實踐課程就這樣開始了。

相關推薦

Web安全實踐實驗

Web安全實踐實驗 一、網站加密過程簡介 CA(Certificate Authority)       加密          網站 步驟: 1.CA給瀏覽器廠商發公鑰 2.阿里把公鑰給CA,CA用自己的私鑰加密阿里的公鑰,返回給阿里 3.使用者用瀏覽器訪問

《白帽子講web安全三 四章筆記

劫持 進行 cross 返回 AS 都是 存儲 http請求 用戶登錄 XSS(Cross Site Script)跨站腳本攻擊   縮寫CSS,但是為了和層疊樣式表(CSS)有所區別,所以在安全領域叫XSS   XSS攻擊,指通過"HTML註入"篡改了網頁,插入了惡意的腳

Web安全實踐

5. 網站安全實踐 搜尋引擎(黑語法) inurl:login.php intitle:登入 intext:登入 5.1 XSS 攻擊(cross site scripting) XSS攻擊全稱跨站指令碼攻擊,是為不和層疊樣式表(Cascading Style Sheets,

(web安全實踐)phpstorm+phpstorm社交論壇網站搭建+安全性測試(一)

(一)工具安裝與開發環境的搭建 1.搭建web開發環境和平臺 本次網站的搭建採用mysql作為資料庫儲存資料,伺服器採用apache伺服器,開發語言採用較為簡單的php語言;工具上採用使用較為簡便的整合開發工具phpstudy和phpstorm。 1.1 phpst

(web安全實踐)phpstorm+phpstorm社交論壇網站搭建+安全性測試(二)

(二)mysql資料庫設計+網站登入註冊介面實現 由於本次實踐時間關係和偏重於網站安全性的測試,對於網站前端ui的設計很簡單,簡單的html。。。。。,重點是背後的註冊檢測。(下一節) 1.資料庫設

20145309李昊《網絡對抗技術》實驗9 web安全基礎實踐

ons ava transfer mysql 要求 占用 nsf 工具 1.0 本實驗在同學幫助下完成 一、實驗準備 1.0 實驗目標和內容 Web前端HTML。能正常安裝、啟停Apache。理解HTML,理解表單,理解GET與POST方法,編寫一個含有表單的HTML。

20145207 Exp9 web安全基礎實踐

強制 inpu family gets 再看 images clas bsp 基礎實踐 Exp9 web安全基礎實踐 實驗後回答問題 (1)SQL註入攻擊原理,如何防禦(還不會做。。看的別人的感覺是這個意思) 攻擊原理:修改信息 防禦:禁止輸入 (2)XSS攻擊的原理,

20145311王亦徐 《網絡對抗技術》 Web安全基礎實踐

檢測 mage bottom 字符串 backdoor 隱私 port pda 寫入 2014531王亦徐 《網絡對抗技術》 Web安全基礎實踐 實驗內容 利用WebGoat平臺嘗試了一些XSS、CSRF、SQL註入攻擊 基礎問題回答 1、SQL註入攻擊原理,如何防禦

20145216史婧瑤《網絡對抗》Web安全基礎實踐

數據 轉碼 釣魚網站 常用 用戶修改 nbsp mit 當前頁 fun 20145216史婧瑤《網絡對抗》Web安全基礎實踐 實驗問題回答 (1)SQL註入攻擊原理,如何防禦 攻擊原理: SQL註入攻擊指的是通過構建特殊的輸入作為參數傳入web應用程序,而這些輸入大都是S

20145225唐振遠《網絡對抗》 Web安全基礎實踐

不可見 reat 列表 實踐 acc script 需要 網絡連接 java環境 20145225唐振遠《網絡對抗》Web安全基礎實踐 參考博客:20145215 盧肖明 基礎問題回答 (1)SQL註入攻擊原理,如何防禦? SQL註入攻擊就是通過把SQL命令插入到Web

愛創課堂每日一題十一天常見web安全及防護原理

前端 前端學習 前端入門sql註入原理就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。總的來說有以下幾點: 1.永遠不要信任用戶的輸入,要對用戶的輸入進行校驗,可以通過正則表達式,或限制長度,對單引號和雙"-"進行轉換等。 2

WEB安全番外四篇--關於SQL盲註

否則 substr sch date inf 產生一個隨機數 無法 cti tex 一、SQL盲註: 看不到回顯的,無法從返回直接讀取到數據庫內容的對數據的猜解,屬於盲註。 二、第一種--基於布爾類型的盲註: 這種很簡單,最典型的例子,就是挖SQL註入的時候常用的: 1

20145236《網絡對抗》Exp9 web安全基礎實踐

文本框 options 頁面 http username inf 命令 完整 protocol 20145236《網絡對抗》Exp9 web安全基礎實踐 一、基礎問題回答: SQL註入攻擊原理,如何防禦 SQL Injection:就是通過把SQL命令插入到Web表單遞

20155227《網絡對抗》Exp9 Web安全基礎實踐

過程 cee log 驗證 軟件 分析 跨站 select pro 20155227《網絡對抗》Exp9 Web安全基礎實踐 實驗內容 關於WebGoat Cross-Site Scripting(XSS)練習 Injection Flaws練習 CSRF攻擊 基礎問題

20155324《網絡對抗技術》web安全基礎實踐

eric ring 分法 conf 分享圖片 輸入框 trigge xss valid 20155324《網絡對抗技術》web安全基礎實踐 實驗內容 使用webgoat進行XSS攻擊、CSRF攻擊、SQL註入 實驗問答 SQL註入攻擊原理,如何防禦 ①SQL註入攻擊是攻擊者

20155308《網絡對抗》Exp9 Web安全基礎實踐

存儲過程 BE 權限 觀察 pass block 跨站 可靠的 都是 20155308《網絡對抗》Exp9 Web安全基礎實踐 本實踐的目標理解常用網絡攻擊技術的基本原理。Webgoat實踐下相關實驗。 實驗過程 WebGoat WebGoat是OWASP組織研制出的

20155216 Exp9 Web安全基礎實踐

輸入框 需要 換行符 employee message sql命令 SQ 深入 update Exp9 Web安全基礎實踐 基礎問題回答 1、SQL註入攻擊原理,如何防禦? 1.對用戶的輸入進行校驗,可以通過正則表達式,雙"-"進行轉換等。 2.不要使用動態拼裝sql,可以

EXP9 Web安全基礎實踐

ucc 網絡 glob 2.x 信用卡 eal () conf rip EXP9 Web安全基礎實踐 基礎問題回答 1.SQL註入攻擊原理,如何防禦? 原理:SQL註入是一種將SQL代碼添加到輸入參數中,傳遞到服務器解析並執行的一種攻擊手法。SQL註入攻擊是輸入參數未經過濾

20155201 網絡攻防技術 實驗Web安全基礎

cookie信息 。。 區分 基礎問題 永久 信息管理 註入攻擊 偽造 res 20155201 網絡攻防技術 實驗九 Web安全基礎 一、實踐內容 本實踐的目標理解常用網絡攻擊技術的基本原理。Webgoat實踐下相關實驗。 二、報告內容: 1. 基礎問題回答 1)SQ

20155311《網絡對抗》Web安全基礎實踐

用戶表 con lec 插入 weather 留言板 輸入驗證 部分 後臺程序 20155311《網絡對抗》Web安全基礎實踐 基礎問題回答 SQL註入攻擊原理,如何防禦? 原理:SQL註入攻擊指的是通過構建特殊的輸入作為參數傳入Web應用程序,而這些輸入大都是SQL語法裏