声明:文中所触及的技术、思路和工具仅供以安全为目的的学习交流运用,任何人不得将其用于违法用途以及盈利等目的,否则后果自动承担!
本专题文案导航
1.编程基本 | PHP代码审计(上):
红日 新书上线了
红日安全推出的适合新手入门系列教程专刊上线啦!
红日安全专注新手入门教程。转眼间红日安全又成长了一岁,在这一年里,团队成长了非常多非常多。日前团队所有的文案对外都是公开的,期盼能够给新手一个填补空白的地区。2020年,团队起始新的方向,和有些安全培训厂商进行合作,期盼做出更加多安全作品。感谢团队每一位成员为团队的辛勤付出,期盼每一个人在团队里面有更大的做为。亦感谢始终在后面默默支持咱们的红粉,亦祝愿你们在新的一年学到更加多的干货!
1.1.5 PHP安全缺陷
1.1.5.1 PHP 平常安全配置
1.1.5.1.1 php的安全模式
php的安全模式是个非常要紧的内嵌的安全机制,能够掌控有些php中的函数,
例如system(),
同期把非常多文件操作函数进行了权限掌控,亦不准许对某些关键文件的文件,
例如/etc/passwd,
然则默认的php.ini是无打开安全模式的,咱们把它打开:
safe_mode = on
1.1.5.1.2 php脚本能拜访的目录
运用open_basedir选项能够掌控PHP脚本只能拜访指定的目录,这般能够避免
PHP脚本拜访
不该该拜访的文件,必定程度上限制了phpshell的害处,咱们一般能够设
置为只能拜访网站目录:
open_basedir = D:/usr/www
1.1.5.2 关闭危险函数
倘若打开了安全模式,那样函数禁止是能够不必须的,然则咱们为了安全还是考
虑进去。例如,
咱们觉得不期盼执行包含system()等在那的能够执行命令的php函数,或
者能够查看php信息的
phpinfo()等函数,那样咱们就能够禁止它们:
disable_functions =
system,passthru,exec,shell_exec,popen,phpinfo,escapeshellarg,escapesh
ellcmd,proc_close,proc_open,dl,show_source,get_cfg_var
倘若你要禁止任何文件和目录的操作,那样能够关闭非常多文件操作
disable_functions =
chdir,chroot,dir,getcwd,opendir,readdir,scandir,fopen,unlink,delete,c
opy,mkdir,
rmdir,rename,file,file_get_contents,fputs,fwrite,chgrp,chmod,chown
以上只是列了部分不叫常用的文件处理函数,你亦能够把上面执行命令函数
和这个函数结合,
就能够**大部分的phpshell了。
1.1.5.3 关闭注册全局变量
在PHP中提交的变量,包含运用POST或者GET提交的变量,都将自动注册为
全局变量,能够直接拜访
这是对服务器非常不安全的,因此咱们不可让它注册为全局变量,就把注册
全局变量选项关闭:
register_globals = Off
当然,倘若这般设置了,那样获取对应变量的时候就要采用恰当方式,例如
获取GET提交的变量var,
那样就要用$_GET[var]来进行获取,这个php程序员要重视。
|