#我的筆記#web滲透

The first day,fighting.

Web滲透測試:

滲透測試是對系統(tǒng)安全性的測試,通過模擬惡意黑客的攻擊方法,來評估系統(tǒng)安全的一種評估方法。


1、SQL注入攻擊

首先找到帶有參數(shù)傳遞的URL頁面,如搜索頁面、登錄頁面、提交評論頁面等。

對于未明顯標識在URL中傳遞參數(shù)的,可以通過查看HTML源代碼中的FORM標簽來辨別是否還有參數(shù)傳遞,在<FORM>和</FORM>的標簽中間的每一個參數(shù)傳遞都有可能被利用。

當找不到有輸入行為的頁面時候,可以嘗試找一些帶有某些參數(shù)的特殊的URL,如HTTP://DOMAIN/INDEX.ASP?ID=10

在URL參數(shù)或表單中加入某些特殊的SQL語句或SQL片段,如在登錄頁面的URL中輸入HTTP://DOMAIN/INDEX.ASP?USERNAME='HI' OR 1=1

根據(jù)實際情況,SQL注入請求可以使用以下語句:

' or 1=1-- ? ?

" or 1=1--

or 1=1--

' or 'a'='a

" or "a"="a

') or ('a'='a

OR是一個邏輯運算符,在判斷多個條件的時候,只要一個成立,則等式就成立,后面的AND就不再執(zhí)行判斷了,也就是說繞過了密碼驗證,只用用戶名就可以登錄。

--是忽略或注釋,通過連接符注釋掉后面的密碼驗證(對access數(shù)據(jù)庫無效)。

預(yù)防SQL注入:轉(zhuǎn)義敏感字符及字符串;屏蔽出錯信息;在服務(wù)端正式處理之前對提交數(shù)據(jù)的合法性進行檢查(合法性檢查主要包括三項:數(shù)據(jù)類型,數(shù)據(jù)長度,敏感字符的校驗)。最根本的解決手段是在確認客戶端的輸入合法之前,服務(wù)端拒絕進行關(guān)鍵性的處理操作。

SQL注入步驟:

首先,判斷環(huán)境,尋找注入點,判斷數(shù)據(jù)庫類型。

其次,根據(jù)注入?yún)?shù)類型,在南海中重構(gòu)SQL語句的原貌,按參數(shù)類型主要分為三種:

(A)ID=49

這類注入的參數(shù)是數(shù)字型,SQL語句原貌大致如下:

select * from 表名 where 字段=49

注入的參數(shù)為ID=49 and [查詢條件],即生成語句:

select * from 表名 where 字段=49 And [查詢條件]

(B)class=連續(xù)劇

這類注入的參數(shù)是字符型,SQL語句原貌大致如下:

select * from 表名 where 字段=‘連續(xù)劇’

注入的參數(shù)為class=連續(xù)劇’ and [查詢條件] and ' ' =' ?,即生成語句:

select * from 表名 where 字段=‘連續(xù)劇’ and [查詢條件] and ' '=' '?

搜索時沒過濾參數(shù)的,如keyword=關(guān)鍵字,SQL語句原貌大致如下:

Select * from 表名 where 字段like ’%關(guān)鍵字%’

注入的參數(shù)為keyword=’ and [查詢條件] and ‘%25’=’, 即是生成語句:

Select * from 表名 where字段like ’%’ and [查詢條件] and ‘%’=’%’

接著,將查詢條件替換成SQL語句,猜解表名,例如:

ID=49 And (Select Count(*) from Admin)>=0

如果頁面就與ID=49的相同,說明附加條件成立,即表Admin存在,反之,即不存在(請牢記這種方法)。如此循環(huán),直至猜到表名為止。

表名猜出來后,將Count(*)替換成Count(字段名),用同樣的原理猜解字段名。

最后,在表名和列名猜解成功后,再使用SQL語句,得出字段的值。

SQL注入常用函數(shù):

Access: asc(字符),SQL Server: unicode(字符)

作用:返回某字符的ASCII碼

Access: chr(數(shù)字),SQL Server: nchar(數(shù)字)

作用:根據(jù)ASCII碼返回字符

Access: mid(字符串,N,L),

SQL Server: substring(字符串,N,L)

作用:返回字符串從N個字符起長度為L的子字符串,即N到N+L之間的字符串

Access: ?abc(數(shù)字),SQL Server: abc(數(shù)字)

作用:返回數(shù)字的絕對值(在猜解漢字的時候會用到)

Access: A between B And C ,SQL Server: A between B And C?

作用:判斷A是否界于B和C之間

中文處理方法:

access:中文的ASCII碼可能會出現(xiàn)負數(shù),取出該負數(shù)后用abs()取絕對值,漢字字符不變。

SQL Server:中文的ASCII為正數(shù),但由于是UNICODE的雙位編碼,不能用函數(shù)ascii()取得ASCII碼。必須用函數(shù)Unicode()返回Unicode值,再用nchar函數(shù)取得對應(yīng)的中文字符。

注意,引用數(shù)字時不需要按添加開始和結(jié)尾的單引號定界符。數(shù)據(jù)庫處理數(shù)值類型的值時,數(shù)值不帶引號。





2、Cross-site scripting(XSS):跨站點腳本攻擊

首先找到帶有參數(shù)傳遞的URL,如登錄頁面,搜索頁面,提交評論,發(fā)表留言頁面等。

其次,在頁面參數(shù)中輸入如下語句:<script>alert(document.cookie)</script>

當用戶瀏覽時便會彈出一個警告框,內(nèi)容顯示的是瀏覽者當前的cookie串,這就說明該網(wǎng)站存在XSS漏洞。

預(yù)防XSS漏洞:對JavaScript,VB script,HTML,ActiveX,Flash等語句或腳本進行轉(zhuǎn)義;在服務(wù)端正式處理之前對提交數(shù)據(jù)的合法性進行檢查(合法性檢查主要包括三項:數(shù)據(jù)類型,數(shù)據(jù)長度,敏感字符的校驗)。

3、CSRF:跨站點偽造請求

與XSS不同,且攻擊方式幾乎相左,XSS是利用站點內(nèi)的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網(wǎng)站。

XSS和CSRF目的在于竊取用戶的信息,如session和cookies.

4、Email Header Injection:郵件標頭注入

如果表單用于發(fā)送email,表單中可能包括subject輸入項(郵件標題),我們要驗證subje中應(yīng)能escape掉\n標識。

因為“\n”是換行,如果在subje中輸入“hello\ncc:spamvictim@example.com”,可能會形成:

subject:hello

cc:spamvictim@example.com

如果允許用戶使用這樣的subject,那他可能會利用這個缺陷通過我們的平臺給其他用戶發(fā)送垃圾郵件。


5、Directory Traversal:目錄遍歷

程序中沒有過濾用戶輸入的“../”和“./”之類的目錄跳轉(zhuǎn)符,導(dǎo)致惡意用戶可以通過提交目錄跳轉(zhuǎn)來遍歷服務(wù)器上的任意文件。

測試方法:在URL中輸入一定數(shù)量的“../”和“./”,驗證系統(tǒng)是否escape掉了這些目錄跳轉(zhuǎn)符。

預(yù)防目錄遍歷:限制Web應(yīng)用在服務(wù)器上的運行,進行嚴格的輸入驗證,控制用戶輸入非法路徑。

6、exposed err messages:錯誤信息

首先找到一些錯誤頁面,比如404或500頁面。

驗證在調(diào)試未開通過的情況下,是否給出了有好的錯誤提示信息,比如“你訪問的頁面不存在”等,而并非暴露一些程序代碼。

預(yù)防錯誤信息:測試人員在進行需求檢查時,應(yīng)該對出錯信息進行詳細檢查,比如是否給出了出錯信息,是否給出了正確的出錯信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 姓名:于川皓 學(xué)號:16140210089 轉(zhuǎn)載自:https://baike.baidu.com/item/sq...
    道無涯_cc76閱讀 2,045評論 0 2
  • 漏洞挖掘與利用 測試環(huán)境的搭建 引言 為什么要搭建本地測試環(huán)境?我想下面的東西能夠回答你的疑惑。 第二百八十五條 ...
    作業(yè)沒寫完閱讀 3,553評論 0 4
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 當給sq...
    xuningbo閱讀 10,562評論 2 22
  • sqlmap用戶手冊 說明:本文為轉(zhuǎn)載,對原文中一些明顯的拼寫錯誤進行修正,并標注對自己有用的信息。 ======...
    wind_飄閱讀 2,207評論 0 5
  • 注入攻擊的分類 1.沒有正確過濾轉(zhuǎn)義字符 在用戶的輸入沒有為轉(zhuǎn)義字符過濾時,就會發(fā)生這種形式的注入式攻擊,它會被傳...
    查無此人asdasd閱讀 1,837評論 0 5

友情鏈接更多精彩內(nèi)容