ctfshow之无字母数字的命令执行

admin 2024年6月26日10:21:17评论17 views字数 1326阅读4分25秒阅读模式

点击蓝字关注我们

无字母数字的命令执行

ctfshow web入门 55

题目:

<?php

/*
# -*- coding: utf-8 -*-
# @Author: Lazzaro
# @Date:   2020-09-05 20:49:30
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-07 20:03:51
# @email: [email protected]
# @link: https://ctfer.com

*/

// 你们在炫技吗?
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/;|[a-z]|`|%|x09|x26|>|</i"$c)){
        system($c);
    }
}else{
    highlight_file(__FILE__);


该题是在黑名单中添加了字母以及常见绕过符号。

解题需要了解一下两个知识点。

  1. shell下可以利用.来执行任意脚本
  2. Linux文件名支持用glob通配符代替

题目没有过滤.命令。通过.去执行sh命令不需要有执行权限。

ctfshow之无字母数字的命令执行

对于通配符,大家常用的可能都只有*?。其实还有 glob,只要找到一个可以表示“大写字母”的glob通配符,就能精准找到我们要执行的文件。

翻开ascii码表,可见大写字母位于@[之间:

ctfshow之无字母数字的命令执行

换个思路去解这道题,可以通过post一个文件(文件里面的sh命令),在上传的过程中,通过.(点)去执行执行这个文件。一般来说这个文件在linux下面保存在/tmp/php??????一般后面的6个字符是随机生成的有大小写。(可以通过linux的匹配符去匹配)。

然后开始构造POC,提供一个html来构造上传post请求包。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>POST数据包</title>
</head>
<body>
<form action="http://46230c96-8291-44b8-a58c-c133ec248231.chall.ctf.show/" method="post" enctype="multipart/form-data">
    <label for="file">文件名:</label>
    <input type="file" name="file" id="file"><br>
    <input type="submit" name="submit" value="上传">
</form>
</body>
</html>
ctfshow之无字母数字的命令执行

这里再提供一种更方便的方法,用yakit来构造。伟大无需多言。

ctfshow之无字母数字的命令执行

然后在上传文件内容添加sh命令,使用ls成功读取到文件

ctfshow之无字母数字的命令执行

直接读flag,打完收工。

ctfshow之无字母数字的命令执行
点点关注不迷路~

原文始发于微信公众号(TimeAxis Sec):ctfshow之无字母数字的命令执行

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月26日10:21:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ctfshow之无字母数字的命令执行https://cn-sec.com/archives/2885385.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息