常见危险函数及特殊函数(1)(几乎照抄Virink老师的笔记,,,,)

PHP代码执行函数

eval($code)函数:

eval(参数)

把字符串 $code作为PHP代码执行。很多常见的webshell都是用eval执行的(<?php @eval( $_POST['pass']);?>)


assert()函数:

assert(参数1[,参数2])检查一个单元是否为FALSE。把变量1作为PHP代码执行。

这是一个调试函数,也有字符串作为PHP代码执行的功能。在eval()函数被满世界的杀毒软件通缉之后流行起来。


preg_replace()函数:

preg_replace(参数1,参数2,参数3)

作用是执行正则表达式,搜索和替换。(preg_replace("/test/e,$_GET[“pass”],“test”);提交?pass=phpinfo(),phpinfo()就会被执行。)


create_functions()函数:

create_function(参数1,参数2)

创建一个匿名函数,并返回独一无二的函数名。$ newfunc = create_function(’$ v’,return system(’$v’);’);
$newfunc(‘whoanmi’);相当于system(‘hwoami’)


call_user_func()函数:

call_user_func(参数1,参数2)

第一个参数是被调用的回调函数,其余参数是回调函数的参数。


call_user_func_array()函数:

call_user_func_array(参数1,数组1)

把第一个参数作为回调函数调用,把参数数组作为回调函数的参数传入。


包含函数

require()函数:


include()函数:
include $file; 在变量 $file可控的情况下,我们可以包含任意文件,从而达到getshell的目的。
利用php流filten读取任意文件(需要用到支持的协议,封装协议还有过滤器):
include ( $_GET[‘file’]); 我们可以提交:
?file=php(支持的协议): //filter/convert.base64-encode(过滤器)/resource=index.php


命令执行函数

1、exec():执行一个外部程序。
2、passthru():执行一个外部程序并且显示原始输出。
3、proc_open():执行一个命令,并且打开用来输入/输出的文件指针。
4、shell_exec()& ‘’:通过shell环境执行命令,并且将完整的输出以字符串的方式返回。
5、system():执行外部程序,并且显示输出。例如:
system($cmd);通过控制变量 $cmd执行任意命令。system(‘ping -c 3’ . $target)通过管道符等特殊字符截断从而执行任意命令。(‘a | whoami’;)
6、popen():通过popen()的从参数传递一条命令,并对popen()所打开的文件进行执行。


文件操作函数

1、copy():拷贝文件。
2、file_get_contents():将整个文件读入一个字符串。
3、file_put_contents():将一个字符串写入文件。
4、file():把整个文件读入一个数组中。
5、fopen():打开文件或者URL。
6、move_uploaded_file():将上传的文件移动到新位置。
7、readfile():输出文件。
8、rename():重命名一个文件或目录。
9、rmdir():删除目录。
10、unlink & delete ():删除文件。
任意文件读取,写入,删除往往是上面(或者其他)几个函数受到了控制。
读取:可以读取配置等文件,拿到key。写入:可以写入shell代码相关内容。删除:可以删除.lock文件而可以重新安装覆盖。等等。


特殊函数

信息泄露:

bool phpinfo([int $what=INFO_ALL])

输出PHP当前状态的大量信息,包含了PHP编译选项,启用的扩展,PHP版本,服务器信息和环境变量,操作系统版本信息,path变量,配置选项的本地值和主值,HTTP头和PHP授权信息。


软连接-读取文件内容:

bool symlink(string $target,string $link)

symlink()对于已有的target建立一个名为link的符号链接。

string readlink(string $path)

readlink()和同名的C函数做同样的事,返回符号链接的内容。


环境变量:

string getenv(string $varname)

获取一个环境变量的值。

bool putenv(string $setting)

添加setting到服务器环境变量,环境变量仅存活于当前请求期间,在请求结束时环境会恢复到初始状态。


加载扩展:

bool dl(string $library)

加载指定参数library的PHP扩展。


相关配置:

string ini_get(string $varname)

成功时返回配置选项的值。


数字判断:

bool is_numeric(mixed $var)

如果var是数字和数字字符串则返回TRUE,否则返回FALSE。


数组相关:

bool in_array(mixed $needle,array $haystack[,bool $strict = FALSE])

在haystack中搜索needle,如果没有设置strict则使用宽松的比较。该函数有一个特性,比较值钱会进行自动类型转换。例如:
$a=‘1sjdkkfl’;
in_array( $a,array(1,2,3))的返回值会是真。


这一篇几乎照抄于Virink老师的笔记,,,真正的掌握还需要大量的使用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值