CTFshow刷题记录-萌新-获得百分之百的快乐

1、题目

在这里插入图片描述

2、解题方法

payload: 先构造payload?1=>nl然后?1=*就可以了,右键查看源代码得到flag
在这里插入图片描述

3、原理

  1. ?1=>nl 的含义:这是一个 HTTP GET 请求参数,意思是向该 PHP 脚本传递一个名为 1 且值为 nl 的参数。

原理:当传递 ?1=>nl 时,strlen( $ _GET[1]) 的值为2(nl 的长度是 2),小于 4,满足 if条件。于是,shell_exec($_GET[1]) 会执行 nl 命令。nl 是一个 Linux命令,用于为文件中的行编号。执行此命令可能是为了查看当前目录下文件的列表,以此确定可能包含 flag 的文件。

  1. ?1=* 的含义:同样是一个 HTTP GET 请求参数,传递一个名为 1 且值为 * 的参数。

原理:当传递 ?1=* 时,strlen($ _GET[1]) 的值为 1(* 的长度是 1),小于 4,满足 if条件。shell_exec($_GET[1]) 会执行 * 命令。在 Linux 系统中,* 是一个通配符,代表任意数量的任意字符。这里执行* 命令,实际上是尝试执行当前目录下的所有可执行文件。执行后,可能会触发某些文件输出包含 flag 的内容,不过这些内容可能被隐藏在页面源代码里。

  1. 右键查看源代码得到 flag

原理:执行上述命令后,包含 flag 的内容可能不会直接显示在页面上,而是被隐藏在 HTML 源代码中。所以需要右键查看页面源代码,从中找到
flag。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值