几道ctf题目

[ACTF2020 新生赛]Exec

在这里插入图片描述

拿到题目。

脑子想到这可能是一个命令行输入。

那就是有可能是命令注入题。

在这里插入图片描述

试下分号和ks有没被过滤。

发现可以正常使用,说明没有过滤。

输入 127.0.0.1;cd /;ls;

发现该目录下有flag,再次输入127.0.0.1;cd /;cat flag;

得到flag{3bcfed87-e1fb-4967-899d-d103ef663b91}

[极客大挑战 2019]EasySQL

在这里插入图片描述

burp suite

GET /check.php?username=1&password=1 HTTP/1.1 Host: 2dbc9296-37e0-45a5-af4d-fc9726c627c2.node4.buuoj.cn:81 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Referer: http://2dbc9296-37e0-45a5-af4d-fc9726c627c2.node4.buuoj.cn:81/ Upgrade-Insecure-Requests: 1

hackbar

http://2dbc9296-37e0-45a5-af4d-fc9726c627c2.node4.buuoj.cn:81/check.php?username=1'&password=1 ![在这里插入图片描述](https://img-blog.csdnimg.cn/42b28c68a5724b8c8af27e25643effc6.png)
在这里插入图片描述

注入

直接试最简单的万能登录sql登录语句试试在load URL输入
http://2dbc9296-37e0-45a5-af4d-fc9726c627c2.node4.buuoj.cn:81/check.php ?username=' or' 1'= '1 &password=' or '1' ='1
在这里插入图片描述

[极客大挑战 2019]Secret File

本题涉及知识点:

  1. 关于如何反重定向。
  2. 关于如何简单使用文件包含漏洞。

简单记录下这题。

拿到手是这个页面。

在这里插入图片描述
F12,找到
在这里插入图片描述
其中有提示一个./Archive_room.php,点击进入。
在这里插入图片描述
进入新页面。

点击secret,会跳转到end.php。

在这里插入图片描述
但是打开f12我们会发现。
在这里插入图片描述
该跳转不是跳转到end.php,而是跳转到action.php。

此时想到重定向。

于是打开burpsuite。
在这里插入图片描述
然后启用repeater。
在这里插入图片描述
在这里插入图片描述
此时才是正确的响应。

注释里有新网页secr3t.php。

在这里插入图片描述
直接访问flag.php。
在这里插入图片描述
emmmmmm,想了一下,回去再看下代码。

然后按代码来访问flag.php。

初步判断是文件包含漏洞。

在这里插入图片描述
于是用php://filter/read=convert.base64-encode/resource=flag.php代替flag.php。

这句php://filter伪协议代码的含义是:使用php://filter伪协议将flag.php的内容利用base64编码进行编码然后进行显示。执行这段代码之后,页面如下:
在这里插入图片描述
把base64编码拿去解码即可得到flag。

[HCTF 2018]WarmUp

  • 看到一个大的滑稽,点开检查,在源代码里发现注释有source.php 文件,进入该文件。

  • 得到源码。

  • 开始分析。

if (! empty($_REQUEST['file'])
        && is_string($_REQUEST['file'])
        && emmm::checkFile($_REQUEST['file'])
    ) {
        include $_REQUEST['file'];
        exit;
    } else {
        echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
    } 
  • 首先我们关注到这个if语句。

  • 一看就知道,这两个&,不满足就得看滑稽。

  • 而满足了,就可以include该文件。

  • 所以分析得

    1. 该$_REQUEST[‘file’]不为空。
    2. 该$_REQUEST[‘file’]是字符串。
    3. emmm::checkFile($_REQUEST[‘file’]有返回true。

    后面不会了,看答案了:https://blog.csdn.net/m0_62709637/article/details/125022518

    既然不会做,那就看看知识点吧。

    • 知识点:

    $_REQUEST[‘file’] 获取传递的参数file中存储的值

    先来熟悉几个函数

    **//mb_strpos():**返回要查找的字符串在别一个字符串中首次出现的位置

    // mb_strpos (haystack ,needle )

    // haystack:要被检查的字符串。

    // needle:要搜索的字符串

    **//mb_substr()**函数返回字符串的一部分。

    //str 必需。从该 string 中提取子字符串。

    //start 必需。规定在字符串的何处开始。

    //ength 可选。规定要返回的字符串长度。默认是直到字符串的结尾。

    总的来说这个checkFile这个函数进行了 3次白名单检测、 2次问号过滤、一次URL解码

    最终构造payload :?进行两次编码就可以绕过检测了。

    思路总结

    • 首先查看网页,当没有任何线索时查看一下源码–》找到线索source.php
    • source.php–》显示源码,进行分析
    • 满足三个条件

关于.和/的解释:

.表示当前目录
. .表示当前目录的上一级目录。
. ./表示当前目录下的某个文件或文件夹,视后面跟着的名字而定
./表示当前目录上一级目录的文件或文件夹,视后面跟着的名字而定。
例如:
文件夹 a
下面有 文件夹b c 和文件 d。
文件夹b下面有e.php 和文件f。
则e中的 . 表示 文件夹b
./f 表示b下面的文件f。
. .表示a文件夹。
. ./d 表示a文件夹下的d文件。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值