代码执行漏洞

注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!!

一、代码执行漏洞原理

代码执行:用户输入的数据被当做后端代码进行执行

<?php eval($_REQUEST[8]?)>

        RCE(远程命令或者代码执行)

        特指:远程的代码执行、代码执行

渗透的最终情况可以实现执行命令后者代码都属于RCE

学习代码审计:

        1.学思路

                通读全文

                关键函数定位

        2.学函数

二、造成代码执行函数解析

1、eval($a)        

        eval是代码执行用的最多的,他可以多行执行        eval($_REQUEST[8])

        eval('echo 2; phpinfo();echo 1;');

2、assert($a)

        assert只能单行执行        assert($_REQUEST[8])

        assert('phpinfo()')

        assert单行 =>  扩展到多行

        1.assert(eval(phpinfo();echo 1))        //eval代指多行执行的函数

        2.file_put_contents()        //写一个php文件

3、preg_replace()

        正则替换  /e  特殊修饰符要去替换代码执行,单行执行

        <?php  echo  preg_replace( '/a/e',$_REQUEST[8]),'abc'  ?>

        在abc中匹配a如果匹配到了执行中间的函数,需要匹配到

        过滤规则中可能遇到

4、create_function()

        $a = create_function('$id','echo  $id;')        //匿名函数,可多行执行

        程序员偷懒用的,有一些函数临时用一用,开发名字都懒得写,而且为了精简代码,他们用匿名函数

        函数定义不执行,调用才执行

        突破定义即可产生代码执行        传参传入 ?8= } echo  phpinfo();  //

5、array_map(要调用的函数,要传入的值)

        回调函数,调用某个函数,不止一个回调函数。

        将数组依次放到回调函数中执行,可多行执行

        重点:eval不是函数,它是php的特殊写法

6、"${phpinfo()}"

        双引号的二次解析,需要高版本才行>5.6

        安装网站的时候,填写的配置文件。

三、代码审计找漏洞

不看代码,看功能找对应的漏洞

        代码不会乱写,都是有需求

进入后台 -> 任意文件删除漏洞 -> 删除锁文件install.lock -> 重装在输入数据库的地方用了二次解析漏洞 -> 拿到shell

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值