0x00:前言
用 CMS 做例子,今天刚下载安装,因为首页的搜索功能比较显眼,所以看了一下是存在 sql 注入的,基本没有防护机制,CMS 比较冷门,不属于热门,所以安全性也低一点,做审计练手很合适。
0x01:代码追踪
搜索时 URL 如下:/archives/detail.php?name=1,通过 URL 可知其相应的 php 文件为 archives 下的 detail.php,打开此文件,内容如下:
<?php
require_once('include/detail.inc.php');
?>
只有一行内容,包含了 include 下的 detail.inc.php 文件,打开这个文件,定位到搜索接收 name 参的代码上,其片段代码如下:
$arrWhere = array();
$arrWhere[] = "type_title_english = '".$_GET['name']."'";
$strWhere = implode(' AND ', $arrWhere);
$strWhere = 'where '.$strWhere;
$arrInfo = $objWebInit->getInfoWhere($strWhere);
代码中是直接通过 $_GET 获取到的搜索内容,这里并没有做相关的防护措施,获取到搜索内容后,直接拼接到