BUGKU--web

 

 因为前两天,前学了一下有关于php相关方面的知识,今天就来做一下php方面的题目,学以致用一下

一.聪明的php

还是看了别人写的wp,才解出来的题目,感觉自己前面学习的并没有什么用,还是不会写题,有一丢丢小挫败,但是呢,在看别人wp的过程中又发现了自己未曾接触到的盲点,查了一些资料,感觉以后还是得靠练题来掌握知识

 BugKu_聪明的php_bugku 聪明的php_Kobalos Baku的博客-CSDN博客

这个wp中的盲点如下:

1.最开始不知道phpinfo,是什么,后来查了一下

 phpinfo函数可以显示出PHP 所有相关信息。是排查配置php是是否出错或漏配置模块的主要方式之一!代码如下 :

               <?php

                 phpinfo();

               ?>

       只要访问到phpinfo()函数的web页面,即返回php的所有相关信息!

2.不知道passthru是什么

https://www.cnblogs.com/gaohj/p/3267692.html

passthru — 执行外部程序并且显示原始输出

passthru ( string $command [, int &$return_var ] ) : void

3.tac

和cat很像,但是又有点不一样

浅谈命令执行中cat和tac的区别_tac和cat_待成追忆却惘然的博客-CSDN博客

php调用系统外函数system:

        cat表示抓取文件的数据内容。

        但有时候cat抓取无法看见,我们可以尝试tac抓取

        cat抓取是从第一行抓到最后一行。tac是从最后一行还是抓到第一行。

传一下参看一下,发现我传什么他就显示什么

 大概看了一眼代码,发现用preg_match()绕过了很多的函数,那就只能用其他的

发现了一个疑点,为什么引用函数的时候不能直接

a=函数,而非要在函数前加个$且用{}将函数括起来

 

 会发现第二张图片才真正反应了函数的作用

因为过滤掉了system,所以找他的平替passthru()

 过滤掉了cat,咱就是也找平替用tac

 

 二.字符?正则?

 

 分析一下代码,大概能懂,我们要构造一个符合上述正则表达式的一串字符,然后用get传参给id,则会回显key

思路清晰,开始分析正则表达式

.                                  匹配除 "\n" 之外的任何单个字符

*                                 匹配它前面的表达式0次或多次,等价于{0,}

{4,7}                           最少匹配 4 次且最多匹配 7 次,结合前面的 . 也就是匹配 4 到 7 个任意字符

\/                                匹配 / ,这里的 \ 是为了转义

[a-z]                           匹配所有小写字母

[:punct:]                     匹配任何标点符号

/i                                表示不分大小写
 

构造payload:

keykeyaaaakey:/a/keya:

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值