基础漏洞—RCE

一,漏洞原理

代码执行:在php中的表现是exec()等函数把用户输入的数据不严格过滤就当作了代码来执行
命令执行:php中就是shell_exec等函数把用户输入的数据当作命令执行
本质:其实就是把用户输入的数据,在不进行严格过滤的情况下,当成了命令或者代码来执行。

二,危险函数

system()
passthru()
exec()
shell_exec()
popen()
proc_open()
pcntl_exec()

修复方案

php.ini的disable_functions中禁用相关危险函数

三,靶场

DVWA

1.low(无校验)
简单的输入了127.0.0.1后,提示shell_exec被禁用。
在这里插入图片描述百度发现,要在php.ini配置文件把disable_functions = exec , popen, system 把这个里面的exec去掉,在重启下apache。成功执行
在这里插入图片描述
2.medium(过滤&&和;)
看关键代码
在这里插入图片描述
但是用&就可以绕过,因为基于黑名单过滤,不严格
在这里插入图片描述3.high
首先看下代码
在这里插入图片描述
经过测试,会过滤数组中出现的所有字符。尝试了很久都没有找到banf,最后屈服了去看wp,发现过滤的时候是’| ‘,多了一个空格,接下来就好办了
在这里插入图片描述
可以看到没有空格也能执行,看来以后看源码的时候要细心啊!
4.impossble
看下代码
在这里插入图片描述
发现他是先以’.'把参数进行分割,然后再分别验证4个参数是否为数字。。应该是真的没法绕了。。

Pikachu

1.exec"eval"
看下核心代码
在这里插入图片描述
if语句检查是否传入参数,@eva($_POST[‘txt’])是把txt参数的内容当作php代码执行,@是忽略错误。可以看出无任何过滤,直接执行就行,但是注意txt的内容要符合php的语法payload=phpinfo();
在这里插入图片描述

CTFHub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值