【摘要】由于之前的学习不是非常的系统,故此重新整理学习“代码审计”,博客也更新相关内容。0x01:调试函数echo(print):这是最简单的输出数据调试方法,一般用来输出变量值,或者你不确定程序执行到了哪个分支的情况下是用。...
由于之前的学习不是非常的系统,故此重新整理学习“代码审计”,博客也更新相关内容。
0x01:调试函数
echo (print): 这是最简单的输出数据调试方法,一般用来输出变量值,或者你不确定程序执行 到了哪个分支的情况下是用。
print_r、var_dump(var_export)、debug_zval_dump这个主要是用来输出变量数据值,特别是数组和对象数据,一般我们在查看接口 返回值,或者某些不太确定变量的时候,都可以使用这两个API。
var_dump 会额外输出数据类型: print_r输出:格式很整齐,跟 var_dump的区别是没有类型数据,并且布尔值 的 false和值 NULL输出为空 var_export输出,所有的数据是可以作为组织好的变量输出的,都是能够作为 直接赋值使用: 需要注意的一点是, var_export对于资源型的变量会输出 NULL debug_zval_dump输出结果跟 var_dump类似,唯一增加的一个值是 refcount, 就是记录一个变量被引用了多少次,这是php 的copy on write (写时复制)的 机制的一个重要特点。
exit()退出函数
0x02:注释
// 这是单行注释
/* 这个是多行注释 */
0x03: 单引号跟双引号的区别
双引号解析变量 单引号不解析变量
0x04:超全局变量
超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量
在 php 中可由用户操作的全局变量列表如下:
$GLOBALS — 引用全局作用域中可用的全部变量
$_SERVER — 服务器和执行环境信息
$_GET — HTTPGET变量
$_POST — HTTPPOST变量
$_FILES — HTTP文件上传变量
$_REQUEST — HTTPRequest变量
$_SESSION — Session变量
$_ENV — 环境变量
$_COOKIE — HTTPCookies
0x05:命令注入
攻击:
PHP 执行系统命令可以使用以下几个函数:
Linux Unix Windos
system、exec、passthru、``(反引号)、shell_exec、popen、proc_open、pcntl_exec
语法:
String system (string$command[,int&$return_var])
String exec(string$command[,array&$output[,int&$return_var]])
voidpassthru(stringcommand,int&return_var)
String shell_exec(stringcommand) 需要echo与反引号类似
`` 反引号
resourcepopen(string$command,string $mode)
resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env[,array$other_options]]])
voidpcntl_exec(string$path[,array$args [,array$envs]])
防御:
当用户提供的数据传入此函数,使用 escapeshellarg() 或 escapeshellcmd() 来确保用户欺骗 系统从而执行任意命令。
语法:escapeshellarg(string$arg)
可以用到 php 的安全中,会过滤掉arg 中存在的一些特殊字符。在输入的参数中如果包含中 文传递给escapeshellarg,会被过滤掉。
escapeshellcmd(string$command)
escapeshellcmd()函数会转义命令中的所有 shell元字符来完成工作。这些元字符包括: #&;` , |*?~ <>^()[]{}$\\。
0x06:命令注入函数
常见代码执行函数 eval 、assert 、preg_replace
基本上就没啥了,后续会更新一些实战(最新漏洞)的内容,本文章参考网上大部分的审计教程总结而来,(算是信息安全专业的代码审计入门干货),大家有任何问题都可以直接Q我(问问题请直接入主题,截图+问题,不要问在不在!!!),关注本博客或者DYBOY.CN即可获得最新的资源和教程哦~
注:本文属于原创文章,转载请注明本文地址!
作者QQ:1099718640
CSDN博客主页:http://blog.csdn.net/dyboy2017
Github开源项目:暂无开源
小东
简介:专业团队网站开发、安全运维,合作意向请联系!
发表评论