一、爆破-1

在php语言中,所有的已经定义的变量都会保存在GLOBALS全局数组中,比方说你定义了一个$name="李华",那么$GLOBALS['name']就等于“李华”。就是说,你可以通过这个全局数组来访问任何一个变量,所有已经定义过的变量都可以在里面通过变量名索引得到。

preg_match函数返回值为匹配到的次数。

审计代码可以知道,我们可以用GET传值方式?hello=GLOBALS,把所有的变量都打印出来得到flag

二、爆破-2

var_dump()函数:把命令以字符串形式返回

eval()函数:把括号里的字符串,当做PHP命令执行

题目说flag不在变量中,可能在文件中,想到函数

file_get_contents(path),获得指定路径下的文件内容,以字符串的形式返回

即把file_get_contents()函数命令赋值给$a,然后传入var_dump中,var_dump()函数将这个命令以字符串形式返回,进入到eval函数中,让eval函数来执行。

?hello=file_get_contents("flag.php")

查看源代码得到flag

三、爆破-3

有三个SESSION变量 nums:计数 time:记时 whoami:有个初始值 然后将$str_rands 生成的随机字符赋值给它。

$str_rands 就是生成2位随机的26字母

重点就是这个判断语句if($_SESSION['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0),可以发现这个whoami最开始是ea,然后当和value前两位相等时就变为另一个随机数,并输出,所以我们每次获取这个输出的随机数赋值给value就好,后半句 只要保证value为数组,substr就会失败,则等号成立。

手动爆破即可得flag。

四、include

发现allow_url_include是on

可以查看输入流(只读) ?path=php://inout

post: <?php system('ls');?> 查看有哪些文件,发现 dle345aae.php

post: <?php system('cat dle345aae.php');? 查看dle345aae.php的内容发现flag

另一种解法:利用php://filter/read=convert.base64-encode/resource=[文件路径]读取文件

EXP:

php://filter/read=convert.base64-encode/resource=/var/www/html/dle345aae.php

五、zone

修改login=1没反应,不知道哪里出现了问题,求指正

六、 OneThink

这个题跟着大佬WP做了一晚上也没做出来,过了一天再试了一下又成功了(疑惑了

Google一下OneThink框架的已知漏洞

参考i春秋的一篇文章:https://bbs.ichunqiu.com/thread-4918-1-1.html

本来想自己复现一下,但是我实在太菜了, SentCMS总是搭建不起来QAQ,就利用题目给的环境来做吧

漏洞利用条件:OneThink1.0 、 /Temp/Runtime目录可读可写

漏洞分析:thinkphp的缓存方式缺陷配合onethink过滤不严造成的命令执行漏洞。 thinkphp的默认缓存方式S()是以File方式,在/Runtime/Temp 下生成文件名固定的缓存文件,onethink在/Runtime/Temp生成固定的缓存文件2bb202459c30a1628513f40ab22fa01a.php,其中记录了用户名,由于注册时只限制了用户名长度,没有对内容进行过滤,造成了命令执行漏洞,用户可以利用注册的用户名来执行命令。

因为用户名长度被限制了,注册两个账号分别为%0a$a=$_GET[a];//   %0aecho  `$a`;//(%0a是换行符的urlencode), 然后依次登录,这里要注意顺序,因为先登录的会先写进缓存文件,顺序写反了就执行不了了。

重点注意的是,注册以及登陆账号时,需要burpsuite抓包将用户名urlencode,并将%250a改成%0a,使之URL解码时可以解码为换行符,否则会把换行符当做字符串来处理了。

最后访问 /Runtime/Temp/2bb202459c30a1628513f40ab22fa01a.php?a=cat ../../flag.php查看源代码得到flag

“百度杯”CTF比赛2017年2月场WP--web相关推荐

  1. i春秋百度杯CTF比赛2016年12月场writeup

    第一场 传说中的签到题·进阶篇 题目: 没那么简单~ 11101100101000110011111011000 tips1:big num tips2: 496265176 二进制转十进制刚好和提示 ...

  2. 【wp】i春秋百度杯CTF比赛2016年12月场writeup

    |@第一场 |-----@传说中的签到题·进阶篇 |-----@福尔摩斯 |-----@+ -- + |@第二场 |-----@一个十六岁的少年 |-----@藏在邮件头里的秘密 |-----@吃货 ...

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

    目录 爆破-1 爆破-2 爆破-3 include Zone OneThink misc 2 上古神器 爆破-1 flag在一个长度为6的变量里面 <?php include "fla ...

  4. [Reverse] - 百度杯”CTF比赛 2017 二月场-CrackMe-1

    环境:Windows XP 工具: IDA OD EXEINFOPE 0x00 查壳 0x01 分析 拖入OD,字符串查找看一看. 跟进去看就可以知道关键call了 0040196A . 48 dec ...

  5. “百度杯”CTF比赛 2017 二月场,题目名称:爆破-3

    刚刚打开就看到404: 看了下网址,没毛病,于是转到index.php看看: 已经很清楚了,就是要在120秒内达成这个条件10次就能输出flag了 $ _SESSION['whoami']==( $ ...

  6. “百度杯”CTF比赛 十一月场Look

    最近一直在刷百度杯的题目,感觉每个题目都能涉及到很多知识点,写点wp记录一下 进入后看见页面空白,这个时候一般用dirsearch扫一下,同时burp抓包看一下 看到响应头里有X-HT,这应该是一个提 ...

  7. “百度杯”CTF比赛 十月场 writeup

    "百度杯"CTF比赛十月场 Misc 那些年我追过的贝丝 我要变成一只程序员 剧情大反转 challenge 据说是rc4算法 try again 表姐家的签到题 泄露的数据 考眼 ...

  8. “百度杯”CTF比赛 九月场--web Upload

    "百度杯"CTF比赛 九月场--web Upload 基础知识 1.什么是一句话木马? 2.一句话木马的简要原理 3.html渲染过程 解析渲染该过程主要分为以下步骤 解决方案 4 ...

  9. “百度杯”CTF比赛 十一月场Mangager

    此题前半部分分析见"百度杯"CTF比赛 十一月场 题目名称:Mangager_CodeRoc的博客-CSDN博客 每日CTF Web:Mangager_LUV_YOUJUN的博客- ...

最新文章

  1. windows的服务中的登录身份本地系统账户、本地服务账户和网络服务账户修改
  2. 柳传志:我的忧虑来自人工智能的影响
  3. VC6.0下MFC按钮点击函数手动添加
  4. docker 二进制安装
  5. Socket程序中的Error#10054错误
  6. 行末没有空格c语言,新人提问:如何将输出时每行最后一个空格删除
  7. python默认深拷贝_Python 深拷贝与浅拷贝
  8. ie8支持jq的html,jquery 什么版本不能用 ie8
  9. bzoj2761 [JLOI2011]不重复数字
  10. hdu(杭电oj)输入输出练习题目总结
  11. 【重识 HTML + CSS】Photoshop 简单使用
  12. 2016京东编程题:年终奖
  13. 恢复误删除的域用户及几个查询命令
  14. Convolutional Neural Networks (CNNs / ConvNets)
  15. CF1041F Ray in the tube
  16. jdk安装后怎么使用_jdk安装后怎么打开java
  17. 基于web的客栈、公寓、民宿管理平台的设计与实现
  18. RGMII以太网测试方案
  19. python语言支持中文输出_python2输出汉字的解决办法暨python2/python3的编码环境参数的查看-Go语言中文社区...
  20. 东北大学第二场算法题解报告

热门文章

  1. 域渗透-横向移动(PTT)
  2. python win32gui使用_python win32 简单操作
  3. c语言QQ管理系统四百条,C语言程序设计论文-工会成员信息管理系统.doc
  4. SDU程序设计思维实践题目总结
  5. MIT 6.S965 韩松课程 05
  6. 计算机怎么打出$符号,细说电脑上怎么打出特殊符号
  7. 主分区和逻辑分区的区别
  8. 2019美亚杯个人赛刷题
  9. 装机大师无法发现linux硬盘,如何解决PE无法识别硬盘的问题
  10. USF MSDS501 计算数据科学中文讲义 2.4 Python 中的编程模式