[BT]BUUCTF刷题第2天(3.20)

第2天(共5题)

Web

[ACTF2020 新生赛]Exec

Payload:target=127.0.0.1;cat /flag
分号;在许多shell中用作命令分隔符,意味着在执行完前一个命令(这里是设置target变量)后,接着执行cat /flag命令。


[GXYCTF2019]Ping Ping Ping

Paayload:

bash 复制代码
http://4caf85f2-dc7a-47ae-a50f-683bb207ece6.node5.buuoj.cn:81?ip=1;cat$IFS$9`ls`

反引号的「优先级」很高,会先执行反引号中的命令,而后在将执行的「结果」结果配合其他命令执行,也就是说,执行的语句时下面这样:
?ip=1;cat flag.php index.php

根据提示,是要在url后面加上/?ip=参数值来进行解题,这道题类似上道题都是需要执行多个命令获取flag,但是多了过滤。

初始Payload:?ip=1;ls

发现能够返回目录下的文件:flag.php index.php

加上访问文件:?ip=1;cat flag.php

发现网站过滤空格

绕过空格的几种方式:

  1. ${IFS}
  2. $IFS$9 $9可改成其他数字
  3. <
  4. <> 重定向符
  5. {cat,flag.php} 用逗号,实现了空格功能

本题中$IFS$9可行

绕过空格:?ip=1;cat$IFS$9flag.php

发现过滤flag字样

绕过flag的几种方式:

  1. 编码绕过关键词。
  2. 变量拼接绕过关键词。(?ip=1;b=ag;cat$IFS9flb.php)
  3. 反引号执行绕过关键词

以上三种方式均可以显示文件内容

flag藏在注释

[强网杯 2019]随便注

Payload:

sql 复制代码
?inject=0';handler `1919810931114514` open;handler `1919810931114514` read first; -- a

使用0' or True -- a查询表中所有数据

0后面的`用于结束前面的SQL语句,True使查询语句为真,--是SQL里的注释,a为注释的一部分

源码过滤了select、update、delete、drop、insert、where等关键字,因此本题考点为堆叠注入(即通过分号将多条SQL语句一起执行)

初始Payload:

sql 复制代码
?inject=0';show tables; -- a

这里直接查询所有表,发现了1919810931114514和word表,由于select被过滤了,show命令又不能查看表中的数据,因此需要使用「handler 命令」来查看表中的数据

添加查询表中数据的Payload:

sql 复制代码
?inject=0';handler `1919810931114514` open;handler `1919810931114514` read first; -- a

注意表名用反引号括起

得到flag

[SUCTF 2019]EasySQL

Payload:
1;set sql_mod=PIPES_AS_CONCAT;select 1

SQL_MOD:是MySQL支持的基本语法、校验规则
其中设置PIPES_AS_CONCAT之后会将||认为字符串的连接符,而不是或运算符,这时||符号就像concat函数一样。

网站漏洞代码:

sql 复制代码
select $_POST['query'] || flag from Flag;

使用1;set sql_mod=PIPES_AS_CONCAT;select 1后输出数据是1列和flag列的组合

其他Payload:
*,1

*代表所有列,逗号作为分割,1加上查询语句的|| flag会得到1这个值,然后语句会一起查询所有列和1列的数据并返回

[极客大挑战 2019]Secret File

Payload:
?file=php://filter/read=convert.base64-encode/resource=flag.php

这里可能是因为我加了Chrome的显示插件,所以我能直接看到下面的超链接文字(本来应该是看不到的,不过源代码中的<a id="master" href="./Archive_room.php"也能看出来),点击跳转至Archive_room.php

注意这里的源代码里面的超链接是<a id="master" href="./action.php",点击SECRET

发现结束但是没有找到flag,而且这个结束页面的链接是end.php,原本是action.php,说明可能有跳转,在Archive_room.php页面进行抓包发现注释

访问这个页面得到提示,说明访问flag.php可以得到flag,这段代码看似过滤file参数值,其实没什么用,直接?file=flag.php

提示找到了但没完全找到,考虑伪协议,将其改为?file=php://filter/read=convert.base64-encode/resource=flag.php

将得到的数据进行解码得到flag

相关推荐
PaLu-LI1 小时前
ORB-SLAM2源码学习:Initializer.cc(13): Initializer::ReconstructF用F矩阵恢复R,t及三维点
c++·人工智能·学习·线性代数·ubuntu·计算机视觉·矩阵
ZzYH221 小时前
文献阅读 250125-Accurate predictions on small data with a tabular foundation model
人工智能·笔记·深度学习·机器学习
星迹日2 小时前
数据结构:二叉树—面试题(一)
数据结构·经验分享·笔记·二叉树·面试题
灰原A2 小时前
【个人疑问】potplayer如何放大画面后局部移动画面
笔记
Trouvaille ~2 小时前
【Linux】命令为桥,存在为岸,穿越虚拟世界的哲学之道
linux·学习·开源·操作系统·编程·命令行·基础入门
百里香酚兰2 小时前
【AIGC学习笔记】扣子平台——精选有趣应用,探索无限可能
笔记·学习·aigc·大模型应用·扣子平台
种花生的图图3 小时前
《边界感知的分而治之方法:基于扩散模型的无监督阴影去除解决方案》学习笔记
人工智能·笔记·深度学习·学习·机器学习
东京老树根3 小时前
Excel 技巧20 - 在Excel中输入内容时自动添加边框(★★)
笔记·学习·excel
安冬的码畜日常3 小时前
【Vim Masterclass 笔记26】S11L46:Vim 插件的安装、使用与日常管理
笔记·vim·vim插件·自学·nerdtree·fugitive·easy-motion
monstercl4 小时前
Ubuntu20彻底删除MySQL8
sql·mysql·ubuntu·c/c++