本文是黑基原创,本人邮箱lucky_feng@hotmail.com。如果您觉得写得不都是废话,需要转载,请注明作者是fengskier,版权属于黑客基地。谢谢。
前几天写了一篇《服务器到处有,看你想不想要(从收垃圾邮件到入侵)》,然后fhod老大指点说这些都是老思路了(这次又是老思路)。突然之间觉得自己有点窝囊。一年以前我用的是这些技术,一年后我还是用这些技术,不同的是,这样的肉鸡越来越少了。一年多过去了,我没有什么长进,对不起我自己啊。希望自己从现在开始可以在黑基学到很多东西。不要自怨自艾了,入正题吧。
我发现这个漏洞的时候是今年年初,这个漏洞帮我拿下了这个区的几乎所有政府机关服务器和这个区几乎所有的中小学的服务器,原因是这个区的事业单位的网站都是同一家公司做的,而代码是同一套。后来一个偶然的机会,这个漏洞又帮我拿下了另一个市的信息办的服务器,搞不懂信息办的安全性怎么这么差的呢?其实这个漏洞也是很老的上传漏洞了,高手不要见笑了。
1:发现过程
那个公司的网站其实做的不错,但是他用了世纪易网新闻管理系统的网页模版(其实这套代码非常好)。世纪易网新闻管理系统这套代码是可以在前台生成htm的,但是不知道为什么这家公司自己写了asp来调用数据库在首页显示新闻。由于他把网站改的完全像他们自己的代码一样了,所以一开始我并不知道这是世纪易网新闻管理系统,所以还是老一套思路,从注入开始。And 1=1和and 1=2的页面不同(有些图片我不抓了,因为nbsi的现在我用不了,我是按以前的入侵思路来写的,不好意思),注入吧,结果出来了竟然是sql的,虽然我有很好的电脑,但是也不能浪费来破md5啊。然后我又查询了几个表,发现了里面一个字段写了代码名称“世纪易网新闻“,(难道这套代码还有sql版本的?),然后从网络上下载了世纪易网新闻系统2.0(升级版的也有这个漏洞),只有acess的。看到admin目录下有upfile.asp,看看源码吧。
<%
dim upload,file,formName,formPath,iCount,filename,fileExt
set upload=new upload_5xSoft ''建立上传对象
formPath=upload.form("filepath")
''在目录后加(/)
if right(formPath,1)<>"/" then formPath=formPath&"/"
response.write "<BODY bgColor=menu topmargin=15 leftmargin=15 ><br>"
iCount=0
for each formName in upload.file ''列出所有上传了的文件
set file=upload.file(formName) ''生成一个文件对象
if file.filesize<100 then
response.write "<FIELDSET align=center><LEGEND align=center>文件上传发生错误 </LEGEND><br>请先选择你要上传的文件 [ <a href=# onclick=history.go(-1)>重新上传</a> ]</fieldset>"
response.end
end if
if file.filesize>200000 then
response.write "<FIELDSET align=center><LEGEND align=center>文件上传发生错误 </LEGEND><br>文件大小超过了限制 200K [ <a href=# onclick=history.go(-1)>重新上传</a> ]</fieldset>"
response.end
end if
fileExt=lcase(right(file.filename,4))
if fileEXT<>".gif" and fileEXT<>".jpg" and fileEXT<>".png" and fileEXT<>".bmp" then
response.write "<FIELDSET align=center><LEGEND align=center>文件上传发生错误</LEGEND><br>文件格式不正确 [ <a href=# onclick=history.go(-1)>重新上传</a> ]</fieldset>"
response.end
end if
randomize
ranNum=int(90000*rnd)+10000
filename=formpath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&fileExt
filename=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&file.FileName
if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
file.SaveAs Server.mappath(FileName) ''保存文件
iCount=iCount+1
end if
set file=nothing
next
set upload=nothing ''删除此对象
Htmend iCount&" 个文件上传结束!"
sub HtmEnd(Msg)
set upload=nothing
response.write "<center><FIELDSET align=center><LEGEND align=center><font color=red>文件上传成功 </font></LEGEND><br>[ <a href=# onclick=""Addpic('"&filename&"')"">点击这里添加到编辑器中</a> ]</fieldset>"
response.end
end sub
%>
其实我也看不大懂,只是我看过安全焦点的动网上传漏洞分析的文章,http://www.xfocus.net/articles/200405/700.html,动网的上传组件和这个upfile.asp几乎一模一样,所以不用说了,用桂林老兵的上传工具吧(那时候上传工具好象很少的),路径自己看清楚了,然后成功拿到webshell。
2:漏洞修补
方法一:upfile.asp改成别人猜不到的名字。(只是临时解决哦。)
方法二:和动网一样修啊。(参考动网7.0 sp2以上的。)
方法三:session验证。(这个安全点,但是我不知道怎么修,只是大概知道原理,因为我还菜阿。)
3:这个漏洞如果在google或baidu搜索的话,基本上没有,因为这套代码不是很流行,而且用得很多都已经改了网站信息了。大家以后入侵的时候可以看看是不是和世纪易网新闻管理系统默认的界面或图标相似(拿到第二个信息办的服务器就是觉得眼熟),能够利用当然最好,不能的话,就当这篇文章是一条新闻了。
好了,写完了,希望大家指点,千万不要告诉我以前有人发布过这个漏洞了!
Ps:现在没有中文系统使用,所以很多软件不能使用,然后当然不能抓图显示效果了。不知道谁可以给个3389的肉鸡给我用一下(我会还给你的,不做破坏),因为我的肉鸡本子没有带。或者帮我测试一下抓几张图片。昨天给无*发了短消息,然后我等了一下就回去了,现在我在线,他又不在,郁闷,不过还是谢谢他了。还有个人我也给他发短信了,不过他还没有回。喂,赶快回短信哦,呼呼。