概述
注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!!
一、代码执行漏洞原理
代码执行:用户输入的数据被当做后端代码进行执行
<?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
最后
以上就是怕黑台灯为你收集整理的代码执行漏洞的全部内容,希望文章能够帮你解决代码执行漏洞所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复