2018最新代码审计教程笔记-代码审计入门

【摘要】由于之前的学习不是非常的系统,故此重新整理学习“代码审计”,博客也更新相关内容。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开源项目:暂无开源

 小东
 简介:专业团队网站开发、安全运维,合作意向请联系!

扫码关注微信公众号:ITDYBOY,学前端,学安全,从0到1,从1到精通!

扫码关注微信公众号:ITDYBOY

发表评论

游客
送你一朵小花花~

帅人已评(19)

爱了爱了
LV 2 lan 5年前 (2020-01-12) 回复
(╯°A°)╯︵○○○(´இ皿இ`)
LV 1 笨女孩 6年前 (2018-12-24) 回复
乖
LV 2 7年前 (2018-06-15) 回复
口水
LV 2 小猫咪 7年前 (2018-05-25) 回复
不错,非常好的教程
LV 1 萱萱 7年前 (2018-01-01) 回复
1 2