PHP 代码审计之 SQL 注入

本文通过分析一个CMS的搜索功能,揭示了存在SQL注入的风险。代码追踪显示未对用户输入进行有效防护,直接拼接到SQL语句中。渗透验证证实了这一漏洞,并提出两种修复建议:字符过滤和预编译语句使用。
摘要由CSDN通过智能技术生成

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 获取到的搜索内容,这里并没有做相关的防护措施,获取到搜索内容后,直接拼接到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值