找回密码
 立即注册
首页 业界区 安全 ctfshowWeb入门 php特性全部wp

ctfshowWeb入门 php特性全部wp

尤晓兰 7 天前
Web89(preg_match和intval)
  1. <?php
  2. include("flag.php");
  3. highlight_file(__FILE__);
  4. if(isset($_GET['num'])){
  5.     $num = $_GET['num'];
  6.     if(preg_match("/[0-9]/", $num)){
  7.         die("no no no!");
  8.     }
  9.     if(intval($num)){
  10.         echo $flag;
  11.     }
  12. }
  13. //?num[]=1
复制代码
md5()函数如果传入数组,返回值将是NULL,NULL===NULL,所以可以用数组绕过。
Web98(&引用)
  1. [/code]&表示引用,比如$b=&$a表示变量b是变量a的一个引用,相当于同一个变量两个名字,一个变化另一个也会跟着变化。
  2. [code]<?php
  3. show_source(__FILE__);
  4. include('flag.php');
  5. $a=$_GET['cmd'];
  6. if(preg_match('/^php$/im', $a)){
  7.     if(preg_match('/^php$/i', $a)){
  8.         echo 'hacker';
  9.     }
  10.     else{
  11.         echo $flag;
  12.     }
  13. }
  14. else{
  15.     echo 'nonononono';
  16. }
复制代码
  1. ?cmd=php%0abbb
复制代码
1.png

Web99(in_array)
  1. [/code]in_array() 是否存在strict参数,如果不设置默认为False则为宽松比较,True需要检查搜索的数据与数组的值类型是否相同自动转换为1
  2. 题中为宽松比较。当n=1.php时 "1.php"==1,成功绕过
  3. [align=center] 2.png [/align]
  4. [code]<?php
  5. include("flag.php");
  6. highlight_file(__FILE__);
  7. if(isset($_GET['num'])){
  8.     $num = $_GET['num'];
  9.     if($num==4476){
  10.         die("no no no!");
  11.     }
  12.     if(preg_match("/[a-z]/i", $num)){
  13.         die("no no no!");
  14.     }
  15.     if(intval($num,0)==4476){
  16.         echo $flag;
  17.     }else{
  18.         echo intval($num,0);
  19.     }
  20. }
  21. //?num=010574
  22. //?num=4476.1
复制代码
Web100(逻辑运算符优先级)

[code]
您需要登录后才可以回帖 登录 | 立即注册