BUGKU web刷题记录

web1

直接F12查看源码,得到flag。

web2

BUGKU web刷题记录

直接输入验证码答案,长度被限制,修改可输入长度,提交后得到flag。

web3

$what=$_GET['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';

在 PHP 中,预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。在 HTML 表单中使用 method="get" 时,所有的变量名和值都会显示在 URL 中。直接构造URL后添加?what=flag

web4

$what=$_POST['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';

在 PHP 中,预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。利用HackBar插件进行POST传参,传递what=flag

web5

$num=$_GET['num'];
if(!is_numeric($num))
{
	echo $num;
	if($num==1)
	echo'flag{******}';
}

**is_numeric()** 函数用于检测变量是否为数字或数字字符串。如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE,注意浮点型返回空值,即 FALSE。当碰到16进制数的时候,也会判断成数字。数字后面加上%00截断,is_numeric()函数就不能识别为数字。

is_numeric()函数对于空字符%00,无论是%00放在前后都可以判断为非数值。

松散比较:使用两个等号 == 比较,只比较值,不比较类型。

严格比较:用三个等号 === 比较,除了比较值,也比较类型。

构造num=1%00或者num=1a

web6

F12查看源码,js脚本最后有unicode编码,解码得到flag。

web7

F12查看源码,刷新过程中可以看到flag位置,可以录屏然后看回放;

使用burp抓包,多试几次就能找到flag;

禁用网页的js,F5手动刷新直到找到flag。

web8

web9

sset() 函数用于检测变量是否已设置并且非 NULL。

preg_match() 函数用于执行一个正则表达式匹配。正则表达式"/^\w+$/" ^表示开始, \w表示任意一个单词字符,即[a-zA-Z0-9_] ,+将前面的字符匹配一次或多次,$表示结尾,即要求整个字符串都是单词字符。

超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用。$GLOBALS包含正在执行脚本所有超级全局变量的引用内容。

构造payload ?args=GLOBALS

上一篇:C++练习(三)


下一篇:linux 效率命令