首页 » 网站推广 » sql语句php源码技巧_PHP 代码审计之 SQL 注入

sql语句php源码技巧_PHP 代码审计之 SQL 注入

访客 2024-11-23 0

扫一扫用手机浏览

文章目录 [+]

<?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 获取到的搜索内容,这里并没有做干系的防护方法,获取到搜索内容后,直接拼接到了 $strWhere 变量中,也便是 sql 语句的 where 部分,然后通报给了 getInfoWhere 函数,初步剖断是有 sql 注入危险,随后 ctrl + 左键定位到这个函数查看,其代码如下:

sql语句php源码技巧_PHP 代码审计之 SQL 注入

public function getInfoWhere($strWhere=null,$field = '',$table=''){ try { $table = $table?$table:$this->tablename1; $strSQL = \"大众SELECT $field FROM $table $strWhere\"大众; $rs = $this->db->query($strSQL); $arrData = $rs->fetchall(PDO::FETCH_ASSOC); if(!empty($arrData[0]['structon_tb'])) $arrData = $this->loadTableFieldG($arrData); if($this->arrGPdoDB['PDO_DEBUG']) echo $strSQL.'<br><br>'; return current($arrData); } catch (PDOException $e) { echo 'Failed: ' . $e->getMessage().'<br><br>'; }}

在这个函数中传来的 $strWhere 变量直接拼接到了 $strSQL 中,直至到实行 sql,那么可以确定这个搜索功能有 sql 注入问题。
条件是程序没有利用全局过滤器或其他的防护方法。

sql语句php源码技巧_PHP 代码审计之 SQL 注入
(图片来自网络侵删)
0x02:渗透验证

通过代码的流程可以看出来搜索功能是存在 sql 注入的,下面通过 burp 和 sqlmap 进行验证,结果如下:

可以证明,搜索功能存在 sql 注入漏洞。

0x03:修复建议

常日情形下 sql 注入修复办法有两种,第一个是过滤危险的字符,这些字符不止限与单引号双引号,包扩 union、sleep 等数据库的关键字。
第二个是利用预编译语句,收到的值利用占位符进行数据库的 CURD,而不是直接拼接到 sql 中。

相关文章

台湾语言的国际传播,多元融合与创新发展

台湾,这片美丽富饶的土地,拥有丰富的语言资源。自古以来,台湾语言便与大陆、东南亚乃至世界各地的语言相互交融,形成了独具特色的语言景...

网站推广 2024-12-27 阅读0 评论0

史利丹,商业领袖的智慧之路

史利丹,这位被誉为“商业领袖的智慧之道”的代表人物,以其卓越的领导力和敏锐的商业洞察力,在商界树立了崇高的地位。本文将围绕史利丹的...

网站推广 2024-12-27 阅读0 评论0

合约价协议,市场共赢的基石

合约价协议,作为市场经济中的重要组成部分,是连接买卖双方的桥梁,是保障市场公平、公正、透明的重要手段。本文将围绕合约价协议的概念、...

网站推广 2024-12-27 阅读0 评论0

变频器无协议技术的崛起与应用

随着我国工业自动化水平的不断提高,变频器作为工业生产中调节电机转速的重要设备,其应用越来越广泛。传统变频器在通信协议方面的局限性,...

网站推广 2024-12-27 阅读0 评论0