用僵尸網(wǎng)絡(luò)發(fā)動(dòng)DDoS攻擊在安全界來(lái)說(shuō)已經(jīng)不算事了,但現(xiàn)在有安全公司發(fā)現(xiàn),名為“Bondnet”的僵尸網(wǎng)絡(luò)通過(guò)控制超過(guò)15000臺(tái)的服務(wù)器,不僅能夠發(fā)動(dòng)DDoS攻擊、竊取企業(yè)的數(shù)據(jù),甚至還能用所控制的僵尸設(shè)備“挖礦”,開采不同種類的虛擬貨幣。
DDoS攻擊不算事 Bondnet僵尸網(wǎng)絡(luò)可挖礦
據(jù)披露,代號(hào)為Bood007.01的黑客從去年12月開始,主要開采暗網(wǎng)上常用的Monero(門羅幣),一天大約可獲利1000美元(約6902.5元人民幣)。
而Bondnet主要鎖定Windows Server主機(jī),利用系統(tǒng)弱密碼問題,和常見老舊系統(tǒng)漏洞來(lái)入侵系統(tǒng),例如phpMyAdmin配置錯(cuò)誤漏洞,或JBoss、Oracle Web Application Testing Suite、ElasticSearch、MS SQL servers、Apache Tomcat、Oracle Weblogic等,再通過(guò)一系列Visual Basic腳本程序,來(lái)植入遠(yuǎn)端的木馬和采礦程序。
最早一波Botnet攻擊發(fā)生在香港,因?yàn)閜hpMyAdmin配置錯(cuò)誤,讓攻擊者有機(jī)可乘,暗中植入了未知的DLL文件和編碼過(guò)的Visual Basic腳本程序。雖然感染主機(jī)上安裝了多種殺毒軟件,但都沒有發(fā)現(xiàn)到這些問題文件而告警。此外,攻擊者還會(huì)植入WMI木馬,來(lái)與C&C服務(wù)器溝通,傳遞設(shè)備的數(shù)據(jù)到C&C服務(wù)器,包括設(shè)備名稱、RDP端口、帳號(hào)密碼、Windows版本、正在活動(dòng)的處理器數(shù)量、運(yùn)行時(shí)間、操作系統(tǒng)的語(yǔ)言、CPU的架構(gòu)(x86/x64)等等,這些數(shù)據(jù)使用ASCII編碼,并且通過(guò)HTTP協(xié)議進(jìn)行傳輸。
Botnet攻擊流程圖(圖片來(lái)自guardicore.com)
研究人員指出,部分僵尸設(shè)備被用來(lái)執(zhí)行采礦計(jì)算,攻擊者會(huì)根據(jù)采集不同種類的加密貨幣,下載并安裝相對(duì)應(yīng)的礦工程序,采集加密貨幣的種類包括Monero、ByteCoin、RieCoin和ZCash等,這些加密貨幣都能兌換成美元。而且,為了確保采礦任務(wù)不會(huì)因系統(tǒng)重開機(jī)而中斷,攻擊者還設(shè)定了排期規(guī)則,每小時(shí)會(huì)自動(dòng)啟動(dòng)一次采礦程序。
目前,Botnet所控大多數(shù)僵尸設(shè)備負(fù)責(zé)采礦工作,一部分僵尸設(shè)備則負(fù)責(zé)勒索攻擊。而其目標(biāo)則針對(duì)跨國(guó)企業(yè)、大學(xué)、市議會(huì)和其他政府機(jī)關(guān)來(lái)發(fā)動(dòng)攻擊。
于測(cè)試過(guò)程中很多系統(tǒng)我們能接觸到的只有一個(gè)登陸界面,所以要充分挖掘漏洞,進(jìn)行深入操作
萬(wàn)能密碼繞過(guò)登錄
存在SQL注入的情況下,有可能使用萬(wàn)能密碼直接登錄
admin' or '1'='1'--
admin' OR 4=4/*
"or "a"="a
' or''='
' or 1=1--
有超級(jí)多
登錄口SQL注入
存在SQL注入的話直接注出賬密
有些可以構(gòu)造用戶注入登錄,比如熊海cms后臺(tái)登錄處存在sql注入
$login=$_POST['login'];
$user=$_POST['user'];
$password=$_POST['password'];
$checkbox=$_POST['checkbox'];
if ($login<>""){
$query = "SELECT * FROM manage WHERE user='$user'";
$result = mysql_query($query) or die('SQL語(yǔ)句有誤:'.mysql_error());
$users = mysql_fetch_array($result);
這里萬(wàn)能密碼起不到作用,因?yàn)樗峭ㄟ^(guò)用戶名去數(shù)據(jù)庫(kù)查密碼,再進(jìn)行匹配,還有一種方法非常巧妙
user:1' union select 1,2,'test','c4ca4238a0b923820dcc509a6f75849b',5,6,7,8#
password:1
這是mysql的特性, 在聯(lián)合查詢并不存在的數(shù)據(jù)時(shí),聯(lián)合查詢就會(huì)構(gòu)造一個(gè)虛擬的數(shù)據(jù),就相當(dāng)于構(gòu)造了一個(gè)虛擬賬戶,可以使用這個(gè)賬戶登錄
后臺(tái)未授權(quán)訪問
列舉幾種找未授權(quán)訪問的方法
組件未授權(quán)
使用的組件可能會(huì)出現(xiàn)漏洞,常用的未授權(quán)漏洞,對(duì)于端口的收集也至關(guān)重要,可以提高漏洞利用面
https://www.freebuf.com/vuls/265318.html
https://xz.aliyun.com/t/6103
超長(zhǎng)用戶名注冊(cè)
注冊(cè)用戶
admin+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1
覆蓋掉原來(lái)的admin用戶,不常見
任意重置密碼
此時(shí)客戶端會(huì)發(fā)一個(gè)驗(yàn)證碼包,這是隨意輸入驗(yàn)證碼,發(fā)包,返回包
返回包錯(cuò)誤的回顯為{“status”:0},將返回包的東西換成{“status”:1},即可重置密碼
用戶枚舉漏洞
找回密碼界面,輸入用戶名抓包,查看返回包中泄露的信息
比如:TerraMaster TOS 用戶枚舉漏洞 CVE-2020-28185
輸入用戶名 admin 點(diǎn)擊確定,查看Burp捕獲的包,其中有一個(gè)請(qǐng)求包用于確認(rèn)用戶admin是否存在,存在則返回用戶的郵箱信息
驗(yàn)證碼不刷新
驗(yàn)證碼不會(huì)自動(dòng)刷新,導(dǎo)致一個(gè)驗(yàn)證碼可以用很多次
驗(yàn)證碼失效
驗(yàn)證碼無(wú)效依然可爆破,在挖掘弱口令的時(shí)候,常常會(huì)遇到圖片驗(yàn)證碼無(wú)效的情況,此時(shí)只需要輸入正確的賬號(hào)密碼和驗(yàn)證碼,使用burpsuite依然可繼續(xù)爆破
驗(yàn)證碼前端返回
有的平臺(tái)可能驗(yàn)證碼校驗(yàn)在前端進(jìn)行,錯(cuò)誤的將后臺(tái)的驗(yàn)證碼返回到前端,導(dǎo)致攻擊者可以抓取返回包中的驗(yàn)證碼
驗(yàn)證碼爆破
有的平臺(tái)可能驗(yàn)證碼比較簡(jiǎn)單只有幾位數(shù)字,可能存在爆破,使用burp抓包爆破
驗(yàn)證碼短信轟炸
對(duì)于驗(yàn)證碼發(fā)送次數(shù)沒有做限制,導(dǎo)致造成短時(shí)間內(nèi)短信重發(fā),使用burp抓取獲取驗(yàn)證碼的包放到repeater不斷重放,更暴力點(diǎn)可以使用intruder
驗(yàn)證碼OCR
對(duì)登錄頁(yè)面使用工具如 xcode 對(duì)驗(yàn)證碼進(jìn)行識(shí)別爆破用戶賬號(hào)密碼
驗(yàn)證碼驗(yàn)證邏輯錯(cuò)誤
就是驗(yàn)證碼可以修改接收者,將賬戶修改密碼的驗(yàn)證碼抓包修改為其他手機(jī)號(hào),后臺(tái)并沒有做驗(yàn)證
萬(wàn)能驗(yàn)證碼
可能存在萬(wàn)能驗(yàn)證碼0000或者9999,不常見
過(guò)于簡(jiǎn)單的cookie
如果用戶登錄后的cookie并不是隨機(jī)的,而是如
cookie:Guest
這種過(guò)分簡(jiǎn)單的身份驗(yàn)證方法,可以導(dǎo)致越權(quán),如果又存在用戶注冊(cè),就可以注冊(cè)一個(gè)普通用戶然后越權(quán)為admin
固定加密的賬密
比如:中科網(wǎng)威 下一代防火墻控制系統(tǒng)存在賬號(hào)密碼泄露漏洞,攻擊者通過(guò)前端獲取密碼的Md5后解密可獲取完整密碼登陸后臺(tái)
fofa語(yǔ)句:body="Get_Verify_Info(hex_md5(user_string)."
F12查看前端發(fā)現(xiàn) admin的md5加密密碼
注釋泄露信息
必須泄露的url,或者敏感信息
URL重定向
經(jīng)常出現(xiàn)在登錄成功跳轉(zhuǎn)中,可以修改參數(shù)跳轉(zhuǎn)到任意頁(yè)面,可用于釣魚
比如:www.ocean.com?redir=aHR0cDovL2FkbWluLmFhYS5jb20=
redir后面的可能會(huì)進(jìn)行base64編碼
redirect、redirect_to、redirect_url、url、jump、jump_to、target、to、link、linkto、Domain
已知漏洞利用
因?yàn)橐粋€(gè)web服務(wù)會(huì)用到很多組件,只要一個(gè)組件出現(xiàn)漏洞,這個(gè)密不透風(fēng)的墻就被推到了,所以說(shuō)資產(chǎn)收集是很重要的,收集足夠多的信息,知己知彼百戰(zhàn)百勝
有條件可以用一個(gè)掃描器掃描已知漏洞
默認(rèn)密碼
很多設(shè)備都存在默認(rèn)的帳號(hào)密碼
特別是一些廠商設(shè)備弱口令很常見
常見設(shè)備弱口令整理
一個(gè)簡(jiǎn)單的弱口令就讓高昂的設(shè)備白給
測(cè)試賬號(hào)未刪除
比如 test,ceshi
拼音姓名字典
拼音姓名字典、用戶名字典(如root,system,admin1等)+弱口令爆破,使用常規(guī)的拼音姓名字典 +123456,123,等弱口令進(jìn)行爆破
如果網(wǎng)站有注冊(cè)功能,破解用戶密碼的時(shí)候可以先去注冊(cè)查看注冊(cè)機(jī)制,如果可以使用123456等
密碼那么就用拼音字典去爆破123456等弱口令,如果不行,可根據(jù)密碼復(fù)雜程度制作密碼,比如密碼需求是字
母加數(shù)字的八位,就可以嘗試abcd1234等符合密碼規(guī)則的密碼進(jìn)行爆破
用戶名枚舉
使用兩位字母和三位字母枚舉,爆破123456等弱口令,成功爆破出一枚管理員后臺(tái)賬號(hào)密碼,之前一個(gè)學(xué)校的后臺(tái)弱口令沒成功,SQL注入后發(fā)現(xiàn)用戶名全是姓名首字母,密碼1111
提示過(guò)于詳細(xì)
當(dāng)爆破的時(shí)候返回包顯示密碼不正確和用戶名不存在的時(shí)候,我們可以搜集這些用戶名進(jìn)行專門的弱口令爆破,例如我爆破出存在多個(gè)存在的用戶名,首先搜集這些用戶名,然后設(shè)置burpsuite,通過(guò)以下格式的方法進(jìn)行爆破,例如:Lihua,lihua123 lihua lihua lihua lihua@123 lihua lihua1234且注意網(wǎng)站下方是否有建立時(shí)間,如果時(shí)間是2017年建站的 ,我們的密碼可以設(shè)置成lihua@2017 lihua@2018等進(jìn)行專門針對(duì)用戶名的爆破
域名做字典
截取子域名一部分作為字典挖掘弱口令
比如學(xué)校 wlzx(網(wǎng)絡(luò)中心),tw(團(tuán)委),jxzl(教學(xué)質(zhì)量)等常見的系統(tǒng)用戶名也是子域名
根據(jù)網(wǎng)站性質(zhì)猜測(cè)用戶名,比如教務(wù)類網(wǎng)站常有teacher,student1等用戶名,或者企業(yè)縮寫為用戶名
搜集文章發(fā)布者姓名
搜集文章發(fā)布者姓名,在挖掘弱口令漏洞的時(shí)候,我常常會(huì)搜集文章發(fā)布者的姓名,網(wǎng)頁(yè)上會(huì)有一些文章發(fā)布者的名字,我會(huì)把它搜集其他作為針對(duì)該網(wǎng)站爆破后臺(tái)的用戶名,并且整合前幾種方法進(jìn)行爆破。如果遇到中文名的管理員,我會(huì)把它轉(zhuǎn)換為英文名,比如發(fā)布者:李剛,我的字典里就會(huì)多l(xiāng)ilgang,lg,lig,lgang,這幾個(gè)用戶名,配合前幾種姿勢(shì)進(jìn)行爆破。當(dāng)然也遇到過(guò)比較奇葩的,直接就是中文為用戶名
信息收集
不放過(guò)細(xì)節(jié),qq群號(hào)很重要
在以前遇到一個(gè)這樣的案例,網(wǎng)站上面存在一個(gè)客服qq群號(hào)碼,網(wǎng)站是需要公司用戶登錄的,驗(yàn)證碼也無(wú)法爆破,我在了解了網(wǎng)站的業(yè)務(wù)之后,通過(guò)網(wǎng)站上的qq群號(hào)碼加群,在群公告之中發(fā)現(xiàn)了默認(rèn)密碼是xxx@xx1,但是不知道用戶名,就在群里問了一句我登錄不進(jìn)去了,然后私聊一些群里的其他用戶獲取了用戶名是企業(yè)統(tǒng)一信用代碼,而群名片就是企業(yè)名字。我通過(guò)中國(guó)企業(yè)統(tǒng)一代碼查詢網(wǎng)站得知了這些企業(yè)的用戶名。然后通過(guò)該默認(rèn)密碼進(jìn)入了后臺(tái)繼續(xù)深入挖掘。另外在src上也挖到過(guò)同類問題,直接通過(guò)企業(yè)用戶名和企業(yè)信用代碼就可以重置企業(yè)用戶密碼進(jìn)而查看學(xué)生簡(jiǎn)歷,總而言之,任何網(wǎng)頁(yè)上的信息都可能作為用戶名,需要細(xì)心搜集
注冊(cè)賬號(hào)搜尋信息
在網(wǎng)站登錄口無(wú)法爆破的時(shí)候,可以耐下心來(lái)注冊(cè),通過(guò)后臺(tái)搜索好友等方法搜集用戶名。然后在了解注冊(cè)密碼復(fù)雜程度機(jī)制之后挨個(gè)挨個(gè)的去手工嘗試用戶名密碼。比如搜集到了lihao用戶名,就可以參照前面的方法手動(dòng)嘗試lihao lihao123等密碼進(jìn)行登錄,此方法需要很大耐心,但是十分有效
安裝文檔
搜集該網(wǎng)站的安裝文檔,使用文檔等尋找默認(rèn)賬號(hào)密碼或者未打碼(也可以通過(guò)百度,谷歌,百度網(wǎng)盤等搜集)
Fuzz
工號(hào)、學(xué)號(hào)、身份證號(hào)等f(wàn)uzz,當(dāng)遇到用戶名可能為工號(hào)的情況下,fuzz一波數(shù)字工號(hào) ,或者尋找有無(wú)工號(hào)泄露的地方,根據(jù)工號(hào)繼續(xù)爆破
各位大佬們多多提高危
本文由Ocean原創(chuàng)發(fā)布
轉(zhuǎn)載,請(qǐng)參考轉(zhuǎn)載聲明,注明出處: https://www.anquanke.com/post/id/259244
安全客 - 有思想的安全新媒體
Java web,是用java技術(shù)來(lái)解決相關(guān)web互聯(lián)網(wǎng)領(lǐng)域的技術(shù)的總稱。web包括:web服務(wù)器和web客戶端兩部分。
java在最早web客戶端的應(yīng)用有java applet程序,不過(guò)這種技術(shù)在很久之前就已經(jīng)被淘汰了。java在服務(wù)器端的應(yīng)用非常豐富,
比如Servlet,jsp和第三方框架等等。java技術(shù)對(duì)web領(lǐng)域的發(fā)展注入了強(qiáng)大的動(dòng)力
簡(jiǎn)單的說(shuō),就是使用java語(yǔ)言實(shí)現(xiàn)瀏覽器可以訪問的程序內(nèi)容。稱之為Java Web。
javaweb開發(fā)是基于請(qǐng)求和響應(yīng)的:
請(qǐng)求:瀏覽器(客戶端)向服務(wù)器發(fā)送信息
響應(yīng):服務(wù)器向(客戶端)瀏覽器回送信息
請(qǐng)求和響應(yīng)是成對(duì)出現(xiàn)的。
所謂web資源即放在Internet網(wǎng)上供外界訪問的文件或程序,又根據(jù)它們呈現(xiàn)的效果及原理不同,將它們劃分為靜態(tài)資源和動(dòng)態(tài)資源。
靜態(tài)web資源:固定不變數(shù)據(jù)文件(靜態(tài)網(wǎng)頁(yè) HTML、CSS文件、文本、音頻、視頻)
靜態(tài)web技術(shù):HTML+CSS+JavaScript
動(dòng)態(tài)web資源:一段服務(wù)程序,運(yùn)行后,生成的數(shù)據(jù)文件
動(dòng)態(tài)web技術(shù):servlet,jsp,php, .net ,ruby、python等等
web服務(wù)器簡(jiǎn)介:
Tomcat:由Apache組織提供的一種Web服務(wù)器,提供對(duì)jsp和Servlet的支持。它是一種輕量級(jí)的javaWeb容器(服務(wù)器),也是當(dāng)前應(yīng)用最廣的JavaWeb服務(wù)器(免費(fèi))。
Jboss:是一個(gè)遵從JavaEE規(guī)范的、開放源代碼的、純Java的EJB服務(wù)器,它支持所有的JavaEE規(guī)范(免費(fèi))。
GlassFish: 由Oracle公司開發(fā)的一款JavaWeb服務(wù)器,是一款強(qiáng)健的商業(yè)服務(wù)器,達(dá)到產(chǎn)品級(jí)質(zhì)量(應(yīng)用很少,收費(fèi))。
Resin:是CAUCHO公司的產(chǎn)品,是一個(gè)非常流行的應(yīng)用服務(wù)器,對(duì)servlet和JSP提供了良好的支持,性能也比較優(yōu)良,resin自身采用JAVA語(yǔ)言開發(fā)(收費(fèi),應(yīng)用比較多)。
WebLogic:是Oracle公司的產(chǎn)品,是目前應(yīng)用最廣泛的Web服務(wù)器,支持JavaEE規(guī)范,而且不斷的完善以適應(yīng)新的開發(fā)要求,適合大型項(xiàng)目(收費(fèi),用的不多,適合大公司)。
3.1、Tomcat服務(wù)器
開源小型web服務(wù)器 ,完全免費(fèi),主要用于中小型web項(xiàng)目,只支持Servlet和JSP 等少量javaee規(guī)范(就是JavaWeb編程接口)
3.2、tomcat服務(wù)器與servlet版本的關(guān)系
servlet:sun公司提供的用于開發(fā)動(dòng)態(tài)web資源的技術(shù)。
jsp:(java server page),java提供的一門開發(fā)web網(wǎng)頁(yè)的技術(shù)。
tomcat軟件:java開發(fā)的。java軟件運(yùn)行的時(shí)候需要jdk。
向下兼容。tomcat7也支持servlet3.0/jsp2.2規(guī)范,可以支持javaee6.0當(dāng)前企業(yè)常用的版本 6.* / 7.*/8.*
3.3、tomcat下載和安裝說(shuō)明
到http://tomcat.apache.org 下載
1) Tomcat首頁(yè)
2)Tomcat下載
3)下載后的包
4)安裝:解壓
5)tomcat的安裝目錄介紹:
bin:可以執(zhí)行文件。
conf:tomcat服務(wù)器的配置文件
lib:tomcat啟動(dòng)后需要依賴的jar包
logs:tomcat工作之后的日志文件
webapps:是tomcat布暑工程的目錄。
work:jsp文件在被翻譯之后,保存在當(dāng)前這個(gè)目錄下,session對(duì)象被序列化之后保存的位置
3.4、Tomcat服務(wù)器啟動(dòng)(**重點(diǎn))
注意事項(xiàng):
1、JAVA_HOME:環(huán)境變量。并且配置到j(luò)dk的目錄,其完整過(guò)程如下:
打開控制臺(tái)(cmd命令打開窗口)。輸入java -version測(cè)試
2、啟動(dòng)tomcat目錄。 tomcat目錄/bin/startup.bat(window啟動(dòng)文件) 找到startup.bat 雙擊運(yùn)行。會(huì)有一個(gè)黑窗口,黑窗口不要關(guān)閉。(如果關(guān)閉,相當(dāng)于把tomcat停止了。)
3、在瀏覽器地址欄中輸入:http://localhost:8080 或者 http://127.0.0.1:8080localhost ,如果看到如下頁(yè)面,證明啟動(dòng)成功
3.5、配置tomcat的端口(****重點(diǎn))
tomcat默認(rèn)的端口是8080(訪問端口)
http的默認(rèn)端口是80,如果訪問的時(shí)候輸入http://www.baidu.com相當(dāng)于http://www.baidu.com:80。當(dāng)真正在項(xiàng)目上線之后,通常采用80,修改方法如下:
1)找到tomcat目錄/conf/server.xml
2)修改port的值,將port端口的值修改為80
3)然后在瀏覽器中輸入 http://127.0.0.1:80 或 http://127.0.0.1 訪問測(cè)試
訪問成功!!!
3.6、catalina run 啟動(dòng)Tomcat
Tomcat啟動(dòng),還有一種啟動(dòng)的方法就是在命令行中,先把你的當(dāng)前目錄切換 到你tomcat目錄\bin目錄下,如下是我的位置
再執(zhí)行catalina run 這個(gè)命令啟動(dòng)Tomcat。這個(gè)命令有什么好處。當(dāng)Tomcat啟動(dòng)失敗的時(shí)候,會(huì)有一閃而過(guò)的情況,
當(dāng)我們使用catalina run 這個(gè)命令啟動(dòng)Tomcat的時(shí)候,哪怕有錯(cuò)誤,我們也可以清楚的看到tomcat失敗的原因。不會(huì)一閃而過(guò)。
3.7、tomcat關(guān)閉
有三種方法。
第一種:Ctrl+C鍵 關(guān)閉Tomcat服務(wù)器
第二種:點(diǎn)擊Tomcat窗口的右上角關(guān)閉按鈕 (暴力停止服務(wù)器)
第三種:找到tomcat目錄/bin/shutdown.bat文件,雙擊執(zhí)行關(guān)閉Tomcat。
把我們自己書寫的html,servlet這些信息,部署到tomcat的方式。
4.1、第一種方法:在tomcat目錄/conf/server.xml 配置---了解
在conf/server.xml文件的host元素中配置,例如:
在host標(biāo)簽內(nèi)書寫如下內(nèi)容
<Context path="/atguigu" docBase="D:\atguigu"/>
<Context path=”瀏覽器要訪問的目錄---虛擬目錄” docBase=”網(wǎng)站所在磁盤目錄”/>
配置好之后,要重啟服務(wù)器。
缺點(diǎn)(Tomcat7.0之后):如果配置錯(cuò)誤:tomcat會(huì)啟動(dòng)失敗。(如果tomcat里面存放的其他的網(wǎng)站),其他網(wǎng)站也會(huì)停機(jī)。
4.2、第二種方式:將網(wǎng)站目錄復(fù)制到tomcat/webapps目錄(常用,必須掌握)
有一個(gè)網(wǎng)站(一個(gè)文件夾),把文件夾復(fù)制到tomcat的webapps目錄下。
文件夾的名字,就是網(wǎng)站或者工程的訪問目錄.相當(dāng)于之前配置 <Context path=”” 的配置
4.3、把網(wǎng)站目錄壓縮成war包部署到tomcat中
war包:就是一個(gè)壓縮文件 zip格式的壓縮文件。 只不過(guò)擴(kuò)展名不是.zip 而是.war
把我們的項(xiàng)目進(jìn)行壓縮zip,改成war,把war文件拷貝到tomcat/webapps目錄下
步驟1、把文件夾中的內(nèi)容壓縮成zip的格式,點(diǎn)擊一個(gè)要部署的文件夾下面,全選 然后壓縮
步驟2、修改文件的后綴名為.war
步驟3.把war文件復(fù)制到webapps目錄下。tomcat會(huì)自己把war的文件進(jìn)行解壓
4.4、webapps目錄下/ROOT工程的訪問
當(dāng)我們?cè)跒g覽器中直接輸入http://ip地址:端口號(hào) 那么 默認(rèn)訪問的是Tomcat目錄/webapps/ROOT目錄
如果webapps下面有一個(gè)ROOT的項(xiàng)目。那么在訪問的時(shí)候,直接可以省略項(xiàng)目的名字/ 表示找到root目錄
5.1、打開Eclipse的Server視圖窗口
第一種情況,直接打開Servers窗口
第二種情況,搜索Servers窗口打開
圖一,打開總的eclipse視圖
圖二:輸入Server過(guò)濾出服務(wù)器窗口選項(xiàng)
Servers服務(wù)器窗口已成功打開,如下圖:
5.2、創(chuàng)建Tomcat 服務(wù)器
1)在Servers窗口中,點(diǎn)擊 創(chuàng)建 server 的文字提示連接。如下圖:
2)創(chuàng)建一個(gè)新的Tomcat服務(wù)器實(shí)例
3)點(diǎn)擊Browse按鈕,打開目錄選擇窗口。選擇Tomcat 解壓目錄
4)選擇Tomcat目錄,然后點(diǎn)擊確定按鈕
5)Tomcat目錄選擇好之后,點(diǎn)擊 【Next】按鈕繼續(xù)操作
6)點(diǎn)擊 【Finish】按鈕結(jié)束操作
7)Tomcat 服務(wù)器創(chuàng)建成功!!!
5.3、啟動(dòng)Eclipse中的Tomcat服務(wù)器
1)Debug模式啟動(dòng)Tomcat服務(wù)器
提示當(dāng)前為Debug模式啟動(dòng)!!!
Tomcat啟動(dòng)成功的控制臺(tái)提示!!!
2)Run模式啟動(dòng)Tomcat服務(wù)器
Run模式啟動(dòng)顯示
Tomcat啟動(dòng)成功的控制臺(tái)提示!!!
5.4、停止 Eclipse 中的Tomcat 服務(wù)器
暴力停止 Tomcat (相當(dāng)于電腦被拔掉電源一樣。沒有執(zhí)行關(guān)機(jī)的準(zhǔn)備操作。)
正常停止 Tomcat (相當(dāng)于點(diǎn)擊操作系統(tǒng)中的關(guān)機(jī)按鈕,執(zhí)行關(guān)機(jī)保存操作,然后關(guān)機(jī))
5.5、配置Eclipse 中的Tomcat 布暑的Web工程路徑
1)打開Servers窗口,雙擊Tomcat v6.0 Server 服務(wù)器打開 Tomcat的配置窗口
這里是Eclipse把工程發(fā)布后的三種不同的選項(xiàng)。
2)Tomcat 位置-選項(xiàng)介紹說(shuō)明:
2.1、User workspance metadata (does not modify Tomcat installation) 將在eclipse的工作區(qū)間目錄下eclipse的工作空間目錄\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\ 有一份tomcat的拷貝所有布暑的web工程都會(huì)布暑到eclipse的工作空間目錄\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps目錄中
2.2、 User Tomcat installation (takes control of Tomcat installation) 在原Tomcat目錄下做更改操作所有布暑的web工程都會(huì)發(fā)布到Tomcat目錄下的\wtpwebapps目錄中
2.3、 User custom location ( does not modify Tomcat installtion ) 自定義一個(gè)目錄去布暑Web工程
比如操作如下:
一:選擇自定義的布暑目錄
二:選擇你自定義的目錄,然后點(diǎn)擊確定。之后Tomcat的一些目錄會(huì)被拷貝過(guò)來(lái)。布暑的工程也在這個(gè)目錄下的wtpwebapps目錄下
三:選中你要布暑的工程,右鍵選擇菜單 Run As --->>> Run on Server 將工程布暑到剛剛自定義的目錄下。
四:選擇你當(dāng)前的web工程需要使用的哪個(gè)服務(wù)器運(yùn)行。
如果勾選中 Always use this server when running this project 表示下次運(yùn)行服務(wù)器的時(shí)候默認(rèn)使用當(dāng)勾時(shí)時(shí)候選擇的服務(wù)器運(yùn)行。
五:等待Tomcat啟動(dòng),web工程布暑成功后。查看
六:在瀏覽器中輸入http://127.0.0.1:8080/day06/index.html 測(cè)試查看
6.1、 HTTP協(xié)議
1.HTTP(hypertext transport protocol),即超文本傳輸協(xié)議。這個(gè)協(xié)議詳細(xì)規(guī)定了瀏覽器和萬(wàn)維網(wǎng)服務(wù)器之間互相通信的規(guī)則。
2.客戶端與服務(wù)端通信時(shí)傳輸?shù)膬?nèi)容我們稱之為報(bào)文。
3.HTTP就是一個(gè)通信規(guī)則,這個(gè)規(guī)則規(guī)定了客戶端發(fā)送給服務(wù)器的報(bào)文格式,也規(guī)定了服務(wù)器發(fā)送給客戶端的報(bào)文格式。實(shí)際我們要學(xué)習(xí)的就是這兩種報(bào)文。客戶端發(fā)送給服務(wù)器的稱為”請(qǐng)求報(bào)文“,服務(wù)器發(fā)送給客戶端的稱為”響應(yīng)報(bào)文“。
大白話說(shuō),什么是協(xié)議。是雙方相互約定好的規(guī)則;比如:租房協(xié)議:租房協(xié)議就是租客和房東之間相互約定好的租房規(guī)則
6.2、請(qǐng)求的協(xié)議格式
請(qǐng)求的HTTP協(xié)議格式:
請(qǐng)求行
請(qǐng)求頭
空行
請(qǐng)求體
GET請(qǐng)求協(xié)議格式 (get請(qǐng)求沒有請(qǐng)求體)
POST請(qǐng)求協(xié)議格式
6.3、常見請(qǐng)求頭的說(shuō)明
GET /Hello/index.jsp HTTP/1.1:GET請(qǐng)求,請(qǐng)求服務(wù)器資源的路徑 Hello/index.jsp, 協(xié)議為http 版本為1.1;
Host:localhost:請(qǐng)求的主機(jī)名為localhost;
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0…:與瀏覽器和OS相關(guān)的信息。有些網(wǎng)站會(huì)顯示用戶的系統(tǒng)版本和瀏覽器版本信息,這都是通過(guò)獲取User-Agent頭信息而來(lái)的;
Accept: */*:告訴服務(wù)器,當(dāng)前客戶端可以接收的數(shù)據(jù)類型, */*,就表示什么都可以接收;
Accept-Language: zh-CN:當(dāng)前客戶端支持的語(yǔ)言,可以在瀏覽器的工具選項(xiàng)中找到語(yǔ)言相關(guān)信息;
Accept-Encoding: gzip, deflate:支持的壓縮格式。數(shù)據(jù)在網(wǎng)絡(luò)上傳遞時(shí),可能服務(wù)器會(huì)把數(shù)據(jù)壓縮后再發(fā)送;
Connection: keep-alive:客戶端支持的鏈接方式,保持一段時(shí)間鏈接,默認(rèn)為3000ms;
6.4、get請(qǐng)求和post請(qǐng)求都分別是哪些?
GET請(qǐng)求
1)、輸入瀏覽器地址欄輸入地址,直接按回車
2)、點(diǎn)擊<a>超鏈接
3)、GET請(qǐng)求 表單提交
4)、script src=””,引入外部文件
5)、img src=”路徑”,引入圖片
6)、引入外部css。。。
POST請(qǐng)求
1)只有表單提交的時(shí)候method=post,提交表單就是發(fā)post請(qǐng)求
6.5、響應(yīng)的協(xié)議格式
響應(yīng)的HTTP協(xié)議格式
響應(yīng)首行
響應(yīng)頭信息
空行
響應(yīng)體
6.6、常見的響應(yīng)碼
響應(yīng)碼對(duì)瀏覽器來(lái)說(shuō)很重要,它告訴瀏覽器響應(yīng)的結(jié)果;
200:請(qǐng)求成功,瀏覽器會(huì)把響應(yīng)體內(nèi)容(通常是html)顯示在瀏覽器中;
404:請(qǐng)求的資源沒有找到,說(shuō)明客戶端錯(cuò)誤的請(qǐng)求了不存在的資源;
500:請(qǐng)求資源找到了,但服務(wù)器內(nèi)部出現(xiàn)了錯(cuò)誤;
302:請(qǐng)求重定向,當(dāng)響應(yīng)碼為302時(shí),表示服務(wù)器要求瀏覽器重新再發(fā)一個(gè)請(qǐng)求,服務(wù)器會(huì)發(fā)送一個(gè)響應(yīng)頭Location,它指定了新請(qǐng)求的URL地址;
7.1、servlet簡(jiǎn)介
servlet 是運(yùn)行在 Web 服務(wù)器中的小型 Java 程序。servlet 通常通過(guò) HTTP(超文本傳輸協(xié)議)接收和響應(yīng)來(lái)自 Web 客戶端的請(qǐng)求。
要實(shí)現(xiàn)此接口,可以編寫一個(gè)擴(kuò)展 javax.servlet.GenericServlet 的一般 servlet,或者編寫一個(gè)擴(kuò)展 javax.servlet.http.HttpServlet 的 HTTP servlet。
此接口定義了初始化 servlet 的方法、為請(qǐng)求提供服務(wù)的方法和從服務(wù)器移除 servlet 的方法。這些方法稱為生命周期方法,它們是按以下順序調(diào)用的:
1.構(gòu)造 servlet,然后使用 init 方法將其初始化。
2.處理來(lái)自客戶端的對(duì) service 方法的所有調(diào)用。
3.從服務(wù)中取出 servlet,然后使用 destroy 方法銷毀它,最后進(jìn)行垃圾回收并終止它。
Servlet:
1、接受瀏覽器發(fā)送過(guò)來(lái)的消息。
2、給瀏覽器返回消息。瀏覽器認(rèn)識(shí)html。可以動(dòng)態(tài)去輸出html
7.2、servlet快速入門
7.2.1、如何創(chuàng)建動(dòng)態(tài)的Web工程
1)先創(chuàng)建 動(dòng)態(tài)的Web工程
2) 配置工程的選項(xiàng)
3)勾選生成web.xml配置文件
4)動(dòng)態(tài)web工程創(chuàng)建完成!!!
5)web工程的介紹和說(shuō)明
7.2.2、手動(dòng)編寫servlet實(shí)現(xiàn)
寫servlet做兩件事
1、實(shí)現(xiàn)servlet接口。 由sun公司定義的一個(gè)接口。(定義一個(gè)規(guī)范)
2、把類部署到web服務(wù)器中(tomcat)。
sun公司定義一個(gè)servlet的規(guī)范。定義了servlet應(yīng)該有哪些方法,以及方法需要的參數(shù)。
1、實(shí)現(xiàn)servlet接口(javax.servlet.Servlet)
2、重寫service方法(service方法每次請(qǐng)求都會(huì)調(diào)用一次)
[java] view plain copy
當(dāng)瀏覽器輸入地址,訪問servlet的時(shí)候,servlet會(huì)執(zhí)行servcie方法。
3、在WebContent/WEB-INF/web.xml中配置servlet的訪問路徑 。瀏覽器訪問servlet的路徑
web.xml(新建web工程的時(shí)候,eclipse自動(dòng)創(chuàng)建出來(lái)的)的位置:
在web.xml的根標(biāo)簽下,直接書寫如下內(nèi)容。
[html] view plain copy
4、把項(xiàng)目部署到tomcat中,去啟動(dòng)tomcat。在地址欄中輸入信息,訪問servlet
控制臺(tái)打印:
7.2.3、訪問servlet的細(xì)節(jié)
瀏覽器地址欄中輸入:http://localhost:8080/day06/hello
訪問過(guò)程分析:
7.2.4、servlet生命周期
Servlet的生命周期
1.調(diào)用 init 方法 初始化Servlet
2.調(diào)用 Servlet中的service方法 處理請(qǐng)求操作
3.調(diào)用 destory方法 執(zhí)行Servlet銷毀的操作
init方法:當(dāng)服務(wù)器創(chuàng)建一個(gè)serlvet的時(shí)候,會(huì)去調(diào)用init方法。當(dāng)我們第一次去訪問一個(gè)servlet的時(shí)候,會(huì)去創(chuàng)建這個(gè)servlet對(duì)象。并且只會(huì)創(chuàng)建一次。如果配置了load-on-startup 表示服務(wù)器啟動(dòng)的時(shí)候就創(chuàng)建servlet實(shí)例。
service方法:客戶端每一次請(qǐng)求,tomcat都會(huì)去調(diào)用servcie方法。處理用戶的請(qǐng)求。并且給其響應(yīng)。每一次請(qǐng)求都會(huì)調(diào)用servcie方法。
estroy 方法:當(dāng)服務(wù)器銷毀一個(gè)servlet的時(shí)候,會(huì)調(diào)用里面的destory方法。當(dāng)我們的web服務(wù)器,正常關(guān)閉的時(shí)候,會(huì)去調(diào)用destroy方法。否則不會(huì)調(diào)用destroy的方法。
7.3、使用Eclipse創(chuàng)建Servlet程序(重點(diǎn)*****)
1)通過(guò)Eclipse自動(dòng)新建一個(gè)Servlet程序
2)修改Servlet的訪問url地址
3)勾選需要生成的Servlet方法
4) 查看自動(dòng)生成的結(jié)果內(nèi)容!!!
5) 在瀏覽器中輸出http://127.0.0.1:80/day06/helloServlet 訪問測(cè)試
訪問成功
7.4、Servlet是單例的。Servlet中的變量,它有線程安全問題。
7.4.1、全局變量,數(shù)據(jù)不安全。
7.4.2、方法內(nèi)的局部變量,數(shù)據(jù)安全
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。