bWAPP----OS Command Injection
OS Command Injection
界面:

给一个域名,它帮你返回DNS
代码:
1 <div id="main">
2
3 <h1>OS Command Injection</h1>
4
5 <form action="<?php echo($_SERVER["SCRIPT_NAME"]);?>" method="POST">
6
7 <p>
8
9 <label for="target">DNS lookup:</label>
10 <input type="text" id="target" name="target" value="www.nsa.gov">
11
12 <button type="submit" name="form" value="submit">Lookup</button>
13
14 </p>
15
16 </form>
17 <?php
18
19 if(isset($_POST["target"])) //获取域名,如果存在输入
20 {
21
22 $target = $_POST["target"];
23
24 if($target == "") //如果域名为空
25 {
26
27 echo "<font color=\"red\">Enter a domain name...</font>"; //请输入域名
28
29 }
30
31 else
32 {
33
34 echo "<p align=\"left\">" . shell_exec("nslookup " . commandi($target)) . "</p>";
35
36 }
37
38 }
39
40 ?>
41
42 </div>
shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。
防御部分
1 function commandi($data)
2 {
3
4 switch($_COOKIE["security_level"])
5 {
6
7 case "0" :
8
9 $data = no_check($data);
10 break;
11
12 case "1" :
13
14 $data = commandi_check_1($data);
15 break;
16
17 case "2" :
18
19 $data = commandi_check_2($data);
20 break;
21
22 default :
23
24 $data = no_check($data);
25 break;
26
27 }
28
29 return $data;
30
31 }
32
33 ?>
1.low
low级别没有过滤
加一个;就能实现恶意


2.medium
1 function commandi_check_1($data)
2 {
3
4 $input = str_replace("&", "", $data);
5 $input = str_replace(";", "", $input);
6
7 return $input;
8
9 }
过滤了&和;将他们替换为空
用 | 可以绕过

3.high
1 function commandi_check_2($data)
2 {
3
4 return escapeshellcmd($data);
5
6 }
escapeshellcmd函数功能:
反斜线(\)会在以下字符之前插入: &#;`|*?~<>^()[]{}$\, \x0A 和 \xFF。 ' 和 " 仅在不配对儿的时候被转义。 在 Windows 平台上,所有这些字符以及 % 和 ! 字符都会被空格代替。
bWAPP----OS Command Injection的更多相关文章
- bWAPP----HTML OS Command Injection - Blind
OS Command Injection - Blind 先上代码,他判断了win还是linux然后进行了ping但是结果并没有返回. 1 <div id="main"> ...
- Portswigger web security academy:OS command injection
Portswigger web security academy:OS command injection 目录 Portswigger web security academy:OS command ...
- DVWA之命令注入(command injection)
Command injection就是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的 LOW 无论是Windows还是Linux,都可以使用&&连接多个命令 执行 ...
- DVWA Command Injection 通关教程
Command Injection 介绍 命令注入(Command Injection),对一些函数的参数没有做过滤或过滤不严导致的,可以执行系统或者应用指令(CMD命令或者bash命令)的一种注入攻 ...
- DVWA Command Injection 解析
命令注入,即 Command Injection.是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的. 在Web应用中,有时候会用到一些命令执行的函数,如php中system.ex ...
- DWVA-命令注入漏洞闯关(Command Injection)
前言 Vulnerability: Command Injection LOW级别 代码: <?php if( isset( $_POST[ 'Submit' ] ) ) { // 几首一个变量 ...
- DVWA之Command Injection
Command Injection Command Injection,即命令注入,是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的.PHP命令注入攻击漏洞是PHP应用程序中常见 ...
- DVWA(四):Command Injection 全等级命令注入
Command Injection : 命令注入(Command Injection),对一些函数的参数没有做好过滤而导致用户可以控制输入的参数,使其恶意执行系统命令或这cmd.bash指令的一种注入 ...
- DVWA靶场之Command Injection(命令行注入)通关
Command Injection Low: <?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = $_REQUES ...
随机推荐
- java安全编码指南之:ThreadPool的使用
目录 简介 java自带的线程池 提交给线程池的线程要是可以被中断的 正确处理线程池中线程的异常 线程池中使用ThreadLocal一定要注意清理 简介 在java中,除了单个使用Thread之外,我 ...
- 【Azure DevOps系列】Azure DevOps使用Docker将.NET应用程序部署在云服务器
Docker持续集成 本章我们要实现的是通过我们往代码仓库push代码后,我们将每次的push进行一次docker自动化打包发布到docker hub中,发布到之后我将进行部署环节,我们将通过ssh方 ...
- java-try catch中return在finally之前 还是之后执行
finally语句在return语句执行之后return返回之前执行的. finally块中的return语句会覆盖try块中的return返回. 如果finally语句中没有return语句覆盖返回 ...
- Navicat连接远程MySQL8.0数据库
前言: 如果你有一台服务器,并且安装了Mysql8.0及以上版本数据库.此时想通过本地Navicat软件连接远程服务器上的mysql数据库.那么接下来你就要完成以下准备工作: 登录远程服务器上的数据库 ...
- layer弹窗动态改变标题
1.利用layer弹出iframe层(type=2) 1 function ShowKJCX(results) { 2 ly = layer.open({ 3 type: 2, 4 id:" ...
- python 作业 用python实现 mysql查询结果导出带列名
1 import pandas as pd 2 import numpy as np 3 import matplotlib as mpl 4 import matplotlib.pyplot as ...
- nb-iot模块实现联网的威力体现
窄带物联网(nb-iot)是一种越来越流行的方法,用于创建具有持久电池寿命,快速和功能丰富的互连设备系统.自2016年创建nb-iot以来,nb-iot设备和nb-iot模块中使用的技术得到了迅速发展 ...
- Jmeter 函数助手对话框简单使用
第一步 打开Jmeter,Tools > 函数助手对话框 下拉框选择_CSVRead ,如下图所示: 第二步: 准备一份测试数据,保存在本地盘符里,数据如下图所示: 第三步,填数据, (1) ...
- 配置JSTL 解决错误:org.apache.jasper.JasperException
在IDEA中SSM项目开发中, 在TomCat部署ssm项目时,JSTL的错误 错误如下: 1 org.apache.jasper.JasperException: The absolute uri: ...
- numpy数组运算
一.四则运算 (以此为例) 1.加法 2.减法 3.乘法 4.除法 5.幂运算 二.比较运算 (以此为例) 1.< > 2.>= <= 3.== != ...