您的位置 » 首页 » 代码审计 » 代码审计:利用思维导图快速读懂框架和理清思路

代码审计:利用思维导图快速读懂框架和理清思路

发表于8月前 | 作者: seay | 分类: 代码审计 | 孵化于:2017年03月21日 | 文章热度:5,294 次 全屏阅读

显示不全请点击全屏阅读

偶尔会收到邮件、微博还有博客来咨询,说在代码审计的时候总感觉程序比较乱,读不懂框架,理不清思路,发现了一段漏洞代码,但是不知道怎么去找到漏洞利用点(请求哪个URL、提交什么数据),这是因为你对这套程序的大框架还不够熟悉,对程序执行流程理解不透彻。

既然这么多人反馈,那我就简单说一下我的方式:利用思维导图

思维导图是个很好的东西,我在思考各种事情、写复杂程序等等各种场景都会用上这个东西,当然代码审计的时候也会用到,因为它能帮我很快熟悉框架,并且记录可能出现安全问题的地方。如下图所示

(图片可点击放大)

粘贴图片

这是在审计禅道时弄的一个简单思维导图,禅道这套系统一共审计出来了几十个漏洞利用点,包括免登录注入和getshell。

可以看到我的这个思维导图,里面包括以下因素:

 

1、程序执行过程(URL怎么解析、首先调用哪些文件等等)

2、重要配置文件

3、模块解释

4、出现问题的点(用红旗标记)

5、代码备注

 

这样一来我们对程序的框架就会一览无余,思路自然清晰。

 

还有一个问题是关于:怎么挖掘免登陆的漏洞?

程序自然会检测权限,就像我这个思维导图里面写的禅道一样,common模块的isopenmethod()函数检查权限,哪些模块可以不用登陆或者低权限可访问

public function isOpenMethod($module, $method)
{
if($module == ‘user’ and strpos(‘login|logout|deny|reset’, $method) !== false) return true;
if($module == ‘api’ and $method == ‘getsessionid’) return true;
if($module == ‘misc’ and $method == ‘ping’) return true;
if($module == ‘misc’ and $method == ‘checktable’) return true;
if($module == ‘misc’ and $method == ‘qrcode’) return true;
if($module == ‘misc’ and $method == ‘about’) return true;
if($module == ‘misc’ and $method == ‘checkupdate’) return true;
if($module == ‘misc’ and $method == ‘changelog’) return true;
if($module == ‘sso’ and $method == ‘login’) return true;
if($module == ‘sso’ and $method == ‘logout’) return true;
if($module == ‘sso’ and $method == ‘bind’) return true;
if($module == ‘sso’ and $method == ‘gettodolist’) return true;
if($module == ‘block’ and $method == ‘main’) return true;

if($this->loadModel(‘user’)->isLogon() or ($this->app->company->guest and $this->app->user->account == ‘guest’))
{
if(stripos($method, ‘ajax’) !== false) return true;
if(stripos($method, ‘downnotify’) !== false) return true;
if($module == ‘tutorial’) return true;
if($module == ‘block’) return true;
if($module == ‘product’ and $method == ‘showerrornone’) return true;
}
return false;
}

从代码中可以看到,主要是’user’ 、’api’ 、’misc’ 、’sso’ 以及’block’ 模块的部分函数无需登陆就可以访问,$module 代表模块,$method代表函数,那我们就可以把这些函数都看一遍,看是否存在可利用的漏洞。

 

 

Tags:

代码审计,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡


来自 Seay互联网安全博客
本文地址:http://www.cnseay.com/4526/
文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

马上分享给你的朋友吧~

已经有2个筒子的人留下了脚印...

  • harries 说:
    1楼
    2017 年 3 月 21 日 下午 11:53 回复

    太强了,我正在用,怎么办?

    • 【管理员】seay 说:
      2017 年 3 月 22 日 上午 10:41 回复

      更新下呗,前不久都反馈给禅道了

发表评论

你的大名(必填)

你的邮箱(必填)

评论内容(必填)