QBlog

This blog will record the growth associated with the Autumn Garden distance and the history of the development progress and other relevant circumstances
Bulletin
Welcome to Autumn Garden official blog, please: download and use CYQBlog system, and make your comments and Recommendations.
Article Archive
Article
基础却容易被忽略的那点事--web入侵方式及注意事项总结
2011/1/2 3:28:55

2010年11月8日,在勿勿发布完 QBlog V1.0 beta版本首次发布 之后

不少网友纷纷给力,对演示网站 http://www.cyqdata.com/ 进行了一次大测试,除了发表评论脚本未编码之外,还有一重大发现:

有个“犀利哥”入侵我的演示用户账号,修改了我的文章,还清空了评论。

于是,我很给力的发挥想象对方可能的入侵手段,并给予总结了一下

1:伪造Cookie实现欺骗登陆

我们先看一下如何才能实现这种方式:

1:下载我提供的版本发网站应用程序

2:在演示网站注册用户,并研究登陆后生成的Cookie

2:反编绎,并能很好的定位发现,在哪里对Cookie进行加密码

3:在本地新建网站并用IIS绑定主机头,用host域名欺骗方式输出Cookie,输出指定用户

4:删除网站和host欺骗

如果很好的完成了以上步骤,我猜测是一种入侵方式。

但是我明显把对方的入侵手段想的太高明,因为如果要实现这种方式,不是刷刷刷就可以做到的,需要花很长的时间和对程序的了解。

难点是?

一是要对系统有很好的把握,虽然我提供的应用程序没对DLL进行加密或混淆,不过要反编绎研究起来,不是高手估计不是一会半时能理解的清的。

二是第一时间研究加密的Cookie?一般人第一时间都不会有这个念头,至于我会想到这种方式,原因在于我发布的应用程序的加密方式和我演示的是一致的。

三是新建网站做host欺骗,输出等操作,很烦锁,除非思路一开始便很清晰,不然动起手来没这么快。

于是为了验证是不是这种方式实现的入侵,我第一时间是修改了演示代码的加密方式,并把所有的示例用户密码重置为******

可是不一会,“犀利哥”的再次留言,很明显证实了不是采用这种方式。

有想象也好,至少能引发改进,接下来发布的版本,将对密码加密方式采用密钥形式,保证每个应用程序的加密不一致。

2:Post 入侵

我们先看一下如何才能实现这种方式:

前提:代码中缺少用户是否在线判断 或者 缺少当前用户的提交文章的用户是否同一用户

1:研究后台Post的html,简单的或者直接copy出来

2:提交Post,指定别人的文章ID,和自己的内容,以此将自己的内容写入到别的用户去。

第二猜想原因:

之所以这么想:是以为自己对登陆用户ID取自Url路径中的用户名,

如此用户在Post中的action路径指定到另一用户的路径时,造成用户取值错误,从而可产生入侵点。

后来审了下代码,发现取值还是OK的,再看代码中对删除添加等操作都有是判断的,

因此文章内容被修改,有可能是这种方式,不过评论被删,便明显确定不是这种方式入侵。

不过还是修改了代码,并更新到演示项目中,接着发现“犀利哥”的再二次留言。

有想象也好,至少能引发改进,把代码重新调整了下,保证后台的每个调用都对用户进行验证。

3:SQL注入

虽然这是最基本的方式,却被我放在最后想象,大概代码写的太多了。

实现方式,自然是构造组合sql了

我们来看一下默认没有对输入进行合法过滤,只靠底层过滤了“--”和“;”号,看下如何构造入侵语句:

比如登录时:select * from Users where username='{0}' and password='{1}'。

正常的第一手法都会构造username='cyq1162' or 1=1--,不过默认--被低层过滤了。

用户名输入为:cyq1162' or 1=1--

于是尝试第二手法构造:username='cyq1162' update Users set username='x' where '1'='1

用户名输入为:cyq1162' update Users set username='x' where '1'='1

于是成功入侵,当然构造SQL注入的方式多种多样,不仅限于上面的两手。

除了登录,在URL参数参数里,对一些ID也漏了点网,好心的网友也提醒了。

另:在我的界面中,限制了用户名15个字符的输入,如何输入更多字符,用firefox编辑下html即可提交

如果没猜错,“犀利哥”应该就是此种方式入侵的,在我封掉注入之后,再不见其留言了~~

最后,欢迎大伙继续使劲的测试:http://www.cyqdata.com/

新版本估计会在近一两天随使用帮助一起发布。

Autumn Garden is QBlog the official site, created by the passing autumn, based on the framework data layers developed cyqdata support multi-user, multi-language, multi-database (access, mssql, oracle), directory level url and other powerful blog system
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"
 Article Relate   Browse(4661)   Comment(1)   Tag 秋色园,qblog,cyqdata,基础,忽略,web,入侵方式,注意事项,总结
birchlee : 2011/3/21 22:30:07
呵呵,支持
:Register
  
Copyright © 2010-2020 power by CYQ.Blog - Autumn v2.0 All Rights Reserved