第八天作业

第八天作业

1.在vps安装docker和docker-compose

2.上课涉及的vulhub中的漏洞,全部复现,同时说明漏洞成因

3.总结RCE漏洞的原理和利用条件及解决方案

一、在vps安装docker和docker-compose

1.安装docker

以Linux为例,其他Linux发⾏版操作基本⼀致。

 apt install docker.io -y

在这里插入图片描述

安装完成后,需要启动Docker服务。使⽤以下命令来启动Docker服务,并将其设置为开机⾃启:

systemctl start docker 
systemctl enable docker

由于⽹络原因,下载Docker镜像时可能会很慢。为了加快下载速度,你可以配置Docker加速器。编辑或创建 /etc/docker/daemon.json ⽂件,并添加以下内容

{ 
 "registry-mirrors": ["http://hub-mirror.c.163.com"] 
}

2.安装docker-compose

Docker Compose是⼀个⽤于定义和运⾏多容器Docker应⽤程序的⼯具。可以直接通过通过apt命令下载docker-compose

apt-get install docker-compose

在这里插入图片描述

二、vulhub漏洞复现

1.Tomcat弱口令及后台getshell 漏洞复现

先在vulhub中打开漏洞环境,进入漏洞目录,输入docker-compose up -d

在这里插入图片描述

输入docker ps查看该漏洞环境对应的端口号,查看到端口号为8080

在这里插入图片描述

进入到漏洞环境tomcat,此处尝试用tomcat弱口令进行登录,也可以使用爆破工具进行登录

在这里插入图片描述

找到漏洞存在点,此处可以上传一个war包,war是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来讲,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。

在这里插入图片描述

创建一个shell.jsp木马文件,使用命令生成war包,并将该war包上传到tomcat后台。

jar -cvf shell.war shell.jsp

在这里插入图片描述

使用蚁剑,添加数据,对木马文件进行连接。

在这里插入图片描述

漏洞成因

tomcat使用了默认密码,存在弱口令漏洞。同时tomcat没有对上传的war包内容进行检查。

2.weblogic弱口令/任意文件读取

弱口令

打开漏洞环境,并查看端口号

在这里插入图片描述

使用ip+端口/console访问登录页面

在这里插入图片描述

此处存在弱口令漏洞,可以使用默认口令weblogic/Oracle@123进行登录

常见弱口令:

system:password weblogic:weblogic admin:secruity
joe:password mary:password system:sercurity
wlcsystem: wlcsystem weblogic:Oracle@123

在这里插入图片描述

任意文件读取

任意文件读取

http://47.97.58.250:7001/hello/file.jsp?path= #文件路径

例如将文件路径改为/etc/passwd,即可读取到敏感文件。

在这里插入图片描述

漏洞成因

环境存在任意文件读取漏洞,服务器没有对用户的输入做过滤和限制,导致可利用此漏洞读取任意文件。

3.apache换行解析/druid RCE

3.1 apache换行解析

进入vulhub下httpd目录,打开CVE-2017-15715漏洞环境

使用命令docker-compose up -d打开环境

在这里插入图片描述

访问目标网页,使用冰蝎生成php木马文件进行上传,可以发现提示bad file,上传失败

在这里插入图片描述

通过修改后缀名为png文件,再通过burp suite进行抓包再修改文件名后缀,进行重放,可以发现仍然提交失败,猜测是后端进行验证文件类型。

在这里插入图片描述

了解到解析php文件时,如果文件名后缀有一个换行符\x0a,apache仍然会将其作为php进行解析,于是尝试在上传文件时,在后缀php后加上换行符进行解析,在burpsuite中查看请求体的十六进制,找到上传点,在后面加上0a。

在这里插入图片描述

重放后可以发现上传成功,此处再用冰蝎进行连接。

在这里插入图片描述

漏洞成因

apache在解析php文件时,如果后缀名有换行符\x0a,则会当作正常php文件进行解析,导致了apache换行解析漏洞。

3.2 druid RCE

进入vulhub下apache-druid目录,打开CVE-2021-25646漏洞环境

使用命令docker-compose up -d打开环境

在这里插入图片描述

进入到环境界面:

在这里插入图片描述

进入Druid console控制台界面

在这里插入图片描述

添加以下内容:

Base directory: quickstart/tutorial/

File filter: wikiticker-2015-09-12-sampled.json.gz

在这里插入图片描述

打开burpsuite进行抓包,点击apply,修改post请求内容,成功执行了js中的命令

在这里插入图片描述

漏洞成因

Druid是一个常用的数据库连接池组件,在某些版本中,由于未对外部输入进行充分验证和过滤,攻击者可以通过构造恶意请求,利用Druid的某些功能执行任意代码,从而控制服务器。

三、总结RCE漏洞的原理和利用条件及解决方案

1.RCE漏洞原理

代码执行漏洞

传入php代码到执行函数的变量,客户端可控,并且没有做严格的过滤,攻击者可以随意输入他想执行的代码,并且这些代码在服务端执行

命令执行漏洞

应用在调用这些函数执行系统命令的时候,如果将用户输入作为系统命令的参数拼接到命令行中,如果没对用户的输入进行过滤的话,就会造成命令执行漏洞

2.利用条件

1.开发人员调用了能够执行代码命令或者系统命令的函数

例如:

代码执行漏洞相关函数

eval() 将字符串当作php代码执行
assert() 将字符串当作php代码执行
preg_replace() 将字符串正则匹配后替换
call_user_func() 回调函数
array_map() 回调函数

系统命令执行漏洞相关函数

system() 将字符串当作os命令执行
exec() 将字符串当作os命令执行,但只输出命令执行的最后一行,约等于没有回显
shell_exec() 将字符串当作os命令执行
passthru() 将字符串当作os命令执行
popen() 能过执行os命令,相当于把命令执行结果输出到一个文件内

2.用户输入的数据被用作这些函数的参数,并且这些参数没有经过严格的过滤或验证。

3.应用程序有足够的权限去执行一些敏感操作

3.解决方案

1.尽量不要使用eval等危险函数的使用,如果要是使用则要进行严格的过滤
2.preg_replace()函数放弃使用/e修饰符
3.尽量减少危险函数的使用,并在php.ini配置文件中disable_functions中禁用
disable_functions=system,assert
4.参数值尽量用引号包裹,并在拼接前调用addslashes() 进行转义
一些敏感操作

第八章的作业主要是关于字符串和列表、元组的操作。对于字符串,可以使用索引和切片来获取和修改字符串中的字符,还可以使用内置函数,如len()来获取字符串的长度,以及count()、index()等函数来统计字符出现的次数和找出字符的位置。 对于列表和元组,可以使用索引和切片来获取和修改列表和元组中的元素,还可以使用内置函数,如len()来获取列表和元组的长度,以及count()、index()等函数来统计元素出现的次数和找出元素的位置。 作业可能包括以下内容: 1. 使用字符串的切片和索引操作,截取出指定的子字符串; 2. 使用字符串的内置函数,如count()、index()等来统计指定字符的出现次数和位置; 3. 使用列表的索引来获取和修改指定的元素; 4. 使用列表的切片操作,截取出指定的子列表; 5. 使用列表的内置函数,如append()、count()等来添加元素和统计指定元素的出现次数; 6. 使用元组的索引来获取指定的元素; 7. 使用元组的切片操作,截取出指定的子元组; 8. 使用元组的内置函数,如count()、index()等来统计指定元素的出现次数和位置。 为了完成第八章的作业,我们需要熟悉字符串、列表和元组的基本操作和内置函数的使用。可以通过阅读和理解教材中的相关知识点和示例代码,然后按照作业的要求进行编写和测试。编写过程中需要注意细节和语法的正确性,同时也可以参考官方文档和其他相关资料进行查找和学习。完成作业后,可以将代码保存并运行,然后检查输出结果是否符合预期。如果有错误或不清楚的地方,可以再次阅读教材或者寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值