在入侵过程中,我们会因为目标站的安全做的无懈可击而使用同服旁站的方法来入侵,那么得到目标站的物理路径的方法不外乎,mssql列目录,爆目录等

关于今天的话题是利用access来猜测目录…

原理:

1on error resume next

2connstr=”Provider=microsoft.jet.oledb.4.0;data source=”&path

3set conn=server.CreateObject(“adodb.connection”)

4conn.open connstr

path为数据库文件的物理路径,这句话很容易出错,出错后会得到由于on error resume next的存在,不显示错误信息,不过错误信息已经被err这个对象抓到了

vbs帮助给的解释:Error 对象包含与单个操作(涉及提供者)有关的数据访问错误的详细信息。

说明:任何涉及 ADO 对象的操作都会生成一个或多个提供者错误。每个错误出现时,一个或多个 Error 对象将被放到 Connection 对象的 Errors 集合中。当另一个 ADO 操作产生错误时,Errors 集合将被清空,并在其中放入新的 Error 对象集。

注意 每个 Error 对象都代表特定的提供者错误而不是 ADO 错误,ADO 错误被记载到运行时的例外处理机制中。例如,在 Microsoft Visual Basic 中,产生特定 ADO 的错误将触发 On Error 事件并出现在 Err 对象中。关于 ADO 错误的完整列表,请参阅 ADO 错误代码主题。

通过 Error 对象的属性可获得每个错误的详细信息,其中包括以下内容:

Description 属性,包含错误的文本。Number 属性,包含错误常量的长整型整数值。Source 属性,标识产生错误的对象。在向数据源发出请求之后,如果 Errors 集合中有多个 Error 对象,则将会用到该属性。SQLState 和 NativeError 属性,提供来自 SQL 数据源的信息。

而测试发现可利用的错误有一下几种,讲解方便,设path=d:web est1.asp

1.存在d:web est1.asp 这个文件,但是这个文件不是数据库连接文件 报错:不可识别的数据库格式 ‘d:web est1.asp’

2.存在路径d:web est 不存在1.asp这个文件 报错:找不到文件 ‘d:web est1.asp’

3.不存在路径d:web est 不管1.asp是否存在 报错:’d:web est1.asp’不是一个有效的路径

看到这里就可以利用这个报错的信息来进行猜解目标站的目录,比如目标站是a,现有的同服webshell的站点是b站,根据虚拟机命名规则一般式d:host用户名\wwwroot (根据实际情况利用),只需把用户名换成我们的字典,就ok了

具体步骤(个人归纳,欢迎补充)

到whois查询站长信息,域名信息,做成字典然后进行暴力猜解

有事我们拿到b站,看到路径是这样的d:hostusr10004web 类似这样编号排列的,我们发现a站由一个命名比较特殊的文件如:uploadFuckFile.asp

我们就可以做成做成d:hostusr10000webuploadFuckFile.asp~~~~d:hostusr99999webuploadFuckFile.asp的字典进行扫描

根据:

1.存在d:web est1.asp 这个文件,但是这个文件不是数据库连接文件 报错:不可识别的数据库格式 ‘d:web est1.asp’

2.存在路径d:web est 不存在1.asp这个文件 报错:找不到文件 ‘d:web est1.asp’

这两点来判断。。。。。