由于CTFshow的vip太贵了但是反序列化的题没源码又不好练习于是我把网上找的ctfshow的原题图片的代码加自己的理解又写了一遍,更到哪一题就看我能学到哪吧,为了爬虫大佬好爬特意加了标识。
+++++
第254题
*********
<?php
highlight_file(__FILE__);
include('./flag.php');
class B{
public $usname = '123456';
public $passwd = '123456';
public $isVip = false;
public function checkVip()
{
return $this->isVip;
}
public function login($u,$p)
{
if($this->usname==$u && $this->passwd==$p)
{
$this->isVip = true;
}
return $this->isVip;
}
public function getflag()
{
if($this->isVip)
{
global $flag;
echo '你的益达'.$flag;
}
else
{
echo '不是VIP还想白嫖';
}
}
}
$usn = $_GET['usname'];
$pwd = $_GET['passwd'];
if(isset($usn) && isset($pwd))
{
$user = new B();
if($user->login($usn,$pwd))
{
if($user->checkVip())
{
$user->getflag();
}
}
else
{
echo '孩子看代码了吗';
}
}
xxxxxxxxx
+++++
第255题
*********
<?php
highlight_file(__FILE__);
include('./flag.php');
class B{
public $usname = '123456';
public $passwd = '123456';
public $isVip = false;
public function checkVip()
{
return $this->isVip;
}
public function login($u,$p)
{
return $this->usname==$u && $this->passwd==$p;
}
public function getflag()
{
if($this->isVip)
{
global $flag;
echo '你的益达'.$flag;
}
else
{
echo '不是VIP还想白嫖';
}
}
}
$usn = $_GET['usname'];
$pwd = $_GET['passwd'];
if(isset($usn) && isset($pwd))
{
$user = unserialize($_COOKIE['user']);
if($user->login($usn,$pwd))
{
if($user->checkVip())
{
$user->getflag();
}
}
else
{
echo '孩子看代码了吗';
}
}
xxxxxxxxx
+++++
第256题
*********
<?php
highlight_file(__FILE__);
include('./flag.php');
class B{
public $usname = '123456';
public $passwd = '123456';
public $isVip = false;
public function checkVip()
{
return $this->isVip;
}
public function login($u,$p)
{
return $this->usname==$u && $this->passwd==$p;
}
public function getflag()
{
if($this->isVip)
{
global $flag;
if($this->usname != $this->passwd)
{
echo '你的益达'.$flag;
}
}
else
{
echo '不是VIP还想白嫖';
}
}
}
$usn = $_GET['usname'];
$pwd = $_GET['passwd'];
if(isset($usn) && isset($pwd))
{
$user = unserialize($_COOKIE['user']);
if($user->login($usn,$pwd))
{
if($user->checkVip())
{
$user->getflag();
}
}
else
{
echo '孩子看代码了吗';
}
}
xxxxxxxxx
+++++
第257题
*********
<?php
highlight_file(__FILE__);
include('./flag.php');
class B{
private $usname = '123456';
private $passwd = '123456';
private $isVip = false;
public $class = 'info';
public function __construct()
{
$this->class = new info();
}
public function login($u,$p)
{
return $this->usname==$u && $this->passwd==$p;
}
public function __destruct()
{
$this->class->getinfo();
}
}
class info{
private $user = '123456';
public function getinfo()
{
return $this->user;
}
}
class backdoor{
private $code;
public function getinfo()
{
eval($this->code);
//放windows上执行命令有一点问题可以直接输出来验证
// echo "flag{12456}";
}
}
$usn = $_GET['usname'];
$pwd = $_GET['passwd'];
if(isset($usn) && isset($pwd))
{
$user = unserialize($_COOKIE['user']);
$user->login($usn,$pwd);
}
xxxxxxxxx
+++++
第258题
*********
<?php
highlight_file(__FILE__);
include('./flag.php');
class B{
private $usname = '123456';
private $passwd = '123456';
private $isVip = false;
public $class = 'info';
public function __construct()
{
$this->class = new info();
}
public function login($u,$p)
{
return $this->usname==$u && $this->passwd==$p;
}
public function __destruct()
{
$this->class->getinfo();
}
}
class info{
private $user = '123456';
public function getinfo()
{
return $this->user;
}
}
class backdoor{
private $code;
public function getinfo()
{
eval($this->code);
//放windows上执行命令有一点问题可以直接输出来验证
// echo "flag{12456}";
}
}
$usn = $_GET['usname'];
$pwd = $_GET['passwd'];
if(isset($usn) && isset($pwd))
{
if(!preg_match('/[oc]:\d+:/i',$_COOKIE['user']))
{
$user = unserialize($_COOKIE['user']);
}
$user->login($usn,$pwd);
}
xxxxxxxxx
+++++
第362题
*********
from flask import Flask,request,render_template_string
from jinja2 import Template
app = Flask(__name__)
#设置路由
@app.route('/')
def index():
# name为参数
name = request.args.get('name',default='Non1')
# 过滤2和3
if '2' in name or '3' in name:
return '<h1>:(</h1>'
t = '''
<html>
<h1>Hello %s</h1>
</html>
''' %(name)
# 渲染模板
return render_template_string(t)
app.run()
xxxxxxxxx