Dvwa渗透测试之命令注入笔记

DVWA平台搭建+SQL注入实验详解 实现DVWA平台的搭建,为后续的SQL注入提供练习环境;进行SQL注入的练习,目的是了解因web应用程序对用户输入数据的合法性没有判断或过滤不严,而造成的危害,以便后续更好地掌握对其的防御手段,提高网络安全意识; 阅读详情
今天我们我们讨论下命令注入,在之前我已经就命令注入的理论注入的理论知识做了介绍,所以只是在简单说一下,不再缀述。
命令执行执行漏洞是指攻击者可以随意执行系统命令,它属于高危漏洞之一,也属于代码执行的一部分。

漏洞产生原因:

1.过多调用系统命令,或者说是在调用系统命令时不慎重。

2.在调用系统命令时过滤不严格。

3.在web开发中使用了一些不可控的函数或使用类不恰当,如eval()(动态执行php代码的函数)和java开发中的Runtime类。

4.动态函数的调用带来的隐患。

实验部分

初级测试

首先查看php源码

  <?php 

if( isset( $_POST[ 'Submit' ]  ) ) { 
    // Get input 
    $target = $_REQUEST[ 'ip' ]; 

    // Determine OS and execute the ping command. 
    if( stristr( php_uname( 's' ), 'Windows NT' ) ) { 
        // Windows 
        $cmd = shell_exec( 'ping  ' . $target ); 
    } 
    else { 
        // linux 
        $cmd = shell_exec( 'ping  -c 4 ' . $target ); 
    } 

    // Feedback for the end user 
    echo "<pre>{$cmd}</pre>"; 
} 

?>

经过分析可知服务器通过判断不同的操作系统来执行命令,并未做任何的过滤,下面我们开始测试。

首先测试下正常情况
这里写图片描述
开始注入
这里写图片描述
发现轻松注入成功,如果是在linux在可以输入www.baidu.com&&cat /etc/shadow 可见危害之大

中级测试

if( isset( _POST[ ‘Submit’ ]  ) ) {  
    // Get input
target = $_REQUEST[ ‘ip’ ];

// Set blacklist
$substitutions = array(
    '&&' => '',
    ';'  => '',
);

// Remove any of the charactars in the array (blacklist).
$target = str_replace( array_keys( $substitutions ), $substitutions, $target );

// Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
    // Windows
    $cmd = shell_exec( 'ping  ' . $target );
}
else {
    // *nix
    $cmd = shell_exec( 'ping  -c 4 ' . $target );
}

// Feedback for the end user
echo "<pre>{$cmd}</pre>";

}黑名单,对一些命令连接符进行了过滤,如:“&&”,“;”。但我们知道命令连接符不止这些,还有诸如:&,|,||等。

##开始注入
这里写图片描述

同样注入成功!

高级测试

查看源码

<?php 

if( isset( $_POST[ 'Submit' ]  ) ) { 
    // Get input 
    $target = trim($_REQUEST[ 'ip' ]); 

    // Set blacklist 
    $substitutions = array( 
        '&'  => '', 
        ';'  => '', 
        '| ' => '', 
        '-'  => '', 
        '$'  => '', 
        '('  => '', 
        ')'  => '', 
        '`'  => '', 
        '||' => '', 
    ); 

    // Remove any of the charactars in the array (blacklist). 
    $target = str_replace( array_keys( $substitutions ), $substitutions, $target ); 

    // Determine OS and execute the ping command. 
    if( stristr( php_uname( 's' ), 'Windows NT' ) ) { 
        // Windows 
        $cmd = shell_exec( 'ping  ' . $target ); 
    } 
    else { 
        // *nix 
        $cmd = shell_exec( 'ping  -c 4 ' . $target ); 
    } 

    // Feedback for the end user 
    echo "<pre>{$cmd}</pre>"; 
} 

?>

经过分析代码,我们发现这一次服务器端进行了严格的过滤,黑名单的过滤程度十分严格,似乎无懈可击,但我们仔细查看发现对‘| ’的过滤,后面有个空格,这是一个突破口,我们只需要在输入‘| ’时把后面的空格去掉就可以了绕过过滤了。
这里写图片描述

安全代码

<?php 

if( isset( $_POST[ 'Submit' ]  ) ) { 
    // Check Anti-CSRF token 
    checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' ); 

    // Get input 
    $target = $_REQUEST[ 'ip' ]; 
    $target = stripslashes( $target ); 

    // Split the IP into 4 octects 
    $octet = explode( ".", $target ); 

    // Check IF each octet is an integer 
    if( ( is_numeric( $octet[0] ) ) && ( is_numeric( $octet[1] ) ) && ( is_numeric( $octet[2] ) ) && ( is_numeric( $octet[3] ) ) && ( sizeof( $octet ) == 4 ) ) { 
        // If all 4 octets are int's put the IP back together. 
        $target = $octet[0] . '.' . $octet[1] . '.' . $octet[2] . '.' . $octet[3]; 

        // Determine OS and execute the ping command. 
        if( stristr( php_uname( 's' ), 'Windows NT' ) ) { 
            // Windows 
            $cmd = shell_exec( 'ping  ' . $target ); 
        } 
        else { 
            // *nix 
            $cmd = shell_exec( 'ping  -c 4 ' . $target ); 
        } 

        // Feedback for the end user 
        echo "<pre>{$cmd}</pre>"; 
    } 
    else { 
        // Ops. Let the user name theres a mistake 
        echo '<pre>ERROR: You have entered an invalid IP.</pre>'; 
    } 
} 

// Generate Anti-CSRF token 
generateSessionToken(); 

?>

通过分析代码,我们知道这段代码增加了Token机制的验证来预防csrf攻击,至于Token的原理前面我已经做了介绍,并且对输入的ip限制必须是纯数字,有效预防了命令注入。

DVWA实验 DVWA实验 一下都是基于low,mid,high级别的实验,为了方便叙述,提前在数据库中建了一个flag表 Brute Force 使用工具 :bp 使用材料:密码字典 bp的四种爆破攻击类型 第一种: Sniper标签 这个是我们最常用的,Sniper是狙击手的意思。这个模式会使用单一的payload【就是导入字典的payload】组。它会针对每个position中$$位置设置payload。这种攻击类型适合对常见漏洞中的请求参数单独地进行测试。攻击中的请求总数应该是position数量和payload 阅读详情

相关推荐

Kali渗透测试之DVWA系列(四)——使用Burp Suite进行SQL Injection(Blind)(SQL盲注,包括盲注脚本)

目录: 一、SQL盲注 SQL盲注与SQL注入的区别; SQL盲注的过程; 二、实验环境 三、实验过程 基于布尔值的盲注; 基于时间的盲注; 一、SQL盲注简介 1、SQL盲注: 盲注:SQL Injection(Blind),即SQL盲注,目标只会回复是或不是,没有详细内容; 注入:可以查看详细的内容 2、手工盲注思路: 手工盲注的过程,就像你和机器人聊天一样,这个机器人知道的...

weixin_45116657的博客 6555

简单DVWA实验

一、暴力破解 brute-force(low) 实验目的:爆破密码,登陆成功 开始状态: 首先我们通过dvwa页面向dvwa服务器(自己搭建),发送登录密码,然后使用wireshark抓包,查看密码,在wireshark上面选择发送给dvwa的服务器的网卡,进行抓包,得到登录密码。 http过滤->选择发送dvwa的http协议->右击追踪流->http流 我们可以替换username和password选项中的值,来达到暴力破解的目的。使用burp suit软件,捕获http协议并多次修

weixin_45761101的博客 1635

渗透测试漏洞平台DVWA环境安装搭建及初级SQL注入

一:简介       DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。  一共有十个模块:       暴力(破解)、命令行注入、跨站请求伪造、文件包含、文件上传、不安全的验证码、SQL注入、SQ...

追风筝的孩子 5970

dvwa下命令行注入

dvwa下命令行注入 在命令行执行时过滤不完全时会导致命令行注入 常用连接符 &&与&:前后命令都执行 |:执行后面的命令,前面命令不执行 low: 输入一个ip,可以看出是ping一下ip payload:127.0.0.1 | ls -an medium 过滤了&&,&和|都没有过滤 high 看别人的wp后,发现"| "有个空格。。。所以直接把空格去了就行了 命令注入绕过方式 https://blog.youkuaiyun.com/weixin_395

qq_44159634的博客 2534

DVWA 实验报告:2、命令注入

本节主要讲解 DVWA_v1.9 中的命令注入部分。 覆盖全部四种安全级别,从源码分析的角度上进行攻击测试。 适合新手小白。

看那白熊 3455

DVWA渗透测试靶场简介及搭建

DVWA靶场简介及搭建

m0_54899775的博客 3205

渗透测试--DVWA命令注入

DVWA 命令注入:利用各种调用系统命令的web应用,通过命令拼接、绕过黑名单等方式实现在服务端实现想要实现的系统命令。 如何配置登陆看我的burpsuite爆破文章中就有 这次我分为linux和windows两个版本登录时分别把登陆网址的IP改为目标系统的IP即可 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应...

qq_45070118的博客 2116

构建DVWA渗透测试平台指南

渗透测试是一种安全测试方法,用来评估计算机网络或系统防御安全漏洞的能力。它模拟黑客攻击,帮助组织了解如何保护自己免受网络攻击。渗透测试可以手动进行,也可以使用自动化工具执行,以发现潜在的安全问题。DVWA(Damn Vulnerable Web Application)是一款专为安全专家、渗透测试人员、网络安全爱好者以及Web应用开发人员设计的教育性工具。

weixin_35751412的博客 1120

DVWA靶场通关指南之爆破命令注入(Command Injection)篇

本篇文章是DVWA靶场通关指南之爆破命令注入笔记。命令注入(Command Injection)是一种通过向应用程序注入恶意命令来执行非授权系统指令的攻击技术。攻击者利用输入参数或数据传输中的漏洞,将系统命令拼接到正常操作中,导致服务器执行恶意指令。

2301_80845279的博客 3353

GPS从入门到放弃(十七) --- 对流层延时

GPS从入门到放弃(十七) — 对流层延时 对流层概念 对流层(Troposphere)地球大气层靠近地面的一层。它同时是地球大气层里密度最高的一层,它蕴含了整个大气层约75%的质量,以及几乎所有的水蒸气及气溶胶。 对流层的下界与地面相接,上界高度随地理纬度和季节而变化,在低纬度地区平均高度为1718公里,在中纬度地区平均为1012公里,在高维度地区平均为8~9公里,并且夏季高于冬季。 卫星导航...

tyst08的专栏 1万+

计算机控制液压同步顶升系统,PLC四点多点同步顶升系统,同步液压顶升系统

PLC同步顶升系统系统可分为5个部分:液压泵站、PLC计算机控制系统、液压终端、位移压力检测与人机界面操作系统,位移同步精度1mm,同步控制点数:4,8,12,16,20,40,80,99;产品特点:高速置零、低速顶升,升降速度可以任意控制;液压千斤顶内置式(或外置)位移、压力传感器、均载阀,保证了顶升系统在恶劣工作环境下的高可靠性;均载阀的过载保护功能,避免了多缸顶升时常见的胀缸事故;先进的进油...

weixin_30093045的博客 1432

使用dvwa进行SQL注入的练习

SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是...

不忘初心,护天下安全! 1万+

MoveIt避坑指南:UR机械臂编程中常见的5个错误及解决方法

本文针对UR机械臂与MoveIt集成开发中的常见问题,总结了五个典型错误及其解决方案,包括关节限位设置、坐标系混淆、规划器选择、运动学求解器配置以及线程资源管理。重点分析了正逆运动学求解错误的原因,并提供了调整容忍度、显式指定坐标系、选择合适规划器及优化IK配置等实用代码示例,帮助开发者提升编程效率与系统稳定性。

root9的博客 433

【渗透测试-web安全】DVWA-命令注入

【渗透测试-web安全】DVWA-命令注入一、实操二、怎么解决没有回显的命令注入延时注入远程请求三、防范命令注入 一、实操 设置low等级 使用功能 我们发现功能是直接使用输入IP地址系统反馈ping命令的结果 首先测试 127.0.0.1 使用命令拼接:127.0.0.1&&dir 很简单就实现了命令注入,当然这是简单的等级,其他级别自行尝试,有问题可以私信我的CS...

harry_c的博客 859

5种隐藏代码到图片的实用技巧:从Notepad++到Linux命令全解析

本文详细解析了5种将代码或文本隐藏到图片中的实用数据隐写技巧。从Notepad++尾部追加、Windows命令行合并,到编辑图像元数据、使用十六进制编辑器,再到Linux的cat/dd命令,全面覆盖了从图形界面到命令行的工程化实践方法,帮助开发者和安全研究人员掌握隐蔽信息传输与存储的核心技术。

hh234的博客 353

【ComfyUI】【Nunchaku】【diffusers报错解决】秋叶整合包安装 Nunchaku 报错的解决方法

最近在折腾 AI 绘图时,我尝试在秋叶的 ComfyUI 整合包中安装 `ComfyUI-nunchaku` 插件(版本 0.3.3),结果启动后直接报错,提示无法从 `accelerate.utils.memory` 中导入 `clear_device_cache`,让我一度怀疑插件是否兼容。查阅了一堆 issue 和源码之后,总算找到了原因和解决方法。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1852

命令注入: DVWA级别分别设置Low、Medium、High、Impossible 进行命令注入

2.2 步骤 实现此案例需要按照如下步骤进行。 步骤一:DVWA级别设置Low 1)访问DVWA,选择Low级别,然后点击“Command Injection”,如图-15所示 图-15 2)输入192.168.111.142并提交,正常显示结果,如图-16所示 图-16 3)输入192.168.111.142&&net user并提交,爆出了用户名,如图-17所示 图-17 步骤二:DVWA级别设置Medium 1)访问DVWA,选择Medium级别,然后点

彭淦淦的博客 5861

路径规划 | 图解Informed RRT*算法(附ROS C++/Python/Matlab仿真)

Informed RRT*算法针对RRT*算法进行了采样优化,用椭圆采样代替全局均匀采样,避免了RRT*算法搜索树上产生过多冗余分支的缺陷。本文图解Informed RRT*原理,并提供ROS C++/Python/Matlab三种实现加深理解

FRIGIDWINTER的博客 7484

命令注入_[DVWA学习笔记]命令注入Command Injection

Low: 命令注入即通过在原本输入框中拼接系统命令的方式,在服务器上执行对应的指令。 在存在执行系统命令的函数,如php中的system、exec、shell_exec等,用户可以传入命令的参数的时候,将恶意的命令拼接其中,就可以造成命令注入攻击。 以DVWA中最简单(LOW)级别来演示: 该处设置一个ping功能,输入一个IP地址即可以从服务器对该地址执行ping操作。源代码如下: target...

weixin_39646405的博客 222

API Streaming Failed 400 <400>InternalError.Algo.InvalidParameter input content must be a string解决方案

本文主要介绍了API Streaming Failed 400 <400> InternalError.Algo.InvalidParameter input content must be a string解决方案,希望能对使用vscode中cline的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

DVWA-WEB漏洞系列之SQL注入

用户输入数据为 1’ and 1=1#,这时SQL语句发生变化,在原有查询完成后会判断 1=1,如果判断正确则才会有输出[#作用是注释(移除)后续SQL语句]在用户输入中依次增加order by后面的数据,当在输入为 1’ order by 3#时网页出现报错,证明该数据库有2列/字段。攻击者在HTTP请求中注入恶意的SQL代码,服务器使用参数构建数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行。防御SQL注入:使用PDO,配合正确的过滤和sql语句就可避免SQL注入漏洞的产生。...

woo233的博客 4178

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

DVWA中SQL注入(LOW)

SQL注入流程 面对一个查询条件的web网页,我们需要做以下的事情 1.判断是否存在注入,注入是字符型还是数字型 2.猜解SQL查询语句中的字段数 3.确定显示的字段顺序 4.获取当前数据库 5.获取数据库中的表 6.获取表中的字段名 7.下载数据 这里我们用hackbar,方便我们操作。 http://192.168.5.155:85/vulnerabilities/sqli/?id=1&Submit=Submit# 利用hackbar后我们在加黑处进行命令修改,以达到手工注入的目的 1.判断是否

weixin_46831054的博客 3452

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

渗透测试实验_使用DVWA进行SQL手动注入 SQL手动注入的基本步骤 安全等级Low Medium High

文章目录SQL手动注入1. 前期数据准备2. 前期实验准备3. SQL手动注入的预备知识4. SQL手动注入的基本步骤5. 实现SQL注入6. Low等级7. Medium等级8. High等级9. Impossible等级 SQL手动注入 1. 前期数据准备 查看DVWA数据库的信息 第一步:打开Windows2003虚拟机后,启动phpStudy 第二步:进入MySQL 第三步:查看数据库 查看库名 选择数据库“dvwa”后,查看其中的表名 查看“dvwa“库中users

weixin_47133613的博客 6667

DVWA——SQL注入——sqlmap实现

网络安全-sqlmap学习笔记 sqlmap上面的总连接

weixin_46709219的博客 1816

【渗透测试-web安全】DVWA-SQL注入

【渗透测试-web安全】DVWA-SQL注入一、登录系统二、内容分析三、实操四、内容进阶 一、登录系统 登录到系统设置好对应的安全级别,我们点击SQL打开,任意输入一个ID序号反馈一下内容: 二、内容分析 我们对内容进行分析可以知道我们输入userID之后系统会自动入库查找对应的用户并反馈用户的数据到前端 我们可以猜测系统可能使用的SQL语句: SSELECT * FROM user WHE...

harry_c的博客 853
上一篇: 谈Token验证对CSRF的意义
下一篇: 文件包含漏洞浅析
JBlock
博客等级 码龄9年 189粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值