目录
测试环境:
phpStudy,phpStorm,subline
一 . 审计方法
-
定位敏感关键字,回溯参数传递过程
可以使用Seay源代码审计工具和RIPS工具,将要审计的路径输入后,可实现自动化扫描,结果返回一些可能存在漏洞。 -
定位敏感功能点,通读功能点代码
黑盒测试+白盒测试 -
全文代码通读审计
入口点:index.php
通过xdebug跟踪调试
二 . 代码审计——BlueCMS1.6
打开phpStudy5.2,新建数据库bluecms,安装bluecms
这样就装好了,打开数据库看一下
打开bluecms,注册账户
打开Seay工具,新建项目,找到www.c.com路径,点击确定
在功能栏点”自动审计“->“开始”,审计出很多漏洞。
(1)SQL注入漏洞
ad_js.php里可以右键看到源代码,发现id没有进行任何过滤
在bluecms上传广告,在存在SQL注入漏洞链接下验证sql注入漏洞
sqlmap工具也可验证该漏洞,拿到数据库、表、列,拿到管理员账号密码
(2)common.fun.php的SQL注入漏洞
打开phpstorm,定位到www.c.com,找到commom.fun.php,审计源代码
ctrl+shift+f打开窗口,可以搜索变量的调用位置,查找getip调用,发现getip没有经过任何过滤
打开bluecms后台,添加一个新闻,内容随便填
回到前台,普通用户登录,设置代理,打开Bursuite,评论上面这条新闻,开始抓包,将欺骗ip:8.8.8.8放入数据包头部
点击Go,发现ip已经从127.0.0.1变成我们设置的欺骗ip
(3)文件包含漏洞
发现pay变量没有进行过滤,存在文件包含
创建一个1.php,内容为
用burpsuite抓包,将pay后加上下图所示,发现php显示出来
这就可以将一些php木马写入
(4)一般注册会出现xss漏洞
看源代码发现对邮箱没有过滤
(5)修改个人资料时也会出现xss漏洞
用BurpSuit抓包,看资料修改如何实现,审计分析后发现email和msn都可以xss
在有漏洞的地方加入,运行发现会弹出提示框,提示1.
三 . 代码审计实战
1. 熊海CMS代码审计
新建数据库
在www.c.com/install下输入信息进行安装
Seay里新建项目,定位到www.c.com路径,开始审计
(1)文件包含漏洞
在r变量后加入很多点
(2)cookies欺骗越权漏洞
发现只要把r的值换成index,并创建一个cookie,改一下时间,便可绕过后台登录。
(3)login.php绕过登录
如果没办法绕过后台登陆,可以使用报错注入,将下面两句注入语句分别放入登录的用户账号栏,进行登录,页面会提示密码不正确,出现报错
将两个md5拼接在一起,形成30位的密码,解密后得到管理员密码
2. PbootCMS代码审计(MVC架构)
安装PbootCMS
新建pbootcms数据库,在数据库中运行下图路径下的.sql文件,就可以将数据导入数据库
修改database.php的配置