【RCE】---远程命令代码执行漏洞---day30
【RCE】---远程命令/代码执行漏洞---day30
一、漏洞成因
1、成因
2、漏洞形成条件
可控变量,漏洞函数
3、思维导图
二、演示案例
1、phpstudy本地测试
①源码:
代码执行:
下面为命令执行
②eval函数学习
配合上fwrite()写入文件等函数,利用。
③system函数学习
④exec函数学习
2、墨者靶场演练
①命令注入执行分析(黑盒)
进入之后有个ping命令
可控变量,执行函数,有可能产生命令执行漏洞。那么,我们首先看一下它的操作系统。浏览器抓包可以看到为ubuntu
那么我们测试在ip那里输入id,发现有检测,说不是ip。考虑使用linux执行多个命令——管道符“|”。检测返回值很快,判断是前端验证,右键源代码。
所以我们可以禁用本地js,或者直接抓包绕过。
linux读取使用cat tac等命令。
一、cat命令
对文件内容正序查看时,可以使用cat命令。还可以两多个文件输出到一个文件中。也可以新建一个文件。下面就介绍一下cat命令的用法。
cat filename 正序查看文件所有内容
cat -n filename 带行号正序查看文件所有内容
cat -b filename 忽略空白行,带行号正序显示文件所有内容
cat > filename 新建一个文件
cat filename1 filename2 > filename3 将filename1 filename2合并为filename3,此时filename3中只有filename1和filename2文件中的内容
cat filename1 filename2 >> filename3 将filename1 filename2文件的内容追加到filename3文件中
cat /dev/null > filename 清空filename文件中的内容
二、tac命令
tac倒过来就是cat,是将文件倒着显示,即文章最后一行显示在最上边。使用方法如下
tac filename
三、tail命令
tail命令是指定显示文件后若干行的内容。下面介绍一下具体使用方法。
1.tail -f filename 显示filename文件尾部内容,默认是10行,相当于tail -n 10,但是会不断刷新显示到屏幕上
2.tail -n number filename 显示filename文件尾部number行内容
3.tail -n +number filename 从第number行显示文件内容
四、head命令
head 显示前n行的内容
head -n number filename
②PHP代码分析溯源(白盒)
进去之后
可以看到先base64解密,在经过gzinflate。
把后面这一串输出出来看看是什么鬼。
REQUEST接收GET POST COOKIE三种方式提交。
注意此处的echo,就是解密之后的echo,是linux中的echo命令。---判断是代码执行还是命令执行。
③webmin已知漏洞利用
三、Javaweb-Struts2框架类RCE漏洞
1、墨者靶场
直接搜漏洞,exp找到flag
2、Struts2漏洞扫描工具。
四、PHP RCE漏洞常见函数
1、可以执行PHP脚本代码
2、命令执行函数(可以执行系统或者应用命令)
3、防御
直接把这些敏感函数禁用掉
五、一句话Webshell后门原理代码执行
其实菜刀 蚁剑等都是发数据包。@符号就是出错时候,不显示错误。