「配枪朱丽叶。」 「配枪朱丽叶。」
  • 🏠 INDEX
  • 🚩 CTF
    • WEB
    • CRYPTO
    • MISC
  • 🌐 SITE
    • BUUCTF
    • XCTF
    • CTF.SHOW
    • BMZCTF
    • VULNHUB
    • BUGKU
    • HACKTHEBOX
  • 📔 NOTE
    • 学习笔记
    • 工具分享
    • 漏洞复现
  • 👩‍💻 ABOUT ME
  • 💬 COMMENT
  • 🏠 INDEX
  • 🚩 CTF
    • WEB
    • CRYPTO
    • MISC
  • 🌐 SITE
    • BUUCTF
    • XCTF
    • CTF.SHOW
    • BMZCTF
    • VULNHUB
    • BUGKU
    • HACKTHEBOX
  • 📔 NOTE
    • 学习笔记
    • 工具分享
    • 漏洞复现
  • 👩‍💻 ABOUT ME
  • 💬 COMMENT
我的主页 › 靶场 › BUUCTF › [SUCTF 2018]annonymous1 min read
#BUUCTF#

[SUCTF 2018]annonymous1 min read

11月前
160 1
<?php

$MY = create_function("","die(`cat flag.php`);");
$hash = bin2hex(openssl_random_pseudo_bytes(32));
eval("function SUCTF_$hash(){"
    ."global \$MY;"
    ."\$MY();"
    ."}");
if(isset($_GET['func_name'])){
    $_GET["func_name"]();
    die();
}
show_source(__FILE__);

代码很简洁粗暴,开头就创建了一个全局函数,可以查看flag。

create_function生成的函数名有些特殊,它是NULL字符加上”lambda_”再加个一个数字标识(\x00lambda_数字标识),其中数字标识代表它是当前进程中的第几个匿名函数。create_function的实现步骤如下:

  1. 获取参数, 函数体
  2. 拼凑一个”function __lambda_func (参数) { 函数体;} “的字符串
  3. eval之
  4. 通过__lambda_func在函数表中找到eval后得到的函数体, 找不到就出错
  5. 定义一个函数名:”\000_lambda_” . count(anonymous_functions)++
  6. 用新的函数名替换__lambda_func
  7. 返回新的函数名

已知它的格式是固定的,所以可以爆破它:

1 0
Shaw Root
# buuctf# php# web
相关文章
[SUCTF 2018]GetShell
virink_2019_files_share
[Vulnhub]GoldenEye: 1靶机通关记录
[SUCTF 2019]EasyWeb
[BMZCTF]WEB_ezphp
头像
Shaw Root站长
> 姐僦湜女王 洎信邡洸芒💃
145文章 0评论 128获赞
随便看看:)
CTFd搭建(排错)笔记
11月前
[2016“湖湘杯”]简单的RSA
11月前
[西湖论剑2020]BrokenSystems Writeup
5月前
[GYCTF2020]Blacklist
8月前
[Vulnhub]DC-4靶机通关记录
5月前
  • 旧站
  • 我的知乎
  • Riro
  • 7i4n2h3n9
  • EDS
  • 熵增
  • 紫哥purplet
  • 夏风
  • N0vice
  • Ga1@xy
  • prontosil
  • FzWjScJ
  • Retr_0
  • L1near
  • 1p0ch
  • β-AS
  • Match
  • Dizzyk
  • Y1ng
  • 偏有宸机
  • Van1sh
  • Fstone
  • Kali’s Blog
  • Airtail
  • False
  • 魔法少女雪殇
Copyright © 2020-2021 「配枪朱丽叶。」. Designed by nicetheme. 百度统计 载入天数... 载入时分秒...