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注入的方式多种多样,不仅限于上面的两手。

转自http://www.cnblogs.com/cyq1162/archive/2010/11/10/1873127.html#1957063