“百度杯”CTF比赛2017年2月场WP--web
一、爆破-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相关推荐
- i春秋百度杯CTF比赛2016年12月场writeup
第一场 传说中的签到题·进阶篇 题目: 没那么简单~ 11101100101000110011111011000 tips1:big num tips2: 496265176 二进制转十进制刚好和提示 ...
- 【wp】i春秋百度杯CTF比赛2016年12月场writeup
|@第一场 |-----@传说中的签到题·进阶篇 |-----@福尔摩斯 |-----@+ -- + |@第二场 |-----@一个十六岁的少年 |-----@藏在邮件头里的秘密 |-----@吃货 ...
- “百度杯”CTF比赛 2017 二月场 wp
目录 爆破-1 爆破-2 爆破-3 include Zone OneThink misc 2 上古神器 爆破-1 flag在一个长度为6的变量里面 <?php include "fla ...
- [Reverse] - 百度杯”CTF比赛 2017 二月场-CrackMe-1
环境:Windows XP 工具: IDA OD EXEINFOPE 0x00 查壳 0x01 分析 拖入OD,字符串查找看一看. 跟进去看就可以知道关键call了 0040196A . 48 dec ...
- “百度杯”CTF比赛 2017 二月场,题目名称:爆破-3
刚刚打开就看到404: 看了下网址,没毛病,于是转到index.php看看: 已经很清楚了,就是要在120秒内达成这个条件10次就能输出flag了 $ _SESSION['whoami']==( $ ...
- “百度杯”CTF比赛 十一月场Look
最近一直在刷百度杯的题目,感觉每个题目都能涉及到很多知识点,写点wp记录一下 进入后看见页面空白,这个时候一般用dirsearch扫一下,同时burp抓包看一下 看到响应头里有X-HT,这应该是一个提 ...
- “百度杯”CTF比赛 十月场 writeup
"百度杯"CTF比赛十月场 Misc 那些年我追过的贝丝 我要变成一只程序员 剧情大反转 challenge 据说是rc4算法 try again 表姐家的签到题 泄露的数据 考眼 ...
- “百度杯”CTF比赛 九月场--web Upload
"百度杯"CTF比赛 九月场--web Upload 基础知识 1.什么是一句话木马? 2.一句话木马的简要原理 3.html渲染过程 解析渲染该过程主要分为以下步骤 解决方案 4 ...
- “百度杯”CTF比赛 十一月场Mangager
此题前半部分分析见"百度杯"CTF比赛 十一月场 题目名称:Mangager_CodeRoc的博客-CSDN博客 每日CTF Web:Mangager_LUV_YOUJUN的博客- ...
最新文章
- windows的服务中的登录身份本地系统账户、本地服务账户和网络服务账户修改
- 柳传志:我的忧虑来自人工智能的影响
- VC6.0下MFC按钮点击函数手动添加
- docker 二进制安装
- Socket程序中的Error#10054错误
- 行末没有空格c语言,新人提问:如何将输出时每行最后一个空格删除
- python默认深拷贝_Python 深拷贝与浅拷贝
- ie8支持jq的html,jquery 什么版本不能用 ie8
- bzoj2761 [JLOI2011]不重复数字
- hdu(杭电oj)输入输出练习题目总结
- 【重识 HTML + CSS】Photoshop 简单使用
- 2016京东编程题:年终奖
- 恢复误删除的域用户及几个查询命令
- Convolutional Neural Networks (CNNs / ConvNets)
- CF1041F Ray in the tube
- jdk安装后怎么使用_jdk安装后怎么打开java
- 基于web的客栈、公寓、民宿管理平台的设计与实现
- RGMII以太网测试方案
- python语言支持中文输出_python2输出汉字的解决办法暨python2/python3的编码环境参数的查看-Go语言中文社区...
- 东北大学第二场算法题解报告
热门文章
- 域渗透-横向移动(PTT)
- python win32gui使用_python win32 简单操作
- c语言QQ管理系统四百条,C语言程序设计论文-工会成员信息管理系统.doc
- SDU程序设计思维实践题目总结
- MIT 6.S965 韩松课程 05
- 计算机怎么打出$符号,细说电脑上怎么打出特殊符号
- 主分区和逻辑分区的区别
- 2019美亚杯个人赛刷题
- 装机大师无法发现linux硬盘,如何解决PE无法识别硬盘的问题
- USF MSDS501 计算数据科学中文讲义 2.4 Python 中的编程模式