主页 > 网络知识 > 代码审计思路讨论(4)

代码审计思路讨论(4)

 

代码审计思路讨论

 

四、CSRF漏洞审计 4.1、CSRF漏洞总结

简单说CSRF就是攻击者通过手段来利用被攻击者来执行被攻击者具备权限的操作行为。在针对这些CSRF漏洞通过token就可以很好的防护。那么对于我们代码审计来说。是不是重点关注存不存在token就可以很好的判定是否存在CSRF漏洞了呢?完美!!!

这里有必要说明一下token的认证方式:

1、前端传账号密码给后端。

2、后端验证成功之后将账号密码作处理加密生成token,并返回给前端。

3、前端收到token之后会存储。

4、以后每次前端请求资源,需要验证token,验证成功则返回请求资源。

4.2、CSRF漏洞举例

有点难受啊,代码水平的不足让我没有办法例举出典型CSRF。有点小失望。话说回来,针对该漏洞的审计我更喜欢黑盒。绝大多数会登陆几个页面,看看有没有token,或者,删除referer信息。看看访问是否存在问题。如果不存在那么大多数情况可以确定存在CSRF漏洞的。至于白盒。我没有太多的心得。基本就是看看有没有设定token的代码。

哎,我在考虑怎么来更好的说明这个呢。看了一圈Blucecm好像没有这个token,这样没有办法更好的说明。下面是我找打的一串设定token的代码。看看这个。做到心中丘壑,这样更好的为方便以后审计。

下面代码是定义了一个token,使用时间戳以及随机数生成的token。

 

代码审计思路讨论

 

下面我们可以看到,当我首次登陆的时候点击按钮是返回flase,这个时候并没有获取token,再次点击按钮会发现返回success.

注释:这里的警告是因为我使用了php5.2版本,调整为7.3就没有问题了。

 

代码审计思路讨论

 

 

代码审计思路讨论

 

五、文件操作漏洞 5.1、文件操作漏洞总结

这里我将文件包含,上传文件,文件读取,文件删除,修改什么的等漏洞都统一称呼文件操作漏洞吧。下面我们来聊聊这些操作文件的漏洞。

文件包含漏洞:在正常的编写网页当中一些代码,类,对象定义之后会需要重复的使用。这个时候就需要用到一些包含的函数,比如include,include_once,require,require_once。可以在代码运行的时候调用其它文件当中已经定义好的文件,类。本来是没有问题的。但是,如果文件包含位置的内容是可控的呢?那么味道就改变了。一旦可控就可以去控制包含一些恶意代码的文件。也就形成了漏洞。

注意:文件包含往往需要截断。因为你的变量可控的位置后面还有拼接的字符串。而且恰好这个字符串是我们不需要的。截断的手法往往和PHP版本有关。比如%00截断

文件读取(下载):这个怎么说呢,就是还是可控的问题,读取文件的变量可控,就可能造成读取任意具备权限的文件或者下载。寻找这个漏洞,可以在网站先看看部分功能读取什么样的文件,抓包查看对应的变量。或则直接搜索文件读取的函数。

文件上传:这个玩意,主要出现点再能够上传文件的位置,比方说头像上传,文件上传等位置。这个审计就比较直接了。找到具体上传位置,查看对应位置代码,看看有么有过滤就可以了。有的话就看看能不能绕过。当然了一下中间件本身自带的漏洞也是可以利用的。

5.2、文件包含漏洞举例
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!