MRCTF2020 套娃
2024-09-04 09:19:54
MRCTF2020套娃
打开网页查看源代码
关于$_SERVER['QUERY_STRING']取值,例如:
http://localhost/aaa/?p=222
$_SERVER['QUERY_STRING'] = "p=222";
substr_count()函数计算子串在字符串中出现的次数
PS:子串区分大小写
上述代码不能出现'_'和'%5f',可以用‘ ’或‘.’或‘ %5F’绕过
通过get取得的参数b_u_p_t不等于23333但是正则,匹配需要匹配到23333所以这里用%0a(因为正则匹配中'^'和'$'代表的是行的开头和结尾,所以能利用换行绕过)绕过
payload:?b%5Fu%5Fp%5Ft=23333%0a
打开secrettw.php查看源码
复制注释代码放进控制台
随便POST一个Merak值,回显如下
分析一下代码
1.需要IP地址为127.0.0.1 在header中加client-ip:127.0.0.1
2.file_get_contents用php伪协议绕过
2333=php://input
post:todat is a happy day
3.change函数的作用,传入的参数先进行base64解码,然后将字符转化成ASCII并且+$i*2
反写change函数,exp:
<?php
function unchange($v){
$re = '';
for($i=0;$i<strlen($v);$i++){
$re .= chr ( ord ($v[$i]) - $i*2 );
}
return $re;
}
$real_flag = unchange('flag.php');
echo base64_encode($real_flag);
?>
得到ZmpdYSZmXGI=
用burp传入参数得到flag
最新文章
- 说一说python的牛比与不爽
- BZOJ 3110 [Zjoi2013]K大数查询 ——整体二分
- Entity Framework 6 开发系列 目录
- MVC中的一般权限管理
- 【视频教程】使用UIAutomation开发软件外挂
- 使django与数据库保持长连接
- CAS实现无锁模式
- mysql中实现行号,oracle中的rowid
- #include<;filename.h>; 与 #include“filename.h”
- Android实现后台长期监听时间变化
- Codeforces 538E Demiurges Play Again(博弈DP)
- [jQuery1.9]Cannot read property ‘msie’ of undefined错误的解决方法
- Vijos 1025 小飞侠的游园方案 0-1背包
- (转载)Oracle10g 数据泵导出命令 expdp 使用总结(三)
- websocket(三) 进阶!netty框架实现websocket达到高并发
- Ranger-Kafka插件安装
- 推荐 | Vue 入门&;进阶路线
- javeEE第一周
- cactiEZ 配置
- 一个简单的MapReduce示例(多个MapReduce任务处理)
热门文章
- Tornadofx学习笔记(4)——IconTextFx开源库,整合5000+个字体图标
- CF581B Luxurious Houses 题解
- LuoguB2035 判断数正负 题解
- JS自动播放音频 无效chrome设置 (Uncaught (in promise) DOMException: play() failed because the user didn&#39;t interact)
- response.setHeader(";xxx";,";大侠";)如果赋值中文,那么将不会在页面出值,
- 如何获取网管MTU
- django——django链接mysql数据库
- Spring整合redis实现key过期事件监听
- 【LeetCode】1007. Minimum Domino Rotations For Equal Row 解题报告(Python)
- 小小明系列故事——游戏的烦恼(hdu 4517)