文章目录
一.Kali
1.kali成功拉取pikachu镜像并加载,成功访问pikachu
2.kali安装vulhub测试
cd到指定目录,用docker-compose up -d命令加载环境,加载成功
Dockers ps -a查询端口
通过对应端口成功访问,证明环境启动成功
二.作业
1.在vps安装docker和docker-compose
安装docker,查看版本证明安装成功
安装docker-compose
2. 上课涉及的vulhub中的漏洞复现,说明漏洞成因
(1)tomcat 弱口令/后台文件上传getshell
启动tomcat环境并查看端口
用对应的端口访问网址,进入tomcat,点击登录
由于其使用了弱口令tomcat做用户名密码,所以直接登录成功进入
上传一个打包成war的shell文件
上传成功
用蚁剑连接,url就是tomcat的网址和上传的shell的拼接,测试可以连接成功
漏洞成因:设置了简单的用户名密码;Tomcat支持在后台部署war文件,可以直接将[webshell](https://so.csdn.net/so/search?q=webshell&spm=1001.2101.3001.7020" \t "https://blog.csdn.net/weixin_46601374/article/details/_blank)部署到web目录下,只过滤了后缀名,对上传文件的内容没有过滤
(2)weblogic 弱口令/任意文件读取
Weblogic weak_password环境启动,查看端口号
进入网址,登录(用户名密码可以在weblogic常用弱口令查询
登录成功
由于此处存在任意文件下载漏洞,所以我们可以通过抓包修改访问路径来获得用户名和密码
登入后通过部署上传shell
默认路径
上传成功后用蚁剑连接,连接成功说明成功上传了木马
还可以通过前面生成的路径找到上传的shell
漏洞成因:设置了简单的用户名密码;只过滤了后缀名,对上传文件的内容没有过滤
(3)HTTPD换行解析
环境启动,并查看端口号
打开网址,直接上传php
上传失败
打开burp suite抓包,发送到重放器
用hex查看,找到文件上传的位置
增加一个字节
修改后直接上传就可以上传成功,打开可以查看php信息
漏洞成因:解析逻辑缺陷,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,但是却绕过限制上传的安全策略
(4)apache druid
启动环境,查看端口
打开拦截抓包start时的请求,发送到重放器
构造payload发送得到id
漏洞成因:Apache Druid 能够执行嵌入在各种类型的请求中的JavaScript 代码,所以我们可以嵌入JavaScript 代码来获得我们想要的内容
3.总结RCE漏洞的原理和利用条件及解决方案
(1)漏洞原理
-
输入验证不足:应用程序未能充分验证用户输入的内容,导致攻击者可以注入恶意代码。
-
缓冲区溢出:当应用程序处理数据时,如果缓冲区没有正确地检查大小,攻击者可以注入超出缓冲区容量的数据,从而覆盖内存中的其他数据,包括返回地址或执行代码。
-
不安全的函数调用:使用不安全的库函数,可能导致缓冲区溢出。
(2)利用条件
-
存在漏洞
-
缺乏安全控制
-
能够访问存在漏洞的页面
-
攻击的应用程序接受用户输入并将其作为代码执行的一部分
-
应用程序没有正确地验证、清理或转义用户输入,使得恶意代码被注入
-
应用程序在具有足够权限的上下文中执行,使得注入的恶意代码能够进行敏感操作
(3)解决方案
-
输入验证和清理:对用户输入进行严格的验证和清理,确保输入符合预期的格式和范围
-
避免使用危险函数:尽量避免使用可能导致 RCE 漏洞的危险函数,如 system()、exec() 等
-
权限控制:实施最小权限原则,确保应用程序在执行敏感操作时具有适当的权限
-
安全编码实践:遵循安全编码规范,如避免代码注入、SQL 注入等