当前位置:网站首页>[WUSTCTF2020]朴实无华
[WUSTCTF2020]朴实无华
2022-07-13 17:41:00 【Bnessy】

什么东西都没有,目录扫描发现robots.txt
访问后,告诉我,这不是flag,emmmm
抓个包看下,发现fl4g.php
访问得到源码
<?php
header('Content-type:text/html;charset=utf-8');
error_reporting(0);
highlight_file(__file__);
//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("去非洲吧");
}
?>
大致看一下,有三处需要绕过
- level 1
if (isset($_GET['num'])){
$num = $_GET['num'];
if(intval($num) < 2020 && intval($num + 1) > 2021){
echo "我不经意间看了看我的劳力士, 不是想看时间, 只是想不经意间, 让你知道我过得比你好.</br>";
}else{
die("金钱解决不了穷人的本质问题");
}
}else{
die("去非洲吧");
}
num要小于2020,又要满足num+1大于2021,这里就要利用到intval函数了intval:获取变量的整数值,如果intval函数参数填入科学计数法的字符串,会以e前面的数字作为返回值而对于科学计数法+数字则会返回字符串类型
传入num=1e4成功绕过
- level 2
if (isset($_GET['md5'])){
$md5=$_GET['md5'];
if ($md5==md5($md5))
echo "想到这个CTFer拿到flag后, 感激涕零, 跑去东澜岸, 找一家餐厅, 把厨师轰出去, 自己炒两个拿手小菜, 倒一杯散装白酒, 致富有道, 别学小暴.</br>";
else
die("我赶紧喊来我的酒肉朋友, 他打了个电话, 把他一家安排到了非洲");
}else{
die("去非洲吧");
}
需要找一个值,MD5加密前和MD5加密后值是一样的,这里使用的是==,弱类型比较,那就找一个值加密前是0e开头,MD5加密后也是0e开头的就行了:0e215962017
- 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("去非洲吧");
}
将传入的$get_flag当作命令执行,但是过滤了空格,并且会把cat替换为wctf2020
空格使用$IFS$1来绕过,cat不让用,那就用nl,先ls看一下有没有flag文件
应该是这个fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag
读取看下
边栏推荐
猜你喜欢
随机推荐
JS函数自调用
js中new关键字的实现原理
自上而下获取父节点的id的集合
[Huang ah code] wechat applet +php realizes instant messaging chat function
40.js--同名标识符提升问题
[Huang ah code] PHP cooperates with xlwriter to realize infinite header level excel export
ERR_ PNPM_ PEER_ DEP_ ISSUES Unmet peer dependencies
创建/删除 表空间/用户
sql_ Server2014 download and installation
Steps for JS parsing engine to execute JS code
ant-design Upload组件自定义上传
反射获取成员方法和成员变量
JS中Math对象
[Huang ah code] Microsoft Internet Explorer will be retired. Netizens said: what should I do in the future?
Cross domain exceptions where the admin system is nested in a third-party system
免费CDN jsdelivr 加速网站
网络安全应急响应-电子数据取证技术
【黄啊码】fastadmin接入微信支付和支付宝支付
淘宝项目练习总结
[Huang ah code] teacher, I want to choose software development related majors after the college entrance examination. Which direction do you think is good? How to fill in the college entrance examinat









