ctfCTF比赛解题报告整理

2019WEB安全攻防技能 [基础班] - CTF夺旗赛WP

2019-01-23  本文已影响245人  蓝小俊

Flag参数

input

企业小白运维人员

100块钱都不给我

通过查看源代码、请求头和响应头没发现什么,访问robots.txt,发现网站隐藏目录: image.png
访问index.php1发现关键代码: image.png
发现会将ctf的参数值作为函数名执行,因此传递ctf=phpinfo,在首页获得flag: image.png

搜what?

来上传!

通过上传测试,发现是文件头校验,因此抓包,在木马内容基础上再加gif文件头,结构如下:GIF89a<?php phpinfo(); ?>

image.png

包罗万象

发现可以上传zip文件,构造一句话木马的压缩包,然后用php伪协议读取执行命令,用base64命令读取flag.php源代码获取flag:


image.png
flag.php

阿!核弹

本题考察的是linux的越权控制,在登录Linux时,看起来是登录的账号,其实在计算机中仅仅认识ID,而每个登录的用户都会取得两个
ID这就是GID与UID。UID也称为用户ID(UserID),GID也称为用户组ID(Group ID)。操作系统就是利用它两来判断文件的所有者与用户组的。用户的UID大于500的都是非系统账号,500以下的都为系统保留的账号,比如root账号,至高权限的账号的UID为0。

这密码到底是啥!

看你有什么办法

<?php
function filter($v){
  echo $v;
  $w = array('<','>','\.\.','^/+.*','file:///','php://','data://','zip://','ftp://','phar://','zlib://','glob://','expect://','http://','https://');
  $w = implode('|',$w);
  if(preg_match('#' . $w . '#i',$v) !== 0){
    die("
not that easy.");
    exit();
  }
  return $v;
}

根据代码可知过滤了超多的协议,其中
file://协议
都为off状态下也可以使用,直接访问本地文件系统。
格式:file:// [文件的绝对路径和文件名]
例如:file://localhost/文件
这里需要用到远程文件包含,但因为不能用ip地址(因为靶机无无法访问外网ip),所以用localhost代替
原版协议:https://en.wikipedia.org/wiki/File_URI_scheme

file协议.png
根据题目提示在网站根目录/flag文件下,构造playload访问如下: image.png

dota

X集团超级无敌新闻网站

这里可以尝试用noscript插件,禁掉js,成功访问后如下,flag点了后没用,就点新闻管理进入编辑界面,发现注入点: admin/left.jsp
通过sqlmap跑,拿到用户名和密码,如下: admin.png 在后台登录界面用账号和密码登录即可查看到flag,如下: flag.png
上一篇 下一篇

猜你喜欢

热点阅读