关于RCE(远程代码执行漏洞)的学习1

        原理:因为应用系统给了用户提供指定的远程命令的操作,常见的比如:路由器、防火墙、入侵检测等设备的web管理界面上。一般会给用户提供一个ping操作的web界面,用户通过从这些界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。 因此,如果设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交的命令,会反过来控制应用系统,当它们在后台进行执行时,甚至会控制整个后台服务器。

系统命令执行函数

system()能将字符串作为OS命令执行,且返回命令执行结果(即它自带输出功能,如果没有对该函数的参数进行有效准确过滤,其参数将有可能被用于注入有害代码);

exec()能将字符串作为OS命令执行,但是只返回执行结果的最后一行(约等于无回显)

shell_exec():能将字符串作为OS命令执行,但是它需要配合输出结果命令。

后面的是我学习的时候找到的,我也没用过,也不熟悉。

passthru():能将字符串作为OS命令执行,只调用命令不返回任何结果,但把命令的运行结果原样输出到标准输出设备上;

popen():打开进程文件指针

proc_open():与popen()类似

pcntl_exec():在当前进程空间执行指定程序;

反引号``:反引号``内的字符串会被解析为OS命令;

(OS命令注入:当应用在调用这些系统命令函数时,如果将用户的输入作为系统命令的参数拼接到命令中,在没有过滤用户输入的情况下,就会造成命令执行漏洞。)

还有代码执行函数:

eval():将字符串作为php代码执行;

assert():将字符串作为php代码执行;

preg_replace():正则匹配替换字符串;

create_function():主要创建匿名函数;

call_user_func():回调函数,第一个参数为函数名,第二个参数为函数的参数;

call_user_func_array():回调函数,第一个参数为函数名,第二个参数为函数参数的数组;

可变函数:若变量后有括号,该变量会被当做函数名为变量值(前提是该变量值是存在的函数名)的函数执行;

管道符:

管道符实例描述
;A;B无论真假,A与B都执行
&A&B无论真假,A与B都执行
&&A&&BA为真时才执行B,否则只执行A
|A|B显示B的执行结果
||A||BA为假时才执行B,否则只执行A

然后是可以代替空格的:<,<>,%20,%09,$IFS$9,${IFS}

        总而言之还是非常多的,短时间内想掌握也不现实,这是大佬的博客,后面应该也是写在大佬发的blog里面学的内容

        纯小白,如有错误,欢迎指正

  • 20
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值