我们打开靶机

选择”Example 3“


PentestLab-web安全代码注入-EXP3_源码分析


观察页面


PentestLab-web安全代码注入-EXP3_源码分析_02


似乎是一个执行函数


我们观察靶机的源码


PentestLab-web安全代码注入-EXP3_php代码_03


分析


PentestLab-web安全代码注入-EXP3_php代码_04


于是乎,尝试修改


http://192.168.29.148/codeexec/example3.php?new=phpinfo()&pattern=/lamer/e&base=Hello%20lamer


结果


PentestLab-web安全代码注入-EXP3_php代码_05


网上大神分析如下


/e修正符使preg_replace()将replacement参数当作php代码执行,前提是subject中有pattern的匹配。

利用方法

了解了上面,我们给pattern参数加上/e修正符,并使得subject中有pattern的匹配,并把replacement改为phpinfo()。