当你的才华
还撑不起你的野心时
那你就应该静下心来学习
目录
题外话:
刚刚刷朋友圈无意间发现,今天貌似是教师节,又一年的教师节到了,感觉时间过得好快,感叹过得太快了。不晓得是不是越长大越孤单,越容易感叹!
说真的,这一路走来,如果没有当初辛勤教诲我这个不良少年的老师(导师),也不会有现在的我!可能我也不会是现在的自己,可能会迷茫自己到底想要什么?为了什么?到底是什么驱动着我?一直在反复的问自己这几个问题,鞭策自己不要停下来,生活不会辜负想要变好的你!可能会来的晚,也可能回迟到,但一定不会不来。
借这篇文章开头,感谢曾经教过我的老师(导师),你们在我生命中的出现,一半在课堂上,一半在路上,你们的恩情,我都记得!感谢你们犹如指路明灯般照亮我前行的路。
最后,在这个特殊的日子里。祝你,教师节快乐!老师(导师)
Web (新手练习题)之 simple_php
0x01 前言
想玩玩攻防世界的朋友,CE已附上XCTF Web 练习题传送门:https://adworld.xctf.org.cn/
难度系数: 一星
题目来源: Cyberpeace-n3k0
题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
0x02 补充知识:
php中有两种比较符号
- === 会同时比较字符串的值和类型
- == 会先将字符串换成相同类型,再作比较,属于弱类型比较
PHP 官网介绍:
https://www.php.net/manual/zh/types.comparisons.php
形式
数字和字符混合的字符串转换为整数后只保留数字
<?php $str="123.9abc"; $int=intval($str); //转换后数值:123 $float=floatval($str); //转换后数值:123.9 $str=strval($float); //转换后数值:"123.9" ?>
0x03 解题思路
1、通过阅读代码发现需要同时满足 a==0 且 if a 为真,b 不是数字且 b>1234 才会返回 flag
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
2、php中的弱类型比较会使'abc' == 0为真,所以输入a=abc时,可得到flag1。(a可换成任意字符,例如:"b"、"c"、"d"、"、"等字符)
3、is_numeric() 函数会判断如果是数字和数字字符串则返回 TRUE,否则返回 FALSE,且php中弱类型比较时,会使('1234a' == 1234)为真,所以应该输入a=a&b=1235a
用&隔开a和b之间的参数
URL中易出现的特殊字符
特殊含义 | 十六进制 |
+ 表示空格(在URL中不能使用空格) | %2B |
/ 分隔目录和子目录 |
%2F |
? 分隔实际的URL和参数 | %3F |
# 表示书签 | %23 |
& URL中指定的参数间的分隔符 |
%26 |
= URL中指定的参数的值 | %3D |
成功得到Flag
Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}
我不需要自由,只想背着她的梦
一步步向前走,她给的永远不重