标题:Pragyan CMS v 3.0 => [Remote File Disclosure]
通过注入点判断服务器的硬盘文件是否有访问权
http://hellxman.blog.51cto.com/koohik.asp?id=48187,这个是注入点了的。现在我们用 SQL查询语句试试,C盘是否有访问权限。
语句是:
and (select count(*) from c:\autoexec.bat.c)>0
解释一下原理,其它AC数据库也是可以跨库查询。只要把 from 后的表名改成MDB数据库的硬盘绝对地址,后台加上个“. ”,接上要查的表名。例如,我要查D盘yqf.mdb中的ADMIN表:
and (select count(*) from d:\yqf.mdb.admin)>0
这样的语句,只要知道服务器硬盘其它数据库地址,ACCESS也能跨库查询。只是不知道地址,所以这个无关紧要。
and (select count(*) from c:\autoexec.bat.c)>0
为什么说用这句可以判断是否有硬盘访问权限呢?大家都知道c:\autoexec.bat 是系统里自有的文件 无论哪个系统都有,而大家默认安装WINDOWS也是装在C盘,如果这样找不到文件的话,你可以试试其它盘。
现在我们提交:
and (select count(*) from c:\autoexec.bat.c)>0
看到吧“不可识别的数据库格式’c:\AUTOEXEC.BAT’”报错信息
这样表示C盘有访问的权限。因为读到了AUTOEXEC.BAT把autoexec.bat当mdb数据库来处理了
所以就出现这样的错误提示。
现在我们用刚传的马去看看,呵,C盘有访问的权限吧。反之,如果没有访问权限,则会提示“c:\autoexec.bat 已被另一种方式打开,或者无权访问。”类似这样的提示,就是无权限访问了。
不过 autoexec.bat 可以测试,比如 c:\winnt\system32\cmd.exe,这些系统原有的文件都可以用来试。