PHP代码审计小计
0x01 东西篇
编辑器(notepad++,editplus,UE等等,看个人习气)
TommSearch(字符串检索) || grep
HttpProtocolDebugger(http协议调试器)
Fiddler(剖析包,改包)
Seay PHP代码审计东西(php-code-audit剖析辅佐)
几个风趣的项目
dvwa(代码审计测验渠道)
phpmvs
php security audit check
PHP Vulnerability Hunter
0x02 函数篇
addslashed()添加反斜杠
stripslashed()去掉反斜杠
get_magic_quotes_gpc() 判别是否敞开gpc
expode(".",$array)切割成数组
is_numeric()判别是否为数字
sizeof()判别长度
trim() 去除字符串最初和结尾的空格或其他字符
system() 输出并回来最终一行shell成果。
exec() 不输出成果,回来最终一行shell成果,一切成果能够保存到一个回来的数组里边。
passthru() 只调用指令,把指令的运转成果原样地直接输出到规范输出设备上。
EscapeShellCmd(),把一个字符串中一切或许瞒过Shell而去履行别的一个指令的字符转义。这些字符在Shell中是有特别意义的,象分号(;),重定向(>)和从文件读入 (<)等。
EscapeShellArg() 。在给定的字符串两头加上单引号,并把字符串中的单引号转义,这样这个字符串就能够安全地作为指令的参数。
用popen()函数翻开进程
上面的办法只能简略地履行指令,却不能与指令交互。但有些时分有必要向指令输入一些东西,如在添加Linux的体系用户时,要调用su来把当时用户换到root才行,而su指令有必要要在指令行上输入root的暗码。这种情况下,用上面说到的办法显然是不可的。
popen ()函数翻开一个进程管道来履行给定的指令,回来一个文件句柄。已然回来的是一个文件句柄,那么就能够对它读和写了。在PHP3中,对这种句柄只能做单一 的操作形式,要么写,要么读;从PHP4开端,能够一起读和写了。除非这个句柄是以一种形式(读或写)翻开的,不然有必要调用pclose()函数来封闭 它。
比如1:
/* PHP中怎么添加一个体系用户
下面是一段例程,添加一个姓名为james的用户,
root暗码是 verygood。仅供参考
*/
$sucommand = "su --login root --command";
$useradd = "useradd ";
[1] [2] [3] [4] [5] 黑客接单网