整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          DDoS攻擊不算事 Bondnet僵尸網(wǎng)絡(luò)可挖礦

          用僵尸網(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)行深入操作

          登錄&注冊(cè)

          SQL注入

          萬(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è)賬戶登錄

          未授權(quán)訪問

          后臺(tái)未授權(quán)訪問

          列舉幾種找未授權(quán)訪問的方法

          • 使用目錄掃描工具,如 dirsearch 等掃描路徑,有的可能存在目錄遍歷
          • 查看 js 代碼中登錄成功后的跳轉(zhuǎn) url
          • 使用 jsfind 找可疑url
          • 利用web程序已知漏洞如:druid未授權(quán)的urls、springboot mapping等未授權(quán)漏洞界面找可疑的 url,訪問查看是否存在未授權(quán)
          • 有些可能在未授權(quán)進(jìn)入后臺(tái)一瞬間,重定到登錄頁(yè)面,這時(shí)可以利用burp抓包把跳轉(zhuǎn)包drop掉

          組件未授權(quán)

          使用的組件可能會(huì)出現(xiàn)漏洞,常用的未授權(quán)漏洞,對(duì)于端口的收集也至關(guān)重要,可以提高漏洞利用面

          • Redis 未授權(quán)訪問漏洞
          • MongoDB 未授權(quán)訪問漏洞
          • Jenkins 未授權(quán)訪問漏洞
          • Memcached 未授權(quán)訪問漏洞
          • JBOSS 未授權(quán)訪問漏洞
          • VNC 未授權(quán)訪問漏洞
          • Docker 未授權(quán)訪問漏洞
          • ZooKeeper 未授權(quán)訪問漏洞
          • Rsync 未授權(quán)訪問漏洞
          • Atlassian Crowd 未授權(quán)訪問漏洞
          • CouchDB 未授權(quán)訪問漏洞
          • Elasticsearch 未授權(quán)訪問漏洞
          • Hadoop 未授權(quán)訪問漏洞
          • Jupyter Notebook 未授權(quán)訪問漏洞

          https://www.freebuf.com/vuls/265318.html

          https://xz.aliyun.com/t/6103

          其他功能點(diǎn)(注冊(cè))(找回密碼)

          超長(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)證碼不刷新

          驗(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,不常見

          越權(quán)

          過(guò)于簡(jiǎn)單的cookie

          如果用戶登錄后的cookie并不是隨機(jī)的,而是如

          cookie:Guest
          

          這種過(guò)分簡(jiǎn)單的身份驗(yàn)證方法,可以導(dǎo)致越權(quán),如果又存在用戶注冊(cè),就可以注冊(cè)一個(gè)普通用戶然后越權(quán)為admin

          HTML源碼信息泄露

          固定加密的賬密

          比如:中科網(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,或者敏感信息

          ELSE

          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è)掃描器掃描已知漏洞

          • web框架歷史漏洞
          • cms歷史漏洞
          • oa歷史漏洞
          • 使用fofa、瀏覽器插件wappalyzer等收集資產(chǎn),然后拿漏洞庫(kù)的poc去嘗試

          弱口令

          默認(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
          安全客 - 有思想的安全新媒體

          、JavaWeb概念

          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)的。

          2、web資源分類:

          所謂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等等

          3、常見的web服務(wù)器

          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。

          4、常用的布署工程到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、整合Tomcat和Eclipse開發(fā)工具中(***常用必須掌握)

          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 HTTP協(xié)議介紹

          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、servlet(重點(diǎn)*****)

          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

          1. package com.atguigu.web;
          2. import java.io.IOException;
          3. import javax.servlet.Servlet;
          4. import javax.servlet.ServletConfig;
          5. import javax.servlet.ServletException;
          6. import javax.servlet.ServletRequest;
          7. import javax.servlet.ServletResponse;
          8. public class Hello implements Servlet{
          9. @Override
          10. public void destroy() {
          11. // TODO Auto-generated method stub
          12. System.out.println("Servlet銷毀了!");
          13. }
          14. @Override
          15. public ServletConfig getServletConfig() {
          16. // TODO Auto-generated method stub
          17. return ;
          18. }
          19. @Override
          20. public String getServletInfo() {
          21. // TODO Auto-generated method stub
          22. return ;
          23. }
          24. @Override
          25. public void init(ServletConfig arg0) throws ServletException {
          26. // TODO Auto-generated method stub
          27. System.out.println("ServerConfig 初始化了");
          28. }
          29. @Override
          30. public void service(ServletRequest arg0, ServletResponse arg1)
          31. throws ServletException, IOException {
          32. // TODO Auto-generated method stub
          33. System.out.println("hello servlet service方法被調(diào)用");
          34. }
          35. }

          當(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

          1. <?xml version="1.0" encoding="UTF-8"?>
          2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
          3. <display-name>day06</display-name>
          4. <servlet>
          5. <servlet-name>Hello</servlet-name>
          6. <servlet-class>com.atguigu.web.Hello</servlet-class>
          7. </servlet>
          8. <servlet-mapping>
          9. <servlet-name>Hello</servlet-name>
          10. <url-pattern>/hello</url-pattern>
          11. </servlet-mapping>
          12. <welcome-file-list>
          13. <welcome-file>index.html</welcome-file>
          14. <welcome-file>index.htm</welcome-file>
          15. <welcome-file>index.jsp</welcome-file>
          16. <welcome-file>default.html</welcome-file>
          17. <welcome-file>default.htm</welcome-file>
          18. <welcome-file>default.jsp</welcome-file>
          19. </welcome-file-list>
          20. </web-app>

          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ù)安全


          主站蜘蛛池模板: 一本大道在线无码一区| 亚洲一区精品视频在线| 色综合视频一区二区三区44| 国产高清视频一区三区| 无码一区二区三区| 日本一区二区三区免费高清| 国产精品第一区揄拍无码| 精品国产一区二区三区久久蜜臀| 中文字幕在线一区| 一区二区视频在线播放| 伊人久久精品一区二区三区| 国产高清一区二区三区视频| 视频一区精品自拍| 无码国产精品一区二区免费虚拟VR| 精品国产一区二区三区久| 久久久久久一区国产精品| 亚洲第一区视频在线观看 | 岛国精品一区免费视频在线观看| 国产自产V一区二区三区C| 国产香蕉一区二区在线网站| 波多野结衣在线观看一区| 少妇激情一区二区三区视频| 国产精品亚洲专区一区| 亚洲综合无码一区二区| 国产激情一区二区三区在线观看| 亚洲夜夜欢A∨一区二区三区| 少妇一晚三次一区二区三区| 丝袜无码一区二区三区| 国产情侣一区二区| 亚洲一区二区在线视频| 一区二区三区高清在线| 亚洲A∨精品一区二区三区下载| 波多野结衣的AV一区二区三区| 中文字幕av一区| 精品国产免费一区二区三区香蕉| 国产裸体舞一区二区三区| 国产精品视频一区二区三区经| 中文字幕在线视频一区| 免费无码一区二区| 成人丝袜激情一区二区| 国产91大片精品一区在线观看|