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的更多相关文章

  1. bWAPP----HTML OS Command Injection - Blind

    OS Command Injection - Blind 先上代码,他判断了win还是linux然后进行了ping但是结果并没有返回. 1 <div id="main"> ...

  2. Portswigger web security academy:OS command injection

    Portswigger web security academy:OS command injection 目录 Portswigger web security academy:OS command ...

  3. DVWA之命令注入(command injection)

    Command injection就是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的 LOW 无论是Windows还是Linux,都可以使用&&连接多个命令 执行 ...

  4. DVWA Command Injection 通关教程

    Command Injection 介绍 命令注入(Command Injection),对一些函数的参数没有做过滤或过滤不严导致的,可以执行系统或者应用指令(CMD命令或者bash命令)的一种注入攻 ...

  5. DVWA Command Injection 解析

    命令注入,即 Command Injection.是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的. 在Web应用中,有时候会用到一些命令执行的函数,如php中system.ex ...

  6. DWVA-命令注入漏洞闯关(Command Injection)

    前言 Vulnerability: Command Injection LOW级别 代码: <?php if( isset( $_POST[ 'Submit' ] ) ) { // 几首一个变量 ...

  7. DVWA之Command Injection

    Command Injection Command Injection,即命令注入,是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的.PHP命令注入攻击漏洞是PHP应用程序中常见 ...

  8. DVWA(四):Command Injection 全等级命令注入

    Command Injection : 命令注入(Command Injection),对一些函数的参数没有做好过滤而导致用户可以控制输入的参数,使其恶意执行系统命令或这cmd.bash指令的一种注入 ...

  9. DVWA靶场之Command Injection(命令行注入)通关

    Command Injection Low: <?php if( isset( $_POST[ 'Submit' ]  ) ) { // Get input $target = $_REQUES ...

随机推荐

  1. C# 微信共享收货地址 V1.6

    //使用微信共享收货地址在跳转到当前页面的路径上必须要包含Code和state这两个获取用户信息的参数//例如 <a href="ProductOrder.aspx?OID=<% ...

  2. MySQL数据库基础-1

    数据库原理 数据时代 信息创造价值 -结构化数据 关系完整,密切 -非结构化数据 数据散乱,相互关系不大 -半结构化数据 XML HTML 也不是完全没有结构,也不是特别规矩 MySQL适合管理结构化 ...

  3. HTML轮播(1)

    前言 要想实现轮播,我们就得先把最基础的功能实现,那就是滚动,实现了滚动后就可以继续扩展,完成更多想要的效果 CSS <style> #LB { width: 100%; height: ...

  4. oracle oracle sqldeveloper 12505 创建连接失败

    ref:http://blog.csdn.net/yangwenxue_admin/article/details/45062557

  5. Redis中的跳表

    date: 2020-10-15 14:58:00 updated: 2020-10-19 17:58:00 Redis中的跳表 参考网址1 参考网址2 redis 数据类型 zset 实现有序集合, ...

  6. Python作业1

    name = " aleX" # 1 移除 name 变量对应的值两边的空格,并输出处理结果 print(name.strip()) # 2 判断 name 变量对应的值是否以 & ...

  7. 当eclipse调用tomcat的时候发生了什么?

    下午在看<tomcat权威指南>的时候想到了这么一个问题:当我在eclipse里调用本机上的一个tomcat运行一个web项目的时候,都发生了什么? 之前做本科毕设的时候用的是MyEcli ...

  8. JavaScript实现基于对象的队列

    class Queue { constructor() { this.count = 0; this.lowestCount = 0; this.items = {}; } enqueue(eleme ...

  9. MongoDB简介---MongoDB基础用法(一)

    Mongo MongoDB是一个基于分布式文件存储的数据库.MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB 将数据存储为一 ...

  10. 20202427-张启辰《Python3初学:罗马数字转阿拉伯数字》

    目录 20202427-张启辰<Python3初学:罗马数字转阿拉伯数字> 1.规则 2.局限性 3.Python3解决 20202427-张启辰<Python3初学:罗马数字转阿拉 ...